打靶日记——prime1
字数 1592 2025-08-29 08:29:36

Prime1 靶机渗透测试教学文档

1. 信息收集阶段

1.1 初始扫描

  • 使用端口扫描工具(如nmap)发现目标主机开放两个端口:
    • SSH端口(通常为22)
    • HTTP端口(80)

1.2 Web目录爆破

  • 使用目录爆破工具(如dirb、dirbuster或gobuster)扫描80端口
  • 发现以下重要目录/文件:
    • /dev目录:包含提示信息,建议继续挖掘网站信息
    • WordPress安装痕迹
    • 隐藏的文本文件(如location.txt)

2. 渗透阶段

2.1 文件包含漏洞利用

  1. 通过扫描发现index.php和image.php两个PHP文件
  2. 对index.php进行参数Fuzz测试(使用wfuzz工具)
    • 发现可用的参数
    • 尝试包含location.txt文件,获得提示:尝试使用secrettier360参数
  3. 在image.php页面测试文件包含漏洞
    • 成功包含/etc/passwd文件
    • 从中发现有用线索

2.2 WordPress后台入侵

  1. 从包含的文件中获得密码
  2. 尝试登录WordPress后台
    • 首先尝试admin用户失败
    • 通过查看主页发现有效用户,使用该用户成功登录
  3. 获取Web Shell:
    • 通过主题编辑功能写入PHP Shell
    • 利用WordPress默认主题存储路径(如/wp-content/themes/twentytwenty/)
    • 设置监听端口并访问Shell页面获取反向Shell

3. 提权阶段

3.1 初始提权尝试

  1. 查看/home/saket目录获取用户flag
  2. 尝试常规提权方法:
    • SUID提权:使用find / -perm -u=s -type f 2>/dev/null查找,无可用
    • 内核提权:发现老旧内核版本,寻找可用提权脚本

3.2 内核提权

  1. 在攻击机(Kali)上准备提权脚本
  2. 在靶机上建立文件传输:
    • 使用wget或PHP简易服务器传输文件
    • 在/tmp目录下编译执行提权脚本
  3. 成功获取root权限和root flag

4. 替代提权路径(更符合靶机设计意图)

4.1 加密文件分析

  1. 在/home/saket目录下发现可执行的enc文件
  2. 尝试使用之前获得的密码执行,发现需要root权限
  3. 查找密码相关文件:
    • 使用find / -name "*pass*"查找可能包含密码的文件
    • 分析找到的文件,获取有效密码

4.2 OpenSSL解密

  1. 发现加密文件和密钥提示
  2. 对提示字符串"ippsec"进行MD5加密获得密钥
  3. 尝试多种OpenSSL加密方式解密文件:
    # 示例解密脚本
    import os
    methods = ['aes-128-cbc', 'aes-256-cbc', 'des', ...] # 常见加密方法
    ciphertext = "nzE+iKr82Kh8BOQg0k/LViTZJup+9DReAsXd/PCtFZP5FHM7WtJ9Nz1NmqMi9G0i7rGIvhK2jRcGnFyWDT9MLoJvY1gZKI2xsUuS3nJ/n3T1Pe//4kKId+B3wfDW/TgqX6Hg/kUj8JO08wGe9JxtOEJ6XJA3cO/cSna9v3YVf/ssHTbXkb+bFgY7WLdHJyvF6lD/wfpY2ZnA1787ajtm+/aWWVMxDOwKuqIT1ZZ0Nw4="
    key = "366a74cb3c959de17d61db30591c39d1" # ippsec的MD5值
    
    for method in methods:
        os.system(f'openssl enc -d -{method} -a -K {key} -in encrypted_file')
    
  4. 成功解密获得saket用户的SSH密码

4.3 SSH登录与最终提权

  1. 使用获得的密码通过SSH登录saket账户
  2. 检查sudo权限:
    • 发现特定文件可以sudo执行
  3. 创建/tmp/challenge文件并写入反向Shell
    • 给予执行权限:chmod +x /tmp/challenge
    • 通过sudo执行获取root shell
  4. 成功获取root flag

5. 关键工具与技术总结

工具/技术 用途
nmap 端口扫描
dirb/dirbuster 目录爆破
wfuzz 参数Fuzz测试
PHP文件包含 读取系统文件
WordPress主题编辑 写入Web Shell
内核提权脚本 利用漏洞提升权限
OpenSSL 文件解密
find命令 查找敏感文件

6. 学习要点

  1. 信息收集是渗透测试的核心:

    • 全面扫描和记录所有发现
    • 不放过任何提示和线索
  2. 多种提权路径:

    • 内核提权
    • SUID提权
    • Sudo权限滥用
    • 密码重用分析
  3. 加密文件分析技巧:

    • 识别常见加密模式
    • 系统化尝试解密方法
  4. 靶机设计意图理解:

    • 遵循提示信息
    • 尝试预期路径解决问题
Prime1 靶机渗透测试教学文档 1. 信息收集阶段 1.1 初始扫描 使用端口扫描工具(如nmap)发现目标主机开放两个端口: SSH端口(通常为22) HTTP端口(80) 1.2 Web目录爆破 使用目录爆破工具(如dirb、dirbuster或gobuster)扫描80端口 发现以下重要目录/文件: /dev 目录:包含提示信息,建议继续挖掘网站信息 WordPress安装痕迹 隐藏的文本文件(如location.txt) 2. 渗透阶段 2.1 文件包含漏洞利用 通过扫描发现index.php和image.php两个PHP文件 对index.php进行参数Fuzz测试(使用wfuzz工具) 发现可用的参数 尝试包含location.txt文件,获得提示:尝试使用 secrettier360 参数 在image.php页面测试文件包含漏洞 成功包含/etc/passwd文件 从中发现有用线索 2.2 WordPress后台入侵 从包含的文件中获得密码 尝试登录WordPress后台 首先尝试admin用户失败 通过查看主页发现有效用户,使用该用户成功登录 获取Web Shell: 通过主题编辑功能写入PHP Shell 利用WordPress默认主题存储路径(如/wp-content/themes/twentytwenty/) 设置监听端口并访问Shell页面获取反向Shell 3. 提权阶段 3.1 初始提权尝试 查看/home/saket目录获取用户flag 尝试常规提权方法: SUID提权:使用 find / -perm -u=s -type f 2>/dev/null 查找,无可用 内核提权:发现老旧内核版本,寻找可用提权脚本 3.2 内核提权 在攻击机(Kali)上准备提权脚本 在靶机上建立文件传输: 使用wget或PHP简易服务器传输文件 在/tmp目录下编译执行提权脚本 成功获取root权限和root flag 4. 替代提权路径(更符合靶机设计意图) 4.1 加密文件分析 在/home/saket目录下发现可执行的enc文件 尝试使用之前获得的密码执行,发现需要root权限 查找密码相关文件: 使用 find / -name "*pass*" 查找可能包含密码的文件 分析找到的文件,获取有效密码 4.2 OpenSSL解密 发现加密文件和密钥提示 对提示字符串"ippsec"进行MD5加密获得密钥 尝试多种OpenSSL加密方式解密文件: 成功解密获得saket用户的SSH密码 4.3 SSH登录与最终提权 使用获得的密码通过SSH登录saket账户 检查sudo权限: 发现特定文件可以sudo执行 创建/tmp/challenge文件并写入反向Shell 给予执行权限: chmod +x /tmp/challenge 通过sudo执行获取root shell 成功获取root flag 5. 关键工具与技术总结 | 工具/技术 | 用途 | |----------|------| | nmap | 端口扫描 | | dirb/dirbuster | 目录爆破 | | wfuzz | 参数Fuzz测试 | | PHP文件包含 | 读取系统文件 | | WordPress主题编辑 | 写入Web Shell | | 内核提权脚本 | 利用漏洞提升权限 | | OpenSSL | 文件解密 | | find命令 | 查找敏感文件 | 6. 学习要点 信息收集是渗透测试的核心: 全面扫描和记录所有发现 不放过任何提示和线索 多种提权路径: 内核提权 SUID提权 Sudo权限滥用 密码重用分析 加密文件分析技巧: 识别常见加密模式 系统化尝试解密方法 靶机设计意图理解: 遵循提示信息 尝试预期路径解决问题