记一次不出网的渗透测试
字数 1400 2025-08-15 21:32:45
内网渗透测试技术详解:从S2漏洞利用到不出网环境下的横向移动
1. 信息收集与初始漏洞利用
1.1 信息收集阶段
- 端口扫描:发现7080端口开放
- 历史快照检查:通过Google历史快照发现7080端口的.action端点
- 弱口令测试:尝试未果
1.2 Struts2漏洞利用
- 发现存在S2-046漏洞的.action端点
- 漏洞验证URL:
http://x.x.x.x:7080/xxxx.action - 利用方式:直接命令执行获取最高权限
- 目录定位:执行命令确认当前工作目录
2. 木马上传与连接
2.1 木马类型测试
- 哥斯拉木马:上传成功但连接失败
- Behinder 3.0 Beta_3:连接失败
- Behinder V3.0 B6:成功连接
经验总结:工具版本更新至关重要,应保持工具最新版本
2.2 敏感信息收集
- Tomcat用户信息与密码
- 数据库连接信息
- 杀毒软件检查:通过
tasklist发现360杀毒软件运行
3. 不出网环境下的渗透技术
3.1 环境分析
- 目标不出网(无外网连接)
- 3389端口未开放
- 传统CS马无法回连
3.2 reGeorg内网穿透
实施步骤:
- 从GitHub获取reGeorg:
https://github.com/sensepost/reGeorg - 上传对应语言版本的tunnel脚本(本例使用jsp)
- 本地执行代理命令:
python reGeorgSocksProxy.py -p 10086 -u http://x.x.x.x/tunnel.jsp - 注意Python环境冲突问题(本例中删除Python3.8后解决)
3.3 Pystinger上线技术
实施步骤:
- 获取Pystinger:
https://github.com/FunnyWolf/pystinger/releases - 上传对应Web语言的代理脚本(本例为jsp)
- 验证代理脚本可访问(返回UTF-8表示成功)
- 上传
stinger_server.exe到目标服务器 - 在目标服务器执行:
注意:不要直接运行,否则会导致TCP断连start /目录/stinger_server.exe 0.0.0.0 - 在VPS执行客户端连接:
./stinger_client -w http://x.x.x.x:7080/proxy.jsp -l 0.0.0.0 -p 60000 - 成功后会返回60020端口信息
3.4 Cobalt Strike配置
- 建立监听器:监听本地60020端口
- 生成免杀马:
- 使用zirikatu工具:
https://github.com/pasahitz/zirikatu.git - 上传到可读写目录(如
C:\Windows\Temp\) - 注意360杀毒软件的绕过
- 使用zirikatu工具:
4. 横向移动技术
4.1 密码抓取
- 使用CS内置功能抓取系统密码
4.2 开启远程桌面
- 通过CS开启目标3389端口
- 使用reGeorg+Proxifier建立隧道
- 使用获取的凭证进行RDP连接
5. 关键经验总结
- 工具更新:保持渗透工具最新版本(如Behinder从V3升级到V6解决连接问题)
- 环境冲突:注意多版本Python环境可能导致的问题
- 杀软规避:在存在360等杀软环境下必须进行免杀处理
- 目录选择:上传文件到具有读写权限的目录(如Temp目录)
- 不出网环境:组合使用reGeorg和Pystinger实现内网穿透
- 横向移动:通过密码抓取和端口开启实现内网扩展
6. 防御建议
- 及时修补Struts2等已知漏洞
- 限制Web目录的执行和写入权限
- 监控异常进程(如stinger_server.exe)
- 加强密码策略,防止弱口令
- 部署网络流量监控,检测异常隧道流量
- 保持杀毒软件更新并启用行为检测