脱离C2的自动路由,实战中如何将4以上层内网的穿透,4dnat+新版frp+proxifier使用
字数 1171 2025-08-22 12:22:42

多层内网穿透技术实战指南

1. 实验环境概述

本实验旨在演示如何在不使用C2工具自带路由功能的情况下,通过多种技术组合实现4层内网穿透,将内网服务(Windows Server 2016的8000端口HTTP服务)代理到外部网络。

1.1 网络拓扑

  • IP1: 192.168.239.137 (模拟公网出口IP)
  • 4台主机均已关闭防火墙

1.2 防火墙关闭命令

Windows系统:

netsh advfirewall set allprofiles state off

Linux系统(Ubuntu):

ufw disable

1.3 使用工具

  • 4dnat
  • frp-0.53.2
  • Proxifier

2. 方法一:纯FRP多层穿透

2.1 网络路径

外网出口Win2016(frps1) → Ubuntu(frpc1,frps2) → Win2008(frpc2) → Win2016:8000

2.2 配置文件

frps1.toml (外网出口Win2016):

bindPort = 7000

frpc1.toml (Ubuntu):

serverAddr = "192.168.100.155" # 服务端IP
serverPort = 7000

[[proxies]]
name = "plugin_socks5"
type = "tcp"
remotePort = 10000

[proxies.plugin]
type = "socks5"

frps2.toml (Ubuntu):

bindPort = 7000

frpc2.toml (Win2008):

serverAddr = "192.168.88.100" # 服务端IP
serverPort = 7000

[[proxies]]
name = "plugin_socks5"
type = "tcp"
remotePort = 10000

[proxies.plugin]
type = "socks5"

3. 方法二:4dnat+FRP组合穿透

3.1 网络路径

外网出口Win2016(4dnat-socks5) → Ubuntu(frps) → Win2008(frpc) → Win2016:8000

3.2 配置步骤

  1. 外网出口Win2016:

    4dnat.exe -proxy socks5 10000
    
  2. Ubuntu (frps.toml):

    bindPort = 7000
    
  3. Win2008 (frpc.toml):

    serverAddr = "192.168.88.100" # 服务端IP
    serverPort = 7000
    
    [[proxies]]
    name = "plugin_socks5"
    type = "tcp"
    remotePort = 11080
    
    [proxies.plugin]
    type = "socks5"
    
  4. Win2016 (域控):

    python -m http.server
    

4. 方法三:netsh+FRP组合穿透

4.1 网络路径

外网出口Win2016(frps) → Ubuntu(frpc) → Win2008(netsh-7777) → Win2016:8000

4.2 配置步骤

  1. Win2008 (netsh端口转发):

    netsh interface portproxy add v4tov4 listenport=7777 connectaddress=10.0.10.10 connectport=8000
    
  2. Ubuntu (frpc.toml):

    serverAddr = "192.168.100.155" # 服务端IP
    serverPort = 7000
    
    [[proxies]]
    name = "plugin_socks5"
    type = "tcp"
    remotePort = 10000
    
    [proxies.plugin]
    type = "socks5"
    

5. 攻击机配置

5.1 Proxifier设置

  1. 创建代理链,注意代理链的顺序
  2. 在Proxification Rules中,Action选择创建的代理链
  3. 通过Chrome浏览器访问目标服务

5.2 验证

成功访问后,Proxifier会显示代理流量。

6. 关键点总结

  1. 多层穿透原理:通过逐级建立SOCKS5代理或端口转发,实现内网服务的逐层穿透
  2. 工具选择
    • FRP用于建立稳定的反向代理通道
    • 4dnat提供轻量级SOCKS5代理服务
    • netsh用于Windows系统的端口转发
  3. 配置要点
    • 每级代理需要正确配置上游和下游地址
    • 确保各级防火墙已关闭
    • 代理链顺序必须正确
  4. 适用场景
    • 无法使用C2自动路由功能的环境
    • 需要稳定持久的内网穿透
    • 多层网络环境下的服务暴露

通过以上三种方法的组合使用,可以灵活应对不同网络环境下的内网穿透需求,实现内网服务的有效暴露和访问。

多层内网穿透技术实战指南 1. 实验环境概述 本实验旨在演示如何在不使用C2工具自带路由功能的情况下,通过多种技术组合实现4层内网穿透,将内网服务(Windows Server 2016的8000端口HTTP服务)代理到外部网络。 1.1 网络拓扑 IP1 : 192.168.239.137 (模拟公网出口IP) 4台主机均已关闭防火墙 1.2 防火墙关闭命令 Windows系统 : Linux系统(Ubuntu) : 1.3 使用工具 4dnat frp-0.53.2 Proxifier 2. 方法一:纯FRP多层穿透 2.1 网络路径 外网出口Win2016(frps1) → Ubuntu(frpc1,frps2) → Win2008(frpc2) → Win2016:8000 2.2 配置文件 frps1.toml (外网出口Win2016) : frpc1.toml (Ubuntu) : frps2.toml (Ubuntu) : frpc2.toml (Win2008) : 3. 方法二:4dnat+FRP组合穿透 3.1 网络路径 外网出口Win2016(4dnat-socks5) → Ubuntu(frps) → Win2008(frpc) → Win2016:8000 3.2 配置步骤 外网出口Win2016 : Ubuntu (frps.toml) : Win2008 (frpc.toml) : Win2016 (域控) : 4. 方法三:netsh+FRP组合穿透 4.1 网络路径 外网出口Win2016(frps) → Ubuntu(frpc) → Win2008(netsh-7777) → Win2016:8000 4.2 配置步骤 Win2008 (netsh端口转发) : Ubuntu (frpc.toml) : 5. 攻击机配置 5.1 Proxifier设置 创建代理链,注意代理链的顺序 在Proxification Rules中,Action选择创建的代理链 通过Chrome浏览器访问目标服务 5.2 验证 成功访问后,Proxifier会显示代理流量。 6. 关键点总结 多层穿透原理 :通过逐级建立SOCKS5代理或端口转发,实现内网服务的逐层穿透 工具选择 : FRP用于建立稳定的反向代理通道 4dnat提供轻量级SOCKS5代理服务 netsh用于Windows系统的端口转发 配置要点 : 每级代理需要正确配置上游和下游地址 确保各级防火墙已关闭 代理链顺序必须正确 适用场景 : 无法使用C2自动路由功能的环境 需要稳定持久的内网穿透 多层网络环境下的服务暴露 通过以上三种方法的组合使用,可以灵活应对不同网络环境下的内网穿透需求,实现内网服务的有效暴露和访问。