ICMP隧道通信原理与通信特征

一. ICMP 隧道技术解析

1.1 ICMP协议

ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

主要概念有:

1.确认ip数据包是否成功到达目的地

2.通知源主机发送ip数据包丢失的原因

3.ICMP是基于IP协议工作的

4.ICMP只能作用于IPV4,IPV6下,使用ICMPv6

ICMP帧格式如下所示

其中,类型和代码字段决定了ICMP报文的类型,如下图所示

1.2 ICMP隧道技术原理

由于ICMP报文自身可以携带数据,而且ICMP报文是由系统内核处理的,不占用任何端口,因此具有很高的隐蔽性。

通常ICMP隧道技术采用ICMP的ICMP_ECHO和ICMP_ECHOREPLY两种报文,把数据隐藏在ICMP数据包包头的选项域中,利用ping命令建立隐蔽通道。

进行隐蔽传输的时候,肉鸡(防火墙内部)运行并接受外部攻击端的ICMP_ECHO数据包,攻击端把需要执行的命令隐藏在ICMP_ECHO数据包中,肉鸡接收到该数据包,解出其中隐藏的命令,并在防火墙内部主机上执行,再把执行结果隐藏在ICMP_ECHOREPLY数据包中,发送给外部攻击端。

简单的说就是,利用ICMP的请求和应答数据包,伪造Ping命令的数据包形式,实现绕过防火墙和入侵检测系统的阻拦。

1.3 ICMP隧道优缺点

优点:

1.防火墙对ICMP_ECHO数据包是放行的,并且内部主机不会检查ICMP数据包所携带的数据内容,隐蔽性高。

缺点:

1.ICMP隐蔽传输是无连接的,传输不是很稳定,而且隐蔽通道的带宽很低

2.利用隧道传输时,需要接触更低层次的协议 ,这就需要高级用户权限

二. ICMP隧道攻击实现以及流行工具展示

二. ICMP隧道攻击实现以及流行工具展示

这一工具简单并且便携。受控端(客户端)使用C语言实现。只能运行在目标Windows机器上,而主控端(服务端)由于已经有C和Perl实现的版本,而且之后又移植到了Python上,因此可以运行在任何平台的攻击者机器中。

2.1.1 icmpsh建立隧道及数据包分析

可以看到已经实现成功。

抓包,可以看到我们输入的命令

2.2 icmptunnel

icmptunnel是通过创建虚拟网卡,将所有流量都经过这个虚拟网卡。即ICMP隧道

2.2.1 icmptunnel建立隧道及数据包分析

客户端主机上的所有用户流量都路由到虚拟网卡tun0。icmptunnel在此接口上侦听IP数据包。这些数据包封装在ICMP回显数据包中。

建立ICMP隧道

此时所有流量都通过虚拟网卡,即icmp隧道

2.3 ptunnel

ptunnel支持大多数具有libpcap的操作系统,从版本0.7开始,ptunnel也可以在Windows上编译

前提是需要装WinPcap

2.3.1 petunnel 建立隧道及数据包分析

使用命令建立ICMP隧道

三. 检测icmp隧道通信特征

3.1 icmp会话中数据包的总数

一个正常的 ping 每秒最多只会发送两个数据包,而使用 ICMP隧道的浏览器在同一时间会产生大量 ICMP 数据包。

3.2 隧道数据通常比较大

ICMP隧道 数据包中DATA 往往大于 64 比特

3.3 请求包和响应包内容不一致

而正常的icmp数据包里,请求和回应部分数据是一致的

3.4 部分隧道工具会显示tun的标志

学网安就来合天网安实验室

(0)

相关推荐

  • 内网转发及隐蔽隧道 | 使用ICMP进行命令控制(Icmpsh)

    使用ICMP进行命令控制(Icmpsh) 目录 ICMP隧道 使用ICMP进行命令控制(Icmpsh) ICMP隧道 ICMP隧道简单实用,是一个比较特殊的协议.在一般的通信协议里,如果两台设备要进行 ...

  • 24 张图搞定 ICMP:最常用的网络命令 ping 和 tracert

    ICMP IP 是尽力传输的网络协议,提供的数据传输服务是不可靠的.无连接的,不能保证数据包能成功到达目的地.那么问题来了:如何确定数据包成功到达目的地? 这需要一个网络层协议,提供错误检测功能和报告 ...

  • 客专ZPW-2000A轨道电路CAN通信原理及故障举例

    故障案例讲解: 2021年3月9日0:30,XX电子工区值守人员利用XX站天窗点内对XX站轨道电路通信板1 CAND通信中断问题进行处理.处理过程中首先重启轨道电路通信板,依旧通信中断.更换新的通信板 ...

  • Socket通信原理

    嵌入式专栏 1 关于Socket 学习过网络编程,或者网络开发的朋友都应该听说过socket. socket又叫套接字,是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开.读 ...

  • 西电2021年春学期 通信原理(大作业)答案-简答题

    三. 简答题(本大题共 6 小题,每小题 5 分,共 30 分) 23.带宽为 6.5MHz 的某高斯信道, 若信道中的信号功率与噪声功率谱密度之比为 45.5MHz,试求其信道容量. 24. 某二进 ...

  • 西电2021年春学期 通信原理(大作业)答案-3

    三.        简答题(本大题共 6 小题,每小题 5 分,共 30 分) 23.带宽为 6.5MHz 的某高斯信道, 若信道中的信号功率与噪声功率谱密度之比为 45.5MHz,试求其信道容量. ...

  • 西电2021年春学期 通信原理(大作业)答案-1

    一.        选择题(本大题共 5 小题,每小题 2 分,共 10 分) 1. 下列调制方式中,属于线性调制方式的有(  A   ). A.AM   :        B.:FM :      ...

  • PPT 视频带你学习通信原理,建议收藏

    文末可获取本文PDF版资料 通信原理 第3版 主编 高媛媛 魏以民 郭明喜,教材<通信原理 第3版>(ISBN:978-7-111-66043-9),本书是教育部普通高等教育国家级精品教材 ...

  • 新华5G视频彩铃|“通信+媒体”的双重特征让视频彩铃更出众。

    随着5G时代的来临,物联网.AI等技术在5G营销中占据了重要位置,广告行业也紧跟着移动通信技术的发展步伐,不断地迭代更新.从传统纸媒到文字图片再到视频.VR全景,人机交互,伴随着广告内容和形式多样化的 ...

  • TCP/IP通信原理,Python网络编程详解!

    TCP/IP通信原理,Python网络编程详解!

  • 红外通信原理

    一. 红外通信原理 红外遥控有发送和接收两个组成部分.发送端采用单片机将待发送的二进制信号编码调制为一系列的脉冲串信号,通过红外发射管发射红外信号.红外接收完成对红外信号的接收.放大.检波.整形,并解 ...