利用icmp tunnel建立通信隧道

admin 2021年10月30日12:26:41评论367 views字数 1509阅读5分1秒阅读模式
声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果
与文章作者无关

文章来源木木安全

原文:https://www.mumsec.com/?p=66

0x01 说明

icmptunnel是用来搭建icmp隧道的,只能都运行在linux系统上。而pingtunnel可以运行在linux和windows上

icmptunnel是通过建立一个tun0网卡进行的点对点通信

攻击机ip:192.168.56.128

目标机ip:192.168.56.143

项目地址:https://github.com/jamesbarlow/icmptunnel


0x02 过程

在攻击机只能ping通目标机的情况下,攻击机运行icmptunnel做为客户端,目标机运行icmptunnel做为服务端

首先我们在攻击机和受害机都需要安装下icmptunnel,并把2个系统的icmp回显禁用掉,命令如下

git clone https://github.com/jamesbarlow/icmptunnel.git
cd icmptunnel
make
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

然后我们在目标机上运行icmptunnel,简单跟一个s参数即可。运行后会提示打开了一个隧道tun0,我们这时需要给tun0设置一下ip和子网掩码(使用tun0点对点和目标机通信)

# ./icmptunnel –s &
# ifconfig tun0 10.0.0.1 netmask 255.255.255.0

利用icmp tunnel建立通信隧道


现在在攻击机上将icmptunnel指向目标机,病设置一下ip地址

# ./icmptunnel 192.168.56.143 &
# ifconfig tun0 10.0.0.2 netmask 255.255.255.0

利用icmp tunnel建立通信隧道


此时,就拥有一个通过 ICMP 数据包运行的点对点隧道。服务器端是10.0.0.1,客户端是10.0.0.2。在客户端,尝试通过 SSH 连接到目标服务器:

# ssh [email protected]

利用icmp tunnel建立通信隧道


当然,还可以将目标服务器用做加密的socks代理

0x03 应对icmp隧道措施

使用icmp隧道时,会集中在某个时间点产生大量的icmp数据包,可以通过wireshark进行icmp数据包分析

  • 检测同源的icmp数据包数量,正常的ping命令每秒最多两个数据包,隧道会产生大量的数据包。

  • 注意payload大于64bit的ICMP数据包

  • 寻找响应数据包和请求数据包payload不一致的ICMP数据包

windows系统下ping默认传输的是:abcdefghijklmnopqrstuvwabcdefghi,共32bytes
linux系统下,ping默认传输的是48bytes,前8bytes随时间变化,后面的固定不变,内容为!”#$%&’()+,-./01234567
  • 检查ICMP数据包的协议标签,比如icmptunnel会在所有icmp payload前面加上TUNL标识来标识隧道

走过路过的大佬们留个关注再走呗利用icmp tunnel建立通信隧道


最后

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。


无害实验室sec拥有对此文章的修改和解释权如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的


原文始发于微信公众号(无害实验室sec):利用icmp tunnel建立通信隧道

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年10月30日12:26:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   利用icmp tunnel建立通信隧道https://cn-sec.com/archives/605623.html

发表评论

匿名网友 填写信息