概述 (Overview)
Author: 0x584A
- 知识点
- nmap && nmap script
- Fuzzing
- ShellShock
攻击链 (Kiillchain)
TTPs (Tactics, Techniques & Procedures)
阶段1:枚举
通过nmap脚本扫描全端口识别服务信息:
浏览器查看HTTP服务,源码中有一张图片,下载分析后发现并没有什么异常,它就是一张图片。
随后顺便扫描一下服务漏洞,看是否存在可利用的漏洞。
然而并没有明显可利用的漏洞,尝试目录爆破,发现存在一个可疑的 403 /cgi-bin/
。
根据服务的环境,先了解下cgi的部署:
也就是说,访问的路径结尾可疑设置成任意的。加入后缀后再次扫描得到一个 /user.sh
的新路径。
访问后返回的是一个 uptime
命令信息。
阶段2:利用工具
额,接下来我的思路就断了。然后开始Google,找到了关键字 Shellshock
:
参考: https://owasp.org/www-pdf-archive/Shellshock_-_Tudor_Enache.pdf
简单来讲就是,将命令执行代码写入系统的环境变量。
exploit-db 中提供了利用脚本 34900.py
理解下代码:
复盘的时候,看IPPSEC的视频发现他用的是nmap的脚本:$ locate nse|grep shellshock
,也是一个不错的思路。
阶段2.1:利用
依赖安装完成后,直接运行利用将会成功建立会话获得一个shell。
脚本提供了 proxy
参数,通过 burp 可以参考到最终提交的 EXP(在IPPSEC那又学到一个技巧,burp是支持本地代理转发的。也就是说可以新开一个127.0.0.1:8081,将其转至10.10.10.56:80 端口):
阶段2.2:利用后
这里我又反弹了一个 python shell,防止会话丢失。
重写的命令为:alias 9900='rlwrap nc -lvvp 9900'
ok,NC成功接收。
阶段3:权限提升
在对环境信息进行收集时,尝试 sudo -l
查看下当前是否具有可执行的命令。
很好,具有 perl
的权限,接下来就方便多了,指向通过执行脚本的方式运行exec
函数,获得一个root会话。
参考
- https://www.hackthebox.eu/home/machines/profile/108