如何利用ICMP建立C2會話?
在之前的文章中我為大家展示瞭如何獲取各種C2會話。本文我將為大家介紹另一種獲取C2會話的方法,即利用ICMP來建立C2會話。在正式開始之前,讓我們先來簡單瞭解下什麼是ICMP? ICMP是(Internet Control Message Protocol)Internet控制報文協議。它允許網際網路連線的裝置在遇到傳送資料包的問題時,將錯誤訊息傳送回源IP地址。這個協議非常的實用,但對於攻擊者而言它的用途卻不止於此。
為了設定我們的會話,我們需要先來下載幾個檔案。第一個檔案將在攻擊機上執行。你可以在這裡下載到: https://github.com/inquisb/icmpsh 。我在我的Kali機器上克隆了該檔案。第二個檔案是一個PowerShell指令碼,我們將在受害者機器上執行。你可以在此處下載到: https://github.com/samratashok/nishang/blob/master/Shells/Invoke-PowerShellIcmp.ps1 。
在我的攻擊機例項上,我克隆了icmpsh。
我運行了python指令碼來啟動我的偵聽程式。
如下所示,執行該指令碼需要為其提供源IP以及目標IP地址。
可以看到什麼都沒發生,這是由於我們未進行客戶端的相關設定。轉到GitHub站點並儲存該原始碼。
獲取PowerShell程式碼後,我們需要將其傳輸到受害機器上。傳輸的方法有很多,這裡我就不再詳細說明了。這只是一個測試所以我直接拷貝了該檔案。
現在指令碼已準備就緒,下面讓我們來執行該指令碼。這是一個PowerShell指令碼,所以我們需要開啟一個PowerShell命令提示符。
開啟PowerShell命令提示符後,我們來執行該指令碼。導航到放置檔案的位置並執行以下命令。
成功執行指令碼後,在我的kali上我獲取到了一個會話連線。如下:
現在我可以執行任何命令,就像我在受害者機器上一樣。
那麼,使用ICMP建立C2會話的好處又是什麼呢?所有通訊都被注入到ICMP資料包,包括請求和響應。由於所有流量都在ICMP資料包中,因此基於代理的防火牆無法檢測到這些流量。但這並不是說無法檢測到這些連線,而是可以繞過某些防火牆規則。
*參考來源: blackhillsinfosec ,FB小編secist編譯,轉載請註明來自FreeBuf.COM