首页 > 其他分享 >ICMP隐蔽隧道攻击分析与检测(三)

ICMP隐蔽隧道攻击分析与检测(三)

时间:2023-04-03 17:13:00浏览次数:33  
标签:协议 隧道 攻击机 隐蔽 172.16 ICMP 数据包

 • ICMP隧道攻击工具特征分析


 

一、原理

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

通过改变操作系统默认填充的Data,替换成自己构造的数据,这就是ICMP隐蔽隧道的原理。

 

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

进行隐蔽隧道传输的时候,被控端(防火墙内部)运行并接受外部攻击端的ICMP_ECHO数据包,攻击端把需要执行的命令隐藏在ICMP_ECHO数据包中,被控端接收到该数据包,解出其中隐藏的命令,并在防火墙内部主机上执行,再把执行结果隐藏在ICMP_ECHOREPLY数据包中,发送给外部攻击端。(本质上就是利用防火墙不禁止ICMP协议的安全漏洞,通过ICMP的请求和应答数据包,伪造Ping命令的数据包形式,实现绕过防火墙和入侵检测系统的阻拦。)

 

优点:

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

缺点:

  1. ICMP隐蔽传输是无连接的,传输不是很稳定,而且隐蔽通道的带宽很低
  2. 利用隧道传输时,需要接触更低层次的协议 ,这就需要高级用户权限

 

二、隐蔽隧道工具使用及流量特征分析

1、icmpsh建立隧道及数据包分析

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

 

攻击机:172.16.159.129/24

靶机:172.16.159.153/24

 

攻击机执行命令建立隐蔽隧道连接

 

靶机执行命令建立隐蔽隧道连接

 

执行" whoami "命令抓包查看

 

Wireshark抓包分析

 

2、icmptunnel建立隧道及数据包分析

  • icmptunnel通过创建一个虚拟的隧道接口来工作
  • 客户端主机上的所有用户流量都路由到虚拟网卡tun0
  • icmptunnel在此接口上侦听IP数据包
  • 这些数据包封装在ICMP回显数据包中

 

攻击机:172.16.159.2/24

靶机:172.16.159.3/24

 

整体架构:

  

攻击机执行命令建立隐蔽隧道连接

 

观察路由表

 

靶机执行命令建立隐蔽隧道连接

 

 观察路由表

 

此时攻击机和靶机之间通过虚拟网卡tun0建立连接,IP地址为:

攻击机:10.0.1.1/24

靶机:10.0.1.2/24

 

在攻击机执行ssh登陆靶机

抓包物理网卡eth0,可以发现通讯连接全部变成ICMP协议,所有通讯流量都被封装在ICMP协议中传输

 

 

抓包虚拟网卡tun0,流量仍然为正常的协议通讯

 

3、ptunnel建立隧道及数据包分析

ptunnel 全称 PingTunnel,Kali下自带该工具

假设场景,当前已经拿下了一台外网 Web Linux 服务器,想通过它利用 ICMP 协议连接内网的一台已经开启远程桌面的 Windows ,网络结构简化如下:

 

 PC 本机
||              
||
||
Kali 攻击机       172.16.159.2 (外网)
||              
||
||
Linux Web 跳板机  172.16.159.3 (外网)
||               172.16.30.3  (内网)
||
||
Win RDP 目标机    172.16.30.2 (内网)

 

在 Kali 攻击机上执行以下命令

ptunnel -p 172.16.159.3 -lp 3389 -da 172.16.30.2 -dp 3389 -x pass

-p 指定跳板机外网IP

-lp 指定本机的监听端口

-da 指定目标机的内网IP

-dp 指定目标机的端口

-x 设置隧道密码

 

在 Linux Web 跳板机上执行以下命令

ptunnel -x pass

 

 之后访问 Kali 攻击机 172.16.159.2 的 3389 端口就会连接到 Windows RDP 目标机 192.168.30.2 的 3389 端口了,不过实测发现此ICMP隧道建立的通讯速度慢且不够稳定

 

抓取 Linux Web 跳板机和 Windows RDP 目标机之间的流量,可以发现流量传输的是TPKT协议

(TPKT协议是一个传输服务协议,我们常用的RDP协议(Remote Desktop Protocol,Windows的远程桌面协议)就是基于TPKT)

 

抓取 Kali Linux 攻击机和 Linux Web 跳板机之间的流量,可以发现流量传输已经变成ICMP协议

 

三、HW行动之ICMP隧道攻击的应用

