前言
本次我们来研究以下ICMP隧道建立后可以从哪些特征中进行检测
准备工作
环境搭建参考:基于Ptunnel建立ICMP隧道
工作原理
通过关闭ICMP隧道服务端的ICMP响应功能,让ICMP隧道agent接管ICMP报文,两端把通讯数据包封装到ICMP报文的DATA字段中进行传输。
默认的windows ping包,DATA内容固定包含:abcdefghijklmnopqrstuvwabcdefghi,payload长度默认32字节
默认的linux ping包,DATA内容固定包含: !”#$%&’()*+,-./01234567,payload长度默认48字节
通过ICMP隧道传输SSH数据时如下图
问题1:一次隧道通讯是否会记录在一条flow中
建立一个超长隧道连接后发现,一次隧道通讯记录再一条flow中
检测方法
- 收集各系统的默认ping包大小,出现异常ping包(需要数据包层bro的日志层无法解决)
- 同一个主机窗口时间内出现多个不同大小的ping包(需要数据包层bro的日志层无法解决)
- 同一个主机窗口时间内出现大量ping包(需要数据包层bro的日志层无法解决)
- 一条ICMP flow持续时间超长且通讯数据较大