写在前面:合法学习边界
多级代理只用于授权内网。对非授权网络建立代理链可能触犯法律。
一、原理:为什么要多级代理
单级代理只能从“攻击机 → 一台跳板 → 内网”。但深一点的内网往往要经过多台主机才能到达目标网段:
多级代理就是把代理“串”起来,让流量逐级穿过,最终能访问纵深网段。
1
| 关键:每一级都要能“继续往外/往里转”,而不是只做一个 socks
|
二、影响
1
2
3
| 打通纵深内网,横向到核心区
数据/隧道稳定回传
是内网渗透推进的关键能力
|
三、使用 / 复现
1. SSH 多级(最轻量)
1
2
3
4
5
6
7
| # 直接跳板链:攻击机 → 跳板1 → 跳板2
ssh -J user1@跳板1,user2@跳板2 user3@目标IP
# 解释:-J 指定依次经过的跳板,一条命令直达
# 在本地起 socks,走整条链
ssh -J user1@跳板1,user2@跳板2 -D 1080 user3@目标IP
# 解释:-D 1080 建立本地 socks,配合 proxychains 访问目标网段
|
1
2
3
4
| ~/.ssh/config 里写 ProxyJump,可复用:
Host target
ProxyJump jump1,jump2
User xxx
|
2. frp 多级级联
1
2
3
| 一级:攻击机起 frps,跳板1 跑 frpc(socks)
二级:在跳板1 上再起 frps,跳板2 跑 frpc(socks)
依次串联,最终在本地汇聚成一条链
|
3. EW(EarthWorm)级联
1
2
3
4
5
6
| # 跳板1(正向):开 socks5 监听
./ew -s ssocksd -l 1080
# 攻击机(反向汇聚):-r 本地端口 -l socks 端口
./ew -s rcsocks -l 1080 -e 8888
# 跳板2:把 8888 转给跳板1 的 1080(多级串联)
./ew -s lcx_tran -l 8888 -f 跳板1IP -p 1080
|
1
2
| 解释:一级 socks 传给二级,形成多级代理链
(老工具,很多场景已被 frp/ssh 替代,思路仍通用)
|
4. 本地汇聚使用
1
2
3
| # proxychains 指向最终 socks 端口,访问深层网段
proxychains4 nmap -sT -Pn 10.20.0.0/24
proxychains4 rdesktop 10.20.0.5
|
四、操作步骤
1
2
3
4
5
6
| 第 1 步:画内网拓扑,确定需要几级代理
第 2 步:每级建立隧道/socks(SSH -J / frp / EW)
第 3 步:本地把多级 socks 汇聚(最终一个端口)
第 4 步:proxychains 访问目标网段并横向
第 5 步:按需加端口转发(RDP/数据库)
第 6 步:用后清理代理进程与会话
|
五、检测与防御
1
2
3
4
| 异常 SSH 长连接、多跳连接特征
隧道工具进程(frp/ew)特征
异常外联与非常规端口
出站白名单 + 连接审计
|
六、小结
多级代理 = “画拓扑 → 逐级建隧道 → 本地汇聚 → 横向”。SSH 的 -J/-D 是最轻量的选择,frp 适合复杂级联,EW 是老牌但思路通用。掌握它,才能从“进得去”推进到“够得着核心网段”。