2022年HW病毒木马在反连C2过程中使用的协议呈现出多样化的趋势,不再局限于经典的TCP、HTTP和HTTPS,少量样本开始使用ICMP隧道和DNS隧道进行通信。

样本描述 样本信息
Sha256 d145e9a2a6e9e904aa2984ae9282d384631f757a978adf24a09dd2600011834a
SHA1 44bacb493e84a14f9f0dc384b0f9648b50dade8e
MD5 70804a1efac34e4f0e24fd0af5286692
文件类型 EXE
文件大小 4.67MB
文件名称 投诉举报证据.dоcxㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ                        ...ㅤㅤ       ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ    .exe
功能描述 后门木马
技术特点 Go语言加载器,会将后门样本释放本地执行,样本可进行icmp通信

 

这是一个使用ICMP协议进行通信的样本。样本外层使用Go语言编写的加载器,负责将诱饵Word文档和木马模块释放执行。

 

之后,木马将在C:\Users\Public目录下释放名为svchost.exe木马并启动执行。

  

样本利用ICMP协议同C2进行通信,ICMP协议中的data字段可写入任意自定义数据,样本会将上线数据填充1024个字节放在ICMP协议的data字段,并且返回的ICMP数据包的data字段也是固定的1024个字节。

C2会对接收的ICMP流量进行判断,如果data数据不符合其格式,将不会发回响应包。在接收到到响应后,样本会基于C2返回的数据执行不同的功能。

 

标签:协议,隧道,攻击机,隐蔽,172.16,ICMP,数据包
From: https://www.cnblogs.com/congcon/p/17270262.html

相关文章

  • 证书过期的隐蔽错误
    几周前偶然进入译卷,发现里面的题目训练部分出错了,提示是你现在无法访问yijuan.xyz,因为网站使用的是HSTS。网络错误和攻击通常是暂时的,因此该网页以后可能会恢复。通过直接访问设置的NodeJs开启的端口以及利用postman发送请求,均显示该网页证书已过期。一查看证书时间,好家伙,1......
  • ABAQUS盾构隧道开挖模型Cae文件,一环7片,含螺栓,配筋
    ABAQUS盾构隧道开挖模型Cae文件,一环7片,含螺栓,配筋。(此模型用的㎜单位制)YID:38300610693753555......
  • ABAQUS隧道模拟,新建盾构隧道下穿既有隧道
    ABAQUS隧道模拟,新建盾构隧道下穿既有隧道。包含盾壳,注浆层,注浆压力,衬砌等YID:93200620867394336......
  • 为什么说 ICMP 协议是网络最强辅助
    大家好,我是风筝轻解网络系列又来了。已有高清PDF版本可以离线阅读了,全册65页,如果有需要离线版的高清PDF可以直接下载。今天咱们说说ICMP协议。ICMP可谓是网络世......
  • ICMP协议说明-笔记
    ICMP协议说明-笔记ICMP的作用:​ ICMP是Internet控制报文协议,主要是传递控制信息的,而且是无连接的协议。当遇到IP路由器无法按当前的传输速率转发数据包等情况时,会自动发......
  • ICMP协议详解
    来源:https://info.support.huawei.com/info-finder/encyclopedia/zh/ICMP.html因特网控制报文协议ICMP(InternetControlMessageProtocol)是一个差错报告机制,是TCP/IP协议......
  • 旁挂式三层组网-隧道转发模式web配置
    拓扑图相关命令1.AR12.AR23.LSW14.LSW25.AC16.Cloudweb配置在ac1上配置与cloud相关网段的vlan1,同时开启HTTP服务在浏览器上登入https://网段......
  • 流量分析五之ICMP协议
    ICMP协议Internet控制消息协议ICMP(InternetControlMessageProtocol),用来在网络设备间传递各种差错和控制消息,并对于收集各种网络信息、诊断和排除各种网络故障等方面......
  • python3和scrapy使用亿牛云隧道代理问题以及代码
    一、前言近期,我参与了一个需要爬取国家食品药品监督局数据的项目,但该网站存在IP屏蔽机制。因此,我需要在Scrapy框架中实现自动IP切换,才能完成任务。然而,尽管我使用了第三方......
  • Cisco _OSPF_GRE隧道
    Cisco路由器的动态路由加上GRE隧道,R1和R4路由器通过Gre实现内部网络的通信,不通过R2和R3路由器进行通信。一、基础配置1、配置各路由器的lo0口IP地址R1lo01.1.1.......