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

news2024/11/15 15:50:59

 • 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隧道进行通信。

样本描述

样本信息

Sha256d145e9a2a6e9e904aa2984ae9282d384631f757a978adf24a09dd2600011834a
SHA144bacb493e84a14f9f0dc384b0f9648b50dade8e
MD570804a1efac34e4f0e24fd0af5286692
文件类型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返回的数据执行不同的功能。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/801266.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

测试开发第一章、软件测试介绍

一、什么是软件测试 最常见的理解是:软件测试就是找BUG,发现缺陷。 软件测试就是验证软件产品特性是否满足用户的需求。 从这话我们可以看出以下两点: 测试试图验证软件是“工作的”,也就是验证软件功能执行的正确性测试的活动是以测试人员“预期的结果”为依据,这里的…

centos7 部署 k8s 1m2n

1 系统环境准备 1.1 安装所需工具 yum -y install vim yum -y install wget# 设置yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo1.2 修改…

【性能优化篇】.ttf字体包过大引起的网页加载过慢 font-spider 压缩字体包 适用于任何前端项目

背景 项目使用的是阿里巴巴普惠2.0字体,型号分别是 35-thin 和 45-light 这两个字体包 都是 8mb 左右 本地加载的时候可能速度不会收影响,发到生产和测试环境下,速度会很慢,尤其是测试环境,字体包加载了一分钟&#…

详细分析Python中运算符“==“和“is“的区别

目录 Python中运算符"" Python中运算符"is" ""和"is"的区别 总结 Python中运算符"" 在Python中,双等号运算符"" 用于比较两个值是否相等。它返回一个布尔值,即True或False,…

自动完成网页局部区域截图的方法

一般网页包含标题、导航、正文、图片、广告、外链等内容,但只有正文内容对我们才有价值,或者我们只关心其中的数据分析图表。希望把网页有价值的区域截图下来,在手工截图时,可以利用截图工具选择截图区域,那么能自动截…

如何评估自动化测试脚本的编写时间和维护工作量?

一、如何评估自动化测试脚本的编写时间和维护工作量? 评估自动化测试脚本的编写时间和维护工作量是一个复杂的过程,需要综合考虑以下因素: 脚本复杂性:评估脚本的复杂性,包括测试需求的复杂程度、涉及的功能和模块的复…

简单认识Redis 数据库的高可用

文章目录 一、Redis 高可用:1.简介:2、在Redis中实现高可用的技术 二、Redis持久化:1.持久化的功能:2.Redis 提供两种方式进行持久化: 三、RDB 持久化:1.简介:2.触发条件:4.启动时加…

LeetCode 2050. 并行课程 III:DFS

【LetMeFly】2050.并行课程 III:DFS 力扣题目链接:https://leetcode.cn/problems/parallel-courses-iii/ 给你一个整数 n ,表示有 n 节课,课程编号从 1 到 n 。同时给你一个二维整数数组 relations ,其中 relations[…

jpa生成实体类,jpa根据数据库表生成实体类

jpa生成实体类,jpa根据数据库表生成实体类jpa根据数据库表结构生成实体idea下SpringbootJPA从数据库自动生成实体类JPA用数据库表直接生成实体类Spring boot整合jpa(一),根据表生成实体IDEA下SpringData-JPA根据数据库表生成实体类idea怎么根据数据库表自动生成JPA实…

为什么你在用 ChatGPT 的提示词 Prompt 似乎效果不如人意?

“ 在使用ChatGPT的神奇提示词Prompt时,或许你会发现它的效果并不总是如人所愿。让我们看看其中的原因,以及如何避免这类问题。” 01 — 最近继续在研究以大模型人工智能LLM为大脑的专属知识库的开发技术。偶然看到这么一个智力游戏题目,让大…

HummerRisk V1.3.0 发布

HummerRisk V1.3.0发布: 大家好,HummerRisk 1.3.0和大家见面了,在这个版本中我们继续在多云接入管理、多云检测方式、云资源态势方面提供新的能力,并增加了新的镜像仓库支持类型,并优化了云的区域选择、优化规则组内容…

如何提高单测覆盖率

相关工具推荐: TestMe:用于快速生成测试类 一、抽象一个公共类,将TestMe的配置内容该类MockTest import lombok.extern.slf4j.Slf4j; import org.junit.Before; import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner;impor…

基于SpringBoot+Vue的4S店车辆管理系统设计与实现(源码+LW+部署文档等)

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

浅浅了解线程池

线程池 1.线程池基本概念(了解)1.1 什么是线程池1.2 为什么使用线程池1.3 线程池的优势 2.创建池的方式3.线程池的工作原理(重点)3.1 线程池的七大参数3.2 线程池的四种拒绝策略AbortPolicyCallerRunsPolicyDiscardPolicyDiscardOldestPolicy 3.3 任务队列 4. 自定义线程池(代码…

提供实习证明和奖学金!面向本科生、研究生的 AI 夏令营!第二期开放报名

无论你是新手还是有AI基础 只要你对AI方向感兴趣,有热情 欢迎你加入Datawhale AI 夏令营 联合科大讯飞、阿里云天池 面向在校本科生、研究生 提供暑期实践学习机会 第二期正式开放报名 线上活动,全程免费 报名时间:2023/7/26 - 2023/8/1 1 关…

​渔网格及多边形网格(蜂窝图)表现空间分布特征

重新排版新发。渔网格及多边形网格(蜂窝图)表现空间分布特征。 练习数据: 爬取的山东省胶东五市文保单位。 先上结果图 1.渔网图表现空间分布特征 整体步骤是先对数据做核密度分析,用渔网工具创建渔网格与点,然后将核密度的值赋至渔网格上,最后进行一系列可视化表达。 …

抖音seo短视频矩阵系统源代码开发技术分享

抖音SEO短视频矩阵系统是一种通过优化技术,提高在抖音平台上视频的排名和曝光率的系统。以下是开发该系统的技术分享: 熟悉抖音平台的算法 抖音平台的算法是通过分析用户的兴趣爱好和行为习惯,对视频进行排序和推荐。因此,开发人员…

HTML+CSS+JavaScript:实现京东秒杀倒计时效果

一、产品需求 下图是京东首页的京东秒杀倒计时 我们将模仿京东倒计时做一个下班倒计时效果&#xff08;如下图&#xff09; 二、代码素材 我先把缺失JS部分的代码放在这里&#xff0c;感兴趣的小伙伴可以先自己试试 <!DOCTYPE html> <html lang"en">&…

ABB机器人与S7-1200PLC实现位置坐标数据发送和接收的具体方法

ABB机器人与S7-1200PLC实现位置坐标数据发送和接收的具体方法 上次和大家分享了ABB机器人与S7-1200 PLC进行Socket通信时的基本设置和简单编程测试,具体可查阅以下链接中的内容: S7-1200与ABB机器人进行SOCKET通信的具体方法 本次继续和大家分享,通过Socket通信(TCP)实现…

DSA之图(3):图的遍历

文章目录 0 图的遍历1 图的遍历方法1.1 深度优先搜索DFS1.1.1 DFS的思想1.1.2 邻接矩阵DFS的实现1.1.3 邻接矩阵DFS的代码实现1.1.4 非连通图的DFS遍历1.1.5 DFS算法效率分析 1.2 广度优先搜索BFS1.2.1 BFS的思想&#xff08;连通图&#xff09;1.2.2 BFS的思想&#xff08;非连…