这里提供每一步详细操作,由Hui3c编写,
前排求关注
通过本次的学习,你可以知道或学习到:
- 使用mitmproxy进行简单的ssl劫持
- 使用mitmproxy进行浏览器隐私监听
- mitmproxy简单用法
- mitmproxy劫包,修改包
一、准备阶段
1. 查看Kali和win7的ip,确保在同一局域网ping通
windows 在命令提示符输入:
C:\Users\233>ipconfig
讯享网

Kali在终端输入:
讯享网root@hui:~# ifconfig

值得注意的是,我们需要记住这个网卡的号码!
#kali ip 192.168.0.128 使用网卡0 #win7 ip 192.168.0.103
2. 两台电脑在同一局域网并且能够ping通


二、简单的SSl劫持
- Kali中获取当前网关
讯享网root@hui:~# route -n # Kernel IP routing table # Destination Gateway Genmask Flags Metric Ref Use Iface # 0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 eth0 # 192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
可以看见,网关为192.168.0.1
2. 使用kali进行arp欺骗
格式为:
arpspoof -i 网卡 -t 网关 -r 目标ip
root@hui:~# arpspoof -i eth0 -t 192.168.0.1 -r 192.168.0.103

三、配置防火墙规则,开启转发
主要是为了让mitmproxy监听8080端口
讯享网# 将防火墙重新配置 root@hui:~# iptables -t nat -F # 80端口转至8080端口监听 root@hui:~# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080 # 443端口转至8080端口监听 root@hui:~# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8080
开启流量转发(不然访问不了网页):
# 开启流量转发 root@hui:~# echo 1 > /proc/sys/net/ipv4/ip_forward
四、SSL简单攻击
- 使用默认的配置进行攻击
- 使用伪造的证书进行攻击(本篇不讲)
讯享网# 启动mitmproxy,保存日志到mitmproxy.log root@hui:~# mitmproxy -T --host -w mitmproxy.log
此时,使用win7打开浏览器:

成功的对目标进行ssl欺骗
再看看kali的终端:

已经完成对目标的ssl欺骗。
ssl欺骗怎么能满足我们的需求呢,肯定得干点什么事情对吧
五、给目标安装伪证书
接下来就进入重头戏了,开始我们学习之旅。能够偷偷看看妹子在干什么
- 使用默认的证书
- 使用自己伪造的证书(本篇不讲)
接下来就是要展现你们社会工程学的时间了,这里假设你获得了对方的电脑,你需要在对方的电脑上浏览器访问
使用浏览器访问 mitm.it

然后下载对应电脑版本的证书。接下来再继续动手脚
这里以谷歌浏览器为例子
在谷歌浏览器中进入设置
输入chrome://settings/
1.找到最下面的高级选项,点击进去:

2.找到“管理证书”,点击

3.点击“导入”

4.下一步
5.选择个人信息交换(.*p12)这个文件类型,选择刚刚下载好的证书,继续下一步
6.直接下一步,密码不用输入
7.选择“受信任的根证书颁发机构”

8.完成操作,选择“是”

9.重启浏览器,访问随便一个网站,发现已经可以访问。

10.完成监听!我们在kali这边也能看见访问的记录了!就可以看看小姐姐在干什么

六、mitmproxy 基本用法
# 如果有基础的可以直接略过本大章
1.整理了一些常用的快捷键:
注意:区分大小写
| 键位 | 功能 |
|---|---|
| C | 清空控制台 |
| tab | 请求/响应内容切换 |
| q | 返回上一个页面 |
| Q | 退出mitmproxy |
| m | 调整响应结果显示的格式,如json等 |
| e | 编辑请求,响应 |
| a | 允许通过当前选定的请求 |
| A | 允许通过当前所有的请求 |
| G | 查看最新一条请求 |
| r | 重新发送当前选定的请求 |
| i | 拦截模式编辑 |
2.基本的拦截命令
在控制台输入“i”,然后输入"~q"表示拦截所有请求

3.刷新win7浏览器,发现kali所有被拦截的请求都变成了红色

这时我们可以使用大写的G键查看最新的请求,你可以用小键盘上的上下左右键进行拦截选择,回车进入详细页面,按小写的a表示允许通过当前选定的拦截,所写的A表示允许通过当前s有的拦截请求,(即全部红色的字)


值得注意的是,当你在进行拦截时,目标是无法访问当前拦截的窗口的,所以要准确的拦截,不能单单使用~q命令,这样对方使用网络感觉极差
简单的介绍几个常用的拦截方法:
| 拦截命令 | 作用 |
|---|---|
| ~q | 拦截所有的请求 |
| ~c 403 | 拦截指定的状态,如403状态 |
| ~m POST | 拦截所有指定的请求,如POST请求 |
七、拦截数据包(发送)
常用的就这几个,或者可以直接在i里输入指定的url连接进行拦截,只要访问相关的页面,就会进行拦截

这时候我们就可以选中这条经过你精挑细选的结果按回车进去编辑
我们已经可以看见,已经将拦截到的请求自动变成json格式,你也可以按m键,然后查看其对应的选择,按高亮的蓝色字,就可以切换显示的样子。

如果要编辑内容的话,输入小写的e并按r选择raw body

打开后的基本用法,和vim的基本用法一样,详细的话去找vim相关的教程(本篇不讲)
输入i键后编辑好,按esc然后输入:wq 结束操作

再按一下小写的q键返回上一级
发送请求(选中当前被拦截的请求,输入小写a)

好的,我们已经完成了基本的调包劫持工作,接下来就是对服务器返回来的结果进行修改了
八、拦截数据包(返回)
基本的按键用法(区分大小写)
| 按键 | 作用 |
|---|---|
| e | 对当前页面的返回响应进行编辑 |
| m | 选择返回格式的显示 ,如显示为json格式 |
当我们发现我们刚刚发送的数据包请求允许通过后,服务器马上返回来一条记录,与发送数据包不同的是,服务器返回的拦截拥有状态

我们点击回车进行编辑,在request页面查看刚刚我们已经串改的数据包

按下tab键切换到response,即服务器响应页面,按e键进行编辑,你也可以按m键选择要显示的格式,这里我选择了“仅内容字符串”

在按e键后,继续选择raw body进行编辑返回结果

输入:wq结束编辑

选中当前返回来的数据,按a键,允许通过。
大功告成!
喜悦的截图效果:
未修改前的“用户名或密码错误”

修改后的:

九、总结
那么,这里只是简单的介绍了mitmproxy的简单的一些操作,还有修改伪造cookie,对头部劫持的,可能会在后面的课程中讲到 看我心情啦

通过这次的学习,我们能够基本掌握mitmproxy的一些拦截和劫包的操作,同时,这个强大的工具不仅仅是有这些功能的,我教大家入门,大家也可以去到mitmproxy的官网
https://docs.mitmproxy.org/stable/
进行学习,虽然是英文我看不懂
可能后续还会出更多kali的课程,请关注我哦,亲们。
由Hui3c编写发布,有错字请指出!
记得关注我 最后附上一张拦截的表达式
| 指令 | 作用 |
|---|---|
| ~b regex | 消息内容body |
| ~bq regex | 请求内容的body |
| ~bs regex | 返回内容的body |
| ~d regex | 指定的域名 |
| ~c int | HTTP状态码 |
| ~hq regex | 请求header |
| ~hs regex | 返回header |
| ~u regex | 指定的url |
| ! | 非 |
| & | 并 |
| ¦(这个符号打不出来) | 或 |
| () | 一组表达式 |

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/122290.html