Hackthebox - Seal

Seal

10.10.10.250

5c4dbe13124550cd6f230aa5a6bed494.png

nmap

292ab2f8a2740c4a1a2a8f94437fd354.png

292ab2f8a2740c4a1a2a8f94437fd354.png

25d792d4f6d5c32f1ed5a3008d32ae88.png

GitBucket SearchSploit

6a7d77a19e995002392f3a1758607893.png

用不了

443 ffuf

71abcb6067b01c87a0f918472dba4021.png

hostname

06f78753338d1c521e8cba50a27196c3.png

seal.htb

GitBucket

0b396cec271a80b15d85eb23e256c5b4.png

可以在 git log 中找到一个包含删除密码的commit,从而获得 tomcat 的密码。

tomcat:42MrHBf*z8{Z%

nginx 绕过

/manager/html 这个url 不能直接访问,因为被 nginx 检测到 ssl 证书过期时将返回 403。

270627b6ed71573da662e11860149e17.png

所以需要进行绕过,这里主要是一个 nginx+tomcat 的 csrf 漏洞,有两种绕过方式
https://rioasmara.com/2022/03/21/nginx-and-tomcat-mutual-auth-bypass/

第一种
/manager/;name=apple/html
中间的 /;name=apple/ 对 nginx 可见,但对 tomcat 不可见,可以达到绕过的效果。
第二种
/manager/DoesNotExist/..;/html
其中 /..;/ 不会被 nginx 处理,但会被 tomcat 解释为上级目录,故 /DoesNotExist/..;/ 将被解释为 /,达到绕过的效果。

构造 payload 后,输入从 git log 获得的密码,进入到 tomcat 后台管理界面。这里可以上传 war 文件进行部署,通过 msfvenom 构造 payload.war,拿到 shell。

f2c0cf01d0972d72f59aa25ef86608d5.png

4d448f03092d5294ad52f55000ddc340.png

pspy 抓取定时任务

5cc7f030336ce1ccc7a615b96973d80b.png

上传运行 pspy 可知存在定时任务执行 ansible,查看 /opt/backups/playbook/run.yml。

af68c80da3e39e50f4448fda186ee7da.png

查看 ansible synchronize 文档 https://docs.ansible.com/ansible/latest/collections/ansible/posix/synchronize_module.html,可知当 copy_links=yes 时,拷贝文件夹中的软链接时将不会只拷贝链接文件,而是会将链接指向的文件拷贝过来,那么我们就可以在可写的文件夹中构造软链接读取任何 luis 用户有权限读取的文件,比如他的私钥。

首先在 /var/lib/tomcat9/webapps/ROOT/admin/dashboard 中查找有权限写的目录。

c9ae62bf976c23e1397f2c448fb5bb95.png

uploads 权限为 777,可供我们构造 Payload。

fdff6c6086cb7d4732bde31b8c9fec64.png

构造软链接,去备份结果目录查看结果。

80e17141f1ce71db91f01459986a5efb.png

可以看到最新的文件大小相比之前有了变化,将其解压看看。

fb310bb2b405d19ade706eb5da3ba93d.png

获得私钥,准备登录 luis 账户。

5d5360fe1cc41d64d0e4ad1ec5dc1a10.png

成功登录。

luis 的 sudo -l

61101654178f8b88dce3909d09730a67.png

无需密码即可通过 sudo 执行任意 playbook,那么接下来的提权就非常简单了。
根据 https://gtfobins.github.io/gtfobins/ansible-playbook/#sudo

1da3cb9b12d3efd38212c2e4fc59256c.png

成功获得 root 权限。