#渗透测试#红蓝对抗#SRC漏洞挖掘# Yakit(5)进阶模式-MITM中间人代理与劫持(上)
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅读。
目录
Yakit进阶模式-MITM中间人代理与劫持
背景介绍
MITM 交互式劫持技术
MITM劫持,却不止于劫持
证书安装和免配置启动
免配置模式
CA证书的安装
开始劫持
开始劫持
标记/替换流量
导入/导出规则
新建/编辑规则
细节说明
Yakit进阶模式-MITM中间人代理与劫持
背景介绍
"MITM" 是 "Man-in-the-Middle" 的缩写,意思是中间人攻击。
MITM攻击是一种网络攻击技术,攻击者通过欺骗的手段,让自己成为通信双方之间的中间人,从而可以窃取双方之间的通信内容、修改通信内容、甚至篡改通信流量,从而实现窃取信息、伪造信息等攻击目的。
"未知攻,焉知防",在渗透测试中,MITM劫持可以被用来模拟真实的黑客攻击,以测试系统和应用程序的安全性。
渗透测试中使用MITM攻击的一个典型场景是在测试Web应用程序时。攻击者可以使用MITM技术拦截应用程序和服务器之间的通信,以获取用户名和密码等敏感信息,或者篡改应用程序返回的数据。攻击者可以使用代理工具,来捕获应用程序发送和接收的数据,对数据进行修改或篡改,然后重新发送到应用程序或服务器。这样就可以测试应用程序是否可以有效地防范MITM攻击,并且是否能够正确地处理应用程序和服务器之间的通信。
MITM攻击还可以用来测试网络的弱点,并检测是否存在潜在的漏洞。通过MITM攻击,渗透测试人员可以捕获网络中传输的数据,并进行分析和审查,以发现可能存在的安全问题。
例如,攻击者可以利用MITM攻击来欺骗局域网内的设备,并拦截设备之间的通信流量,从而窃取敏感信息,或者篡改数据包,对网络进行进一步的攻击。
总的来说,MITM劫持是渗透测试中常用的一种技术,它可以帮助测试人员发现网络中可能存在的安全漏洞,提供相应的建议和解决方案,从而保护系统和应用程序的安全。
相比于基础工具的使用,这一部分内容相对来说需要一定的安全基础,属于Yakit的进阶内容。故此部分内容归属于进阶模式。
MITM 交互式劫持技术
Yakit的MITM模块原理是启动一个HTTP代理,自动转发流量,当用户启动手动劫持后,会停止自动转发,阻塞请求,并将请求出栈,做解压Gzip、处理chunk、解码等处理,让请求变得人类可读,并显示在用户前端,用户可以对请求做查看、修改或重放。
重放时,会对用户构造的HTTP请求数据包做修复,保证请求包的有效性。Yak引擎手动实现了HTTP库,所以用户可以自定义畸形的请求包、响应包,应用于一些特殊场景下的漏洞利用。
MITM劫持,却不止于劫持
MITM操作台可百分百替代 BurpSuite,下载并安装证书、劫持请求、响应、编辑劫持到的数据包等。
并且提供一整套顺畅的工作流,劫持 => History => Repeater / Intruder,劫持到的数据,在History可以查看历史数据,选择需要“挖掘”的数据包,发送到 WebFuzzer 进行 Repeater / Intruder 操作。
除了这些典型的操作场景外,MITM 还提供了插件被动扫描、热加载、数据包替换、标记等更灵活的功能。
接下来的章节将对MITM模块进行详细介绍MITM的功能。
证书安装和免配置启动
要在渗透测试中使用Yakit 的 MITM劫持,您可以:
- 使用免配置模式。不需要任何其他配置,只需安装Chrome 浏览器,免配置启动之后将打开一个新的浏览器会话,其中所有流量都将通过 Yakit 自动代理。无需安装 Yakit 的 CA 证书就可以使用它来通过 HTTPS 进行测试。
- 使用您选择的外部浏览器。由于各种原因,您可能不想使用免配置的代理的浏览器。在这种情况下,您需要执行一些其他步骤来配置浏览器以与 Yakit的 MITM 一起使用,并在浏览器中安装 Yakit 的 CA 证书。
免配置模式
点击
手工测试--MITM交互式劫持即可进入MITM劫持页面,点击免配置启动进入免配置启动设置界面。
CA证书的安装
关于证书的安装(以windows为例),主要有以下步骤:
首先,需要我们根据图中所示配置好代理的监听端口和浏览器的代理服务器设置,然后点击③
高级配置并下载证书。
修改下载证书的后缀,去掉“.pem”,双击进行安装,证书存储选择 '受信任的根证书颁发机构'
拓展知识:CRT和PEM是两种常见的数字证书格式,用于加密和验证通信过程中的数据安全。CRT是一个X.509证书文件格式,PEM是一种可打印的证书文件格式,可以包含多种类型的加密和公钥证书。PEM格式通常使用base64编码,并且以“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”之间的文本块包含证书数据。PEM格式还可以用于存储密钥、证书请求和其他类型的加密数据。CRT格式是一种二进制格式,包含用于验证数字证书有效性的公钥、证书持有者的信息以及证书签名。CRT格式通常用于安装数字证书到Web服务器或其他应用程序中。在实践中,PEM格式比CRT格式更为常见,因为PEM格式的文件可以轻松地通过文本编辑器进行查看和编辑,并且PEM格式也可以包含多种类型的加密和公钥证书。不过,在某些情况下,例如在安装数字证书到Web服务器上时,CRT格式可能更为方便。
至此,我们已经完成Yakit-MITM证书的安装,在Yakit中可以对HTTPS请求进行抓包。
开始劫持
- 1.设置代理监听主机,远程模式可以修改为0.0.0.0以监听主机所有网卡。
- 2.设置代理监听端口,设置一个不被占用的端口。
- 3.开启该选项将支持 HTTP/2.0 劫持,关闭后自动降级为HTTP1.1,开启后 HTTP2 协商失败也会自动降级。
- 4.根据填写的正则规则,对符合规则的数据包进行染色、标记、替换、打tag等操作,方便用户快速筛选出目标数据包。Yakit目前提供55条默认规则,点击
默认配置导入即可使用。- 5.开启启用插件则表示,进入劫持页面就会加载在侧边栏 ⑥ 当中选择的插件以及编写插件时设置了默认启动的插件。
- 6.插件商店当中的"MITM插件" 和 "端口扫描插件"类型的插件。
- 7.插件分组:将插件按照自己的使用习惯进行分组,便于在使用插件时快速勾选自己需要的插件。插件组在整个Yakit里是共用的,只要有加载插件的地方就使用插件分组。
- 8.根据关键字或者tag快速搜索所需插件。
- 9.下拉显示已创建过的分组,并进行分组选择。
- 10.高级配置:
- 11.为劫持再设置一个代理,通常用于访问中国大陆无法访问的网站或访问特殊网络/内网,也可用于接入xray等被动扫描。
- 12.客户端TLS:导入TSL证书,用于 mTLS(Mutual TLS)开启客户端验证的 HTTPS 网站抓包。
- 13.过滤器:通过配置过滤条件,来控制只抓/不抓哪些数据包,也可以理解为劫持的“黑白名单”。
- 14.下载Yakit证书。
开始劫持
点击
劫持启动后进入到劫持界面:选择丢弃请求,则该条数据不会出现在history,提交数据则会将该数据包记录在history 并开始劫持下一个数据包。
在劫持页面的左上角的①单选框选择
手动劫持,打开浏览器,输入你需要访问的URL(以百度一下,你就知道 为例)并回车,这时你将会看到数据流量经过 Yakit 并暂停,您可以查看或修改数据包。选择自动放行则会放行所有的数据包,被动日志则为劫持模块、插件加载、被动扫描的执行日志。选择
手动劫持劫持到请求以后,点击右边②丢弃请求则该条数据将会丢失,不在继续处理且不会出现在history中,③提交数据则会将该数据包继续传输下去并记录在history并开始劫持下一个数据包。劫持到请求以后,在右边单选框④
劫持响应处选择当前请求,则会劫持到当前请求包对应的响应数据包。选择"所有"则会劫持所有请求的响应数据包。在整个数据包展示处,我们可以看到HTTP请求的数据进行手工的修改,数据主要包含了:请求地址、http协议版本、主机头、浏览器信息、Accept可接受的内容类型、字符集、编码方式、cookie等,点击鼠标右键可以对数据包进行更多的操作:
劫持到的所有的数据包都会存入到
history中,劫持后可以在history查看感兴趣的数据包。关于History功能的详情请移步 History进行查看。标记/替换流量
在日常的工作中,我们需要对测试的目标网站进行流量分析;当然除了在分析流量之外,我们经常需要涉及一些操作,以实现对流量的修改。
作为一个合格的工程师,任何时候掌握对流量的完全控制权其实是非常重要的基本技能。
该功能主要是替换数据包中符合规则的内容,比如替换数据包中自己的敏感信息,对数据包进行颜色标记或者打上标签,方便对数据包进行分类,或快速找出自己感兴趣的数据包。
导入/导出规则
在启动 MITM 之前,我们就可以配置这些规则,当然,我们也可以在 MITM 劫持过程中动态修改。
首先,在开始劫持页面的内容规则选项我们可以看到 ①
默认配置②导入配置③导出配置三个与内容规则相关的操作选项。我们点击默认配置选项。
在弹出的对话框中,点击 ①
使用默认配置,导入JSON以后,点击 ②导入
点击右上角的
导出配置,可以将规则导出为JSON文件,可将文件进行分享给他人使用。新建/编辑规则
在劫持页面点击右上角
规则配置可以查看已有规则编写规则的部分采用 Golang 风格正则表达式:推荐使用 regex101: build, test, and debug regex 调试,规则如果编译失败,则自动降级为关键字匹配
已有的规则可以进行编辑操作,或者新增规则,编辑或新增以后点击
添加该规则或修改进行保存
细节说明
这些规则是 针对代理全流量的,不光会对用户在 History 看到的过滤后的请求生效,对一些已经被过滤掉的 JS 或者静态文件都是生效的,编写简单规则务必明确场景
规则的执行顺序是有意义的
规则基于 Golang 风格正则/Glob/关键字, 采取降级策略:即如果无法编译为正则,将会最后被降级为 “关键字” 匹配。
替换后的数据包将会被自动修复,用户不需担心数据包毁坏协议
未完待续~~!!!!!!!!
相关文章:
#渗透测试#红蓝对抗#SRC漏洞挖掘# Yakit(5)进阶模式-MITM中间人代理与劫持(上)
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...
vue3 项目搭建-9-通过 router 在跳转页面时传参
第一步,在跳转链接处挂载方法,将要传输的数据传入: <a href"#" click.prevent"goToArticle(obj.id)" class"click"><h1>{{obj.title}}</h1><p>作者:{{obj.author}}</p&…...
Java、python标识符命名规范
Java 包名所有字母一律小写。例如cn.com.test类名和接口名每个单词的首字母都要大写。例如ArrayList、Iterator常量名所有字母都大写,单词之间用下划线连接,例如:DAY_OF_MONTH变量名和方法名的第一个单词首字母小写,从第二个单词…...
高效职场人
文章目录 1.时间效能 ABCD2.高效员工的习惯之 自我掌控的秘诀3.学会做主4.学会互赢5.学会沟通、学会聆听6.学会可持续发展:四个方面更新自我(1)更新身体(2)更新精神(3)更新智力(4)更新人际情感 1.时间效能 ABCD 时间四象限: A类任务:重要且紧…...
深入探索现代 IT 技术:从云计算到人工智能的全面解析
目录 1. 云计算:重塑 IT 基础设施 2. 大数据:挖掘信息的价值 3. 物联网(IoT):连接物理世界 4. 区块链:重塑信任机制 5. 人工智能(AI):智能未来的驱动力 结语 在当今…...
【AI学习】苹果技术报告《Apple Intelligence Foundation Language Models》
文章地址:https://machinelearning.apple.com/papers/apple_intelligence_foundation_language_models.pdf 这篇文章介绍了苹果公司开发的基础语言模型(Apple Foundation Language Models,简称AFM),这些模型旨在为苹果…...
深度相机获取实时图像总结
问题详情:之前一直把曝光调整到50000,画面一直很流畅,知道领导要求将曝光改成500000时整个程序卡死了 问题解决: 首先怀疑是帧率太低的原因,控制变量后发现不是帧率的问题,看着代码很迷茫,领导…...
Nginx限流实践-limit_req和limit_conn的使用说明
注意: 本文内容于 2024-12-07 19:38:40 创建,可能不会在此平台上进行更新。如果您希望查看最新版本或更多相关内容,请访问原文地址:Nginx限流实践。感谢您的关注与支持! 一、限流 之前我有记录通过CentOS7定时任务实…...
Unity在运行状态下,当物体Mesh网格发生变化时,如何让MeshCollider碰撞体也随之实时同步变化?
旧版源代码地址:https://download.csdn.net/download/qq_41603955/90087225?spm1001.2014.3001.5501 旧版效果展示: 新版加上MeshCollider后的效果: 注意:在Unity中,当你动态地更改物体的Mesh时,通常期望…...
记一次由docker容器使得服务器cpu占满密码和密钥无法访问bug
Bug场景: 前几天在服务器上部署了一个免费影视网站,这个应用需要四个容器,同时之前的建站软件workpress也是使用docker部署的,也使用了三个容器。在使用workpress之前,我将影视软件的容器全部停止。 再使用workpress…...
前端TS基础
文章目录 一、类型1、定义类型2、any、unknown、never3、基础类型4、联合类型5、交叉类型6、type、typeof7、作用域 二、数据结构1、数组2、元组3、函数类型4、对象类型 三、接口四、泛型五、enum六、断言七、工具1、模块2、namespace3、装饰器4、declare5、运算符6、映射类型7…...
前端面经每日一题day06
Cookie有什么字段 Name:cookie的唯一标识符 Value:与Name对应,存储Cookie的信息 Domain:可以访问cookie的域名 Path:可以访问cookie的路径 Expires/Max-Age:超时时间 Size:cookie大小 Ht…...
SOC,SOH含义区别及计算公式
SOC,SOH含义区别及计算公式 两者结合使用,有助于实现更精确的电池管理,延长电池的使用寿命,并确保电池的高效、安全运行。 1. SOC(State of Charge,荷电状态)2. SOH(State of Health…...
阿里云轻量应用服务器开放端口,图文教程分享
阿里云轻量应用服务器如何开放端口?在轻量服务器管理控制台的防火墙中添加规则即可开通端口,开通80端口就填80,开通443就填443端口,开通3306端口就填3306。阿里云百科网aliyunbaike.com整理阿里云轻量应用服务器端口号开通图文教程…...
嵌入式里的“移植”概念
这里因为最近一年看到公司某项目很多代码上有直接硬件的操作,这里有感而发,介绍移植的概念。 一、硬件 先上一个图: 举个例子,大学里应该都买过开发板,例如st的,这里三个层次, 内核ÿ…...
深入探讨 AF_PACKET 套接字
AF_PACKET 套接字是一种用于直接访问网络接口(即网卡)的套接字类型,通常用于网络数据包捕获和分析。它允许应用程序直接与网络接口卡(NIC)交互,而不需要通过网络协议栈。从而可以发送和接收以太网帧。它提供了比普通TCP/UDP套接字…...
Redis的哨兵机制
目录 1. 文章前言2. 基本概念2.1 主从复制的问题2.2 人工恢复主节点故障2.3 哨兵机制自动恢复主节点故障 3. 安装部署哨兵(基于docker)3.1 安装docker3.2 编排redis主从节点3.3 编排redis-sentinel节点 4. 重新选举5. 选举原理6. 总结 1. 文章前言 &…...
CSS系列(1)-- 选择器体系详解
前端技术探索系列:CSS 选择器体系详解 🎯 致读者:探索 CSS 选择器的奥秘 👋 前端开发者们, 今天我们将深入探讨 CSS 选择器体系,这是构建优雅样式表的基础。让我们一起学习如何精确地选中并控制网页中的…...
用Python开发打字速度测试小游戏
本文将带你一步步开发一个简单的打字速度测试小游戏,通过随机生成词组并计算用户输入速度,帮助提升打字技能。 一、功能描述 随机生成一段句子,用户需要尽快输入。计时功能,统计用户输入的总时长。对比正确率和速度,给出评分反馈。二、开发环境 语言:Python依赖库:pygam…...
基于gitlab API刷新MR的commit的指定status
场景介绍 自己部署的gitlab Jenkins,并已经设置好联动(如何设置可以在网上很容易搜到)每个MergeRequest都可以触发多个Jenkins pipeline,pipeline结束后会将状态更新到gitlab这个MR上希望可以跳过pipeline运行,直接将指定的MR的指定pipeline状态刷新为…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...
软件工程 期末复习
瀑布模型:计划 螺旋模型:风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合:模块内部功能紧密 模块之间依赖程度小 高内聚:指的是一个模块内部的功能应该紧密相关。换句话说,一个模块应当只实现单一的功能…...
Element-Plus:popconfirm与tooltip一起使用不生效?
你们好,我是金金金。 场景 我正在使用Element-plus组件库当中的el-popconfirm和el-tooltip,产品要求是两个需要结合一起使用,也就是鼠标悬浮上去有提示文字,并且点击之后需要出现气泡确认框 代码 <el-popconfirm title"是…...




修改下载证书的后缀,去掉“.pem”,双击进行安装,证书存储选择 '受信任的根证书颁发机构'








