tryhackme--tomghost靶场wp
tryhackme--tomghost靶场wp

先用nmap进行扫描查看端口开放情况,这里有两个端口值得注意,8080和8009,其中的8080知道,但8009的ajp13这是什么???
ajp13:一种基于二进制的协议,可以优化服务器的静态文件资源的请求性能。
ps.8080http和8009ajp13这些信息,可以视作是tomcat服务器的指纹信息,这还是重要的。
访问http://ip:8080即可查看到网页信息。发现这个tomcat服务器的版本号为9.0.30。

在网页中逛了逛没啥思路。既然我们是要渗透的,那我们肯定先要找到“漏洞”,才能进行下一步行动。使用searchsploit看看这个服务器都有啥漏洞:searchsploit tomcat

可以看到不同版本的tomcat服务器存在的漏洞,但是这也太多了。。而且似乎也没发现该版本漏洞的明显信息。。。
然后我就直接去网上搜了tomcat都有哪些漏洞,发现了CVE-2020-1938 这个漏洞,又名ghostcat,特征和该靶场基本符合,便猜测这就是我们所需的漏洞。
CVE-2020-1938(ghostcat):该漏洞是由于Tomcat AJP协议存在缺陷而导致,攻击者可通过构造特定参数读取webapp目录下的任意文件,如:webapp 配置文件或源代码等。影响版本有 9.x < 9.0.31等版本
本题8009端口的AJP协议是开启的,且Tomcat版本<9.0.31,便基本可以确定是这个漏洞。


在searchsploit提供的漏洞找到ghost cat这个漏洞并将它提供的漏洞利用代码提取出来searchsploit tomcat -m 48143.py。(其实靶场靶场名字tomghost也算提示是ghostcat这个漏洞了(笑))
运行该脚本python2 48143.py ip地址 -p 8009,在返回信息中我们发现了一个用户名与密码的信息:skyfuck:8730281lkjlkjdqlksalks

ssh远程连接:ssh skyfuck@ip地址,输入密码成功连接。

其实我这里懒得找user.txt直接用find命令了(目移):find / -name "user.txt"(不过一般不建议这么做,从根目录开始查找还是很费时间的不过我这里也没用多久就是了),发现它的路径为/home/merlin/user.txt,cat查看得到用户flag。

user.txt:THM{GhostCat_1s_so_cr4sy}
在skyfuck当前的目录中,我们还可以发现两个文件,tryhackme.asc和credential.pgp

(tryhackme这个名字看着就很可疑啊)查看发现tryhackme.asc似乎是个私钥。

丢给ai看了看,大概可以知道这是个pgp加密协议中的私钥块,而那个credential.pgp应该就是它的加密文件。现在我们便要尝试进行解密。
使用scp将这两个文件导到我们的系统中:scp skyfuck@ip地址:tryhackme.asc .,但在尝试进行pgp解密的时候发现这个私钥文件需要密码,然而我们并不知道密码。
这个时候就要用到工具gpgjohn2。使用命令gpg2john tryhackme.asc > hash.txt提取私钥的密码哈希,再用john暴力破解:john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt

可以得到密码为:alexandru
接下来就能进行pgp解密了。gpg --import tryhackme.asc导入私钥,(之后可以用gpg --list-secret-keys验证是否导入成功),gpg --decrypt credential.pgp进行解密,期间输入我们得到的私钥密码,成功解密得到了merlin的用户信息;merlin:asuyusdoiuqoilkda312j31k2j123j1g23g12k3g12kj3gk12jg3k12j3kj123j

ssh远程连接merlin,使用sudo -l发现我们可以以root身份使用zip命令。

进行zip提权。在gtfobins上查找关于zip提权的内容:https://gtfobins.github.io/gtfobins/zip/
TF=$(mktemp -u)
sudo zip $TF /etc/hosts -T -TT 'sh #'
sudo rm $TF
运行以上命令后whoami查看发现已经具有root权限,cat查看root.txt内容。

root.txt:THM{Z1P_1S_FAKE}

浙公网安备 33010602011771号