简介
前面写了一篇中间人攻击的代理与劫持相关的配置,今天来介绍一下劫持过程相关的详细设置,以及标记/替换流量,History处理,过滤流量,网站树视角等使用技巧和流程。
劫持的详细解释
劫持界面
开始劫持前我们先对整个劫持页面进行熟悉:
1.设置代理监听主机,远程模式可以修改为0.0.0.0以监听主机所有网卡。
2.设置代理监听端口,设置一个不被占用的端口。
3.设置下游代理,比如把Yakit的流量发给另一个代理软件
4.开启该选项将支持 HTTP/2.0 劫持,关闭后自动降级为HTTP1.1,开启后 HTTP2 协商失败也会自动降级。
5.适配国密算法的 TLS (GM-tls) 劫持,对目标网站发起国密 TLS 的连接
6.根据填写的正则规则,对符合规则的数据包进行染色、标记、替换、打tag等操作,方便用户快速筛选出目标数据包。Yakit目前提供55条默认规则,点击默认配置导入即可使用。
7.开启启用插件则表示,进入劫持页面就会加载在侧边栏 ⑧ 当中选择的插件以及编写插件时设置了默认启动的插件。
8.插件商店当中的"MITM插件" 和 "端口扫描插件"类型的插件。
9.插件分组:将插件按照自己的使用习惯进行分组,便于在使用插件时快速勾选自己需要的插件。插件组在整个Yakit里是共用的,只要有加载插件的地方就使用插件分组。
10.根据关键字或者tag快速搜索所需插件。
11.下拉显示已创建过的分组,并进行分组选择。
12.高级配置:
开始劫持
1.在劫持页面的左上角的①单选框选择手动劫持,打开浏览器,输入你需要访问的URL(以https://baidu.com/ 为例)并回车,这时你将会看到数据流量经过 Yakit 并暂停,您可以查看或修改数据包。选择自动放行则会放行所有的数据包,被动日志则为劫持模块、插件加载、被动扫描的执行日志。
2.选择手动劫持劫持到请求以后,点击右边② 丢弃请求 则该条数据将会丢失,不在继续处理且不会出现在history中,③提交数据则会将该数据包继续传输下去并记录在history并开始劫持下一个数据包。
3.劫持到请求以后,在右边单选框④劫持响应处选择当前请求,则会劫持到当前请求包对应的响应数据包。选择"所有"则会劫持所有请求的响应数据包。
4.在整个数据包展示处,我们可以看到HTTP请求的数据进行手工的修改,数据主要包含了:请求地址、http协议版本、主机头、浏览器信息、Accept可接受的内容类型、字符集、编码方式、cookie等,点击鼠标右键可以对数据包进行更多的操作:
5.劫持到的所有的数据包都会存入到history中,劫持后可以在history查看感兴趣的数据包。关于History功能的详情请移步 History进行查看。
标记和替换流量
在日常的工作中,我们需要对测试的目标网站进行流量分析;当然除了在分析流量之外,我们经常需要涉及一些操作,以实现对流量的修改。
该功能主要是替换数据包中符合规则的内容,比如替换数据包中自己的敏感信息,对数据包进行颜色标记或者打上标签,方便对数据包进行分类,或快速找出自己感兴趣的数据包。
导入/导出规则
在启动 MITM 之前,我们就可以配置这些规则,当然,我们也可以在 MITM 劫持过程中动态修改。
首先,在开始劫持页面的内容规则选项我们可以看到 ①默认配置 ② 导入配置 ③导出配置 三个与内容规则相关的操作选项。我们点击默认配置选项。
在弹出的对话框中,点击 ①使用默认配置,导入JSON以后,点击 ②导入
即可看到成功导入官方默认的55条规则内容,如果想使用其他规则,只需将JSON文件复制进来,点击导入即可。
**注意:**全部替换是本地导入的规则是否需要覆盖之前导入的规则,如果是新增规则请将全部替换关闭,如果是想进行覆盖,则可开启全部替换。
点击内容规则旁边的小齿轮,即可查看官方默认规则内容,官方规则如图所示:
点击右上角的导出配置,可以将规则导出为JSON文件,可将文件进行分享给他人使用。
新建/编辑规则
在劫持页面点击右上角规则配置可以查看已有规则:
编写规则的部分采用 Golang 风格正则表达式:推荐使用 https://regex101.com/ 调试,规则如果编译失败,则自动降级为关键字匹配
已有的规则可以进行编辑操作,或者新增规则,编辑或新增以后点击添加该规则或 修改进行保存
标记替换流量案例
标记替换文本
在规则内容页点击右上角新增规则,然后对每个选项进行配置。
保存规则,测试一下:
说明:
1.这些规则是 针对代理全流量的,不光会对用户在 History 看到的过滤后的请求生效,对一些已经被过滤掉的 JS 或者静态文件都是生效的,编写简单规则务必明确场景
2.规则的执行顺序是有意义的
3.规则基于 Golang 风格正则/Glob/关键字, 采取降级策略:即如果无法编译为正则,将会最后被降级为 “关键字” 匹配。
4.替换后的数据包将会被自动修复,用户不需担心数据包毁坏协议
今天就暂时分享到这里,后续技巧持续更新!