IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Kali Linux 基于HTTPS的中间人攻击 -> 正文阅读

[系统运维]Kali Linux 基于HTTPS的中间人攻击

说明

按照《Kali Linux2 网络渗透测试实践指南 第二版 》第12章操作
仅供学习讨论使用,请勿进行非法操作

基于HTTPS的中间人攻击

HTTPS的加密过程的8个步骤中,最关键的是第3个步骤中服务端发送的数字证书。这个数字证书有两种来源:一种是由服务端自行生成的,这种情况下并不能保证通信的安全(因为数字证书很容被调包); 另一种是由权威的证书颁发机构(Certificate Authority CA)所颁发的,这种情形下安全性才得到了真正的提示。(注:图来自本书作者的PPT)在这里插入图片描述
服务端如果想要获得数字证书,就需要向证书颁发机构申请。证书颁发机构生成一对公钥和私钥、一个服务端端数字证书,并使用私钥对数字证书进行加密,该私钥不是公开的。 证书颁发机构向服务器A颁发包含CA公钥的数字证书,并向客户端提供CA公钥。证书颁发机构的工作原理如下图所示:(注:图来自本书作者的PPT)
在这里插入图片描述

由于专门用来加密数字证书的私钥掌握在证书颁发机构手中,即使服务端向客户端发送的数字证书被黑客截获,他们也只能解读,无法篡改。因为篡改数字证书后, 用户就无法使用证书颁发机构提供的CA公钥对数字证书进行解密。黑客获得的数字证书中的CA公钥也只能用来加密,不能解密,这样他们也无法获悉服务端和客户端加密的信息。即使使用了数字证书机制,仍然可能会出现以下问题导致完全机制失效。(注:图来自本书作者的PPT)
在这里插入图片描述

mitmproxy的安装与启动

mitmproxy是一个可以实现中间人攻击的Python模块,这个模块同时也提供了可以执行的程序。它的实质是一个可以转发请求的代理,保障服务端与客户端的通信,可以查看、记录其截获的数据或篡改数据。
为了实现伪造数字证书的目的,mitmproxy建立一个证书颁发机构,该机构不在你的浏览器的“受信任的根证书颁发机构”中。一旦用户选择了对其信任,它就会动态生成用户要访问网站的数字证书,实际上相当于证书颁发机构已经被黑客控制。Kali 中预先安装了mitmproxy。通过mitmproxy、mitmdump、mitmweb都可以完成mitmproxy的启动。它们提供了不同的操作界面,但功能一致,且都可以加载自定义脚本。在命令行中使用sudo mitmweb命令,可以打开mitmweb的工作界面(工作在8081端口)。
请添加图片描述

使用mitmproxy解密本机流量

这种情形指的是使用mitmproxy来解密从本机发出的流量,也就是说将浏览器的代理设置为127.0.0.1:8080,通常应用程序的测试人员会采用这种手段。此外,当黑客控制了用户计算机之后,也会采用这种手段来解析那些加密的流量。

导入证书

需要为浏览器手动设置代理, 这里以Firefox为例,通过“选项”—>“网络设置”----->“设置”,然后添加这个代理,在命令行功中使用mitmweb命令启动mitmproxy。然后访问mitmproxy提供的证书颁发机构下载数字证书,证书下载完成以后就可以导入了。
请添加图片描述
浏览器地址栏输入 about:preferences#privacy, 拉到最底下,找到security,点击 View Certificates... 按钮
请添加图片描述

测试

点击提交HTTPS网站的后, 返回到mitmweb的工作界面,你可以看到所有的内容都是明文,如下图所示:(注:图来着本书作者的PPT)
在这里插入图片描述

我自己访问了百度的登录界面
请添加图片描述
可以看到中间人攻击时对应的HTTPS使用的密码算法
请添加图片描述

使用mitmproxy与中间人攻击协同工作

这种情形指的是使用mitmproxy来解密从其他设备发出的流量。黑客首先运行中间人攻击程序,将它的全部流量劫持到自己的设备上。
因为mitmproxy只能运行在8080端口,所以需要将劫持的流量转发到这个端口上。考虑到mitmproxy用来处理HTTP、HTTPS产生的流量,所以我们只需要将目标端口为80和443的流量过滤出来,然后转发到本机的8080端口。这一点在Linux操作系统中使用iptable可以很容易做到。下面给出转发的命令:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8080

上面的命令要在root权限下执行。如果是在Windows操作系统下,由于没有iptables,实现这个操作会变得十分困难,如下图所示:
在这里插入图片描述
另外,我们还需要想办法在受到中间人攻击的设备上导入mitmproxy的数字证书,这样在访问的时候才不会出现数字证书错误的提示。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 21:17:28  更:2022-10-08 21:18:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:34:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码