Shocker-Writeup

概述 (Overview)

Author: 0x584A

47333341.png

  • 知识点
    • nmap && nmap script
    • Fuzzing
    • ShellShock

攻击链 (Kiillchain)

51947101.png

TTPs (Tactics, Techniques & Procedures)

阶段1:枚举

通过nmap脚本扫描全端口识别服务信息:

48493954.png

浏览器查看HTTP服务,源码中有一张图片,下载分析后发现并没有什么异常,它就是一张图片。

47629636.png

随后顺便扫描一下服务漏洞,看是否存在可利用的漏洞。

48563984.png

然而并没有明显可利用的漏洞,尝试目录爆破,发现存在一个可疑的 403 /cgi-bin/

49939123.png

根据服务的环境,先了解下cgi的部署:

51112476.png

也就是说,访问的路径结尾可疑设置成任意的。加入后缀后再次扫描得到一个 /user.sh 的新路径。

51595179.png

访问后返回的是一个 uptime 命令信息。

51734406.png

阶段2:利用工具

额,接下来我的思路就断了。然后开始Google,找到了关键字 Shellshock:

54437023.png

54474349.png
57126902.png

参考: https://owasp.org/www-pdf-archive/Shellshock_-_Tudor_Enache.pdf

简单来讲就是,将命令执行代码写入系统的环境变量。

exploit-db 中提供了利用脚本 34900.py

52463915.png

理解下代码:

53652171.png
53770006.png

复盘的时候,看IPPSEC的视频发现他用的是nmap的脚本:$ locate nse|grep shellshock ,也是一个不错的思路。

阶段2.1:利用

依赖安装完成后,直接运行利用将会成功建立会话获得一个shell。

52915933.png

脚本提供了 proxy 参数,通过 burp 可以参考到最终提交的 EXP(在IPPSEC那又学到一个技巧,burp是支持本地代理转发的。也就是说可以新开一个127.0.0.1:8081,将其转至10.10.10.56:80 端口):

54122277.png

阶段2.2:利用后

这里我又反弹了一个 python shell,防止会话丢失。

52905503.png

重写的命令为:alias 9900='rlwrap nc -lvvp 9900'

53036833.png

ok,NC成功接收。

53126964.png

阶段3:权限提升

在对环境信息进行收集时,尝试 sudo -l 查看下当前是否具有可执行的命令。

53315120.png

很好,具有 perl 的权限,接下来就方便多了,指向通过执行脚本的方式运行exec函数,获得一个root会话。

53362154.png

参考