这里提供每一步详细操作,由Hui3c编写,

前排求关注

通过本次的学习,你可以知道或学习到:

  1. 使用mitmproxy进行简单的ssl劫持
  2. 使用mitmproxy进行浏览器隐私监听
  3. mitmproxy简单用法
  4. 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劫持

  1. 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简单攻击

  1. 使用默认的配置进行攻击
  2. 使用伪造的证书进行攻击(本篇不讲)
# 启动mitmproxy,保存日志到mitmproxy.log
root@hui:~# mitmproxy -T --host -w mitmproxy.log

此时,使用win7打开浏览器:

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

已经完成对目标的ssl欺骗。

ssl欺骗怎么能满足我们的需求呢,肯定得干点什么事情对吧

五、给目标安装伪证书

接下来就进入重头戏了,开始我们学习之旅。能够偷偷看看妹子在干什么

  1. 使用默认的证书
  2. 使用自己伪造的证书(本篇不讲)

接下来就是要展现你们社会工程学的时间了,这里假设你获得了对方的电脑,你需要在对方的电脑上浏览器访问

使用浏览器访问 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
!
&
¦(这个符号打不出来)
() 一组表达式

关注!

Kali+mitmproxy 超级详细的ssl劫持和窥窃动妹子上网动态(劫包,返回想要的内容)相关推荐

  1. 超级详细的SSL安装教程,不看后悔系列!

    最近开发了一款微信小程序,用的是Java后台.事先没研究过小程序的我做好直接发布了,成功之后傻眼了.出现了错误,我立刻在本地找错误,结果本地测试正常,本地代理服务器完全没有问题,访问到了服务器后台. ...

  2. 在虚拟机上安装Kali Linux 的教程详解(超级详细,看了此教程便一通百通)!

    今天我们的教程是在vmware14上安装kali linux,详细过程如下,我会将每一步骤的截图放进来,请仔细按照教程安装~ 选择自定义 点击下一步 选择稍后安装操作系统 选择Linux,Ubuntu ...

  3. 超级详细学习了解进程和病毒知识

    超级详细学习了解进程和病毒知识 作者:不详 来源于:黑客在线 发布时间:2007-4-3 10:26:48 超级详细了解进程和病毒知识 第一:进程是什么 进程为应用程序的运行实例,是应用程序的一次动态 ...

  4. 七点学完安全知识超级详细了解进程和病毒知识

    七点学完安全知识超级详细了解进程和病毒知识 第一:进程是什么 进程为应用程序的运行实例,是应用程序的一次动态执行.看似高深,我们可以简单地理解为:它是操作系统当前运行的执行程序.在系统当前运行的执行程 ...

  5. 超级详细的解决方法 (CentOS7) :永久修改 mysql read-only 问题 could not retrieve transation read-only status server

    超级详细的解决方法 (CentOS7) :永久修改 mysql read-only 问题 could not retrieve transation read-only status server 参 ...

  6. 在电脑上安装python的步骤-python中pygame安装过程(超级详细)

    安装时是需要设置python环境变量的,下载python的时候底下有个小框框(没有默认选中) Add Python 3.7 to PATH需要选择的,如果没有选择的话,需要自己设置,我一般比较懒,卸载 ...

  7. MySQL数据库安装-Windows10为例【超级详细安装过程(每一步的截图)、检测安装是否成功、登录数据库并查看版本号、将MySQL添加到环境变量中、在命令行窗口操作数据库】

    哈哈,这是在哔哩哔哩网站上 看的 MySQL安装步骤. 我安装的时候,截截图,希望对大家 有所帮助. 链接:https://pan.baidu.com/s/1fKFQCVHMQOmbg84UyGrKB ...

  8. import的用法python_Python导入模块,Python import用法(超级详细)

    Python导入模块,Python import用法(超级详细) 使用 Python 进行编程时,有些功能没必须自己实现,可以借助 Python 现有的标准库或者其他人提供的第三方库.比如说,在前面章 ...

  9. 1、请简述DNS的作用,并说明当你输入网址“www.nxtc.edu.cn“按下回车后,DNS是怎么工作的?(关键步骤可以给出相应图示) 2、详细描述域名劫持攻击的过程及防御方式。

    一.请简述DNS的作用,并说明当你输入网址"www.nxtc.edu.cn"按下回车后,DNS是怎么工作的?(关键步骤可以给出相应图示) DNS的作用: 把网址解析转化成ip地址, ...

最新文章

  1. 干货 | 2021年,深度学习还有哪些研究方向可以做?
  2. 2021年 ,关于AI的哪些未来已来?
  3. 通过jquery的serializearray处理表单数据成json格式,并提交到后台处理
  4. 基于人工智能方法的手写数字图像识别_【工程分析】基于ResNet的手写数字识别...
  5. 共识协议(8)NPOS提名权益证明
  6. mysql中char和text的区别_mysql中text与varchar与char的区别
  7. PAT (Basic Level) Practice (中文)1010 一元多项式求导 (25 分)
  8. python人脸识别环境搭建_怎样用3分钟搭建 Python 人脸识别系统
  9. 特征计算 - Jaccard 相似系数与 Python 代码实现
  10. html自动增加一行并获取行号,javascript开发系列(table操作,table增加一行,删除一行,取行号,列号)...
  11. T-SQL逻辑处理之表运算符
  12. Java多线程归纳总结
  13. python 全栈开发,Day54(关于DOM操作的相关案例,JS中的面向对象,定时器,BOM,client、offset、scroll系列)...
  14. Gnu Screen用法 【转】
  15. web项目经理手册-项目经理需要铭记在心的话
  16. Lightly:新一代的 Go IDE
  17. Cris 小哥哥的大数据项目之 HBase 模拟微博核心功能
  18. 吉吉拍——线上线下购物的数字化抢拍平台
  19. java树莓派温度传感器_树莓派连接DS18B20记录温度
  20. EasyUI-DataGrid下数据库数字替换成文本信息显示以及不同状态显示不同颜色

热门文章

  1. 信息系统与信息系统安全
  2. 非科班学python就业_非科班出身自学Python,这些实用方法学习方法你知道吗!
  3. 人工智能时代,普通的我们如何提升自己的核心竞争力
  4. CLICKHOUSE函数使用经验(arrayJoin与arrayMap函数应用场景)
  5. 辛泓睿:数字资产化,万物皆可NFT吗?
  6. html:对于拼多多网页的简单制作
  7. python练习---大球吃小球游戏
  8. find_in_set 函数 和 in 函数的区别用法
  9. java中person作用_以下Java程序中Person(){};是什么意思,有什么作用?
  10. ElasticSearch(全文检索服务的安装和使用)