提交 0b1dedac 编写于 作者: W wizardforcel

ch7

上级 48e31d01
......@@ -156,6 +156,160 @@ MITM
### 试一试 -- 发现 Google 搜索者
在当今世界,我们都任何我们在 Google 上的搜索都是私密的。很不幸,Google 搜索上的流量都经过 HTTP,并且默认是纯文本。
在当今世界,我们都认为我们在 Google 上的搜索都是私密的。很不幸,Google 搜索上的流量都经过 HTTP,并且默认是纯文本。
你可以想出一个智能的过滤器,使你能够使用 Wireshark 来查看受害者所执行的所有 Google 搜索吗?
## 7.3 无线上的会话劫持
我们可以基于 MITM 执行的另一种有趣的攻击就是应用会话劫持。在 MITM 攻击期间,受害者的封包发往攻击者。攻击者负责将其转发到正常的目的地,并将目的地发回的响应转发给主机。有趣的是,在这个过程中,攻击者可以修改封包的数据(如果没有保护或加密)。这意味着它可以修改、拆解甚至静默丢掉封包。
在下一个例子中,我们会使用准备好的 MITM 环境看一看无线上的 DNS 劫持。之后利用 DNS 劫持,我们将浏览器的会话劫持为` https://www.google.com`
### 实战时间 -- 无线上的会话劫持
1. 建立中间人攻击环境。在受害者主机上,让我们启动浏览器并输入` https://www.google.com`。让我们使用 Wireshark 来监控流量,你的界面应该像这样:
![](img/7-3-1.jpg)
2. 使用 DNS 过滤器,我们可以看到,受害者发出了` https://www.google.com`的 DNS 请求:
![](img/7-3-2.jpg)
3. 为了劫持浏览器会话,我们需要发送伪造的 DNS 响应,它会将`https://www.google.com `的 IP 地址解析为黑客主机的 IP `192.168.0.199`。我们用户这个目的的工具叫做`dnsspoof`。它的语法是:
```
dnspoof –i mitm-bridge
```
命令的输出如下:
![](img/7-3-3.jpg)
4. 刷新浏览器创建,现在我们可以在 Wireshark 中看到,只要受害者发送了任何主机(包括 Google)的 DNS 请求,Dnsspoof 都会回应。
![](img/7-3-4.jpg)
5. 在受害者主机上,我们会看到不能连接的错误。这是因为我们将`google.com`的 IP 地址解析为`192.168.0.199`,这是黑客主机的 IP,但是没有监听 80 端口的服务:
![](img/7-3-5.jpg)
6. 让我们在 Kali 上运行 Apache,使用下列命令:
```
apachet2ctl start
```
命令的输出如下:
![](img/7-3-6.jpg)
7. 现在,一旦我们刷新了受害者主机上的浏览器,我们都会收到`It works!`,它是Apache 的默认页面。
![](img/7-3-7.jpg)
8. 这个示例表明,可以拦截数据并发送伪造的响应,来劫持受害者的会话。
### 刚刚发生了什么?
我们使用无线 MITM 作为基础执行了应用劫持攻击。所以这背后到底发生了什么?MITM 准备工作确保了我们能够看到受害者发送的所有封包。只要我们看到了来自受害者的 DNS 请求封包,运行在攻击者笔记本上的 Dnsspoof 就会发送 DNS 响应给受害者,将`google.com`解析为攻击者的主机 IP 。受害者笔记本接受这个响应并且浏览器会向攻击者的 IP 地址的 80 端口发送 HTTP 请求。
在实验的第一个部分,攻击者机器上没有任何进程监听 80 端口,于是 Firefox 返回错误。之后,一旦我们在攻击者主机上的 80 端口(默认端口)开启了 Apache 服务器,浏览器的请求就会收到来自攻击者主机的响应,带有默认的`It works!`页面。
这个实验表明,一旦我们完全控制了较低的层级(这里是第二层),我们就能轻易劫持运行在较高层级上的应用,例如 DNS 客户端和 Web 浏览器。
### 试一试 -- 应用劫持挑战
会话劫持的下一步就是修改客户端发送的数据。Kali 上可用的软件叫做 Ettercap。这会帮助你用于网络的创建搜索和替换的过滤器。
这个挑战中,编写一个简单的过滤器,将网络上所有安全的东西变成不安全的。尝试在 Google 上搜索安全,并看看结果是否显示为不安全。
## 7.4 发现客户端的安全配置
之前的章节中,我们看到了如何创建开放、WEP 和 WPA 接入点蜜罐,但是当我们看到来自客户端的探测请求时,我们怎么知道探测的 SSID 属于哪个网络呢?
这看起来有些棘手,但解决方案很简单。我们需要创建广播相同 SSID 的接入点,但是拥有不同的安全配置。当漫游客户端搜索网络时,它会基于储存的网络配置自动连接到这些接入点之一。
所以,让我们开始吧!
### 实战时间 -- 客户端的解除验证攻击
1. 我们假设无线客户端拥有` Wireless Lab`网络配置,在它没有连接到任何接入点时,它发送了这个网络的探测请求。为了发现该网络的安全配置,我们需要创建多个接入点。出于我们的讨论,我们假设客户端的配置时开放网络、WEP、WPA-SPK 或者 WPA2-SPK。所以我们需要创建四个接入点。为了完成它,我们首先创建四个虚拟接口 -- `mon0``mon3`,多次使用`airmon-ng start wlan0 `命令:
![](img/7-4-1.jpg)
2. 你可以使用`ifconfig -a`命令看到所有新创建的接口:
![](img/7-4-2.jpg)
3. 现在我们在 `mon0`上创建开放 AP:
![](img/7-4-3.jpg)
4. 我们在`mon1`上创建 WEP 保护的 AP:
![](img/7-4-4.jpg)
5. WPA-PSK 的 AP 在`mon2`上:
![](img/7-4-5.jpg)
6. WPA2-PSK 的 AP 在`3`上:
![](img/7-4-6.jpg)
7. 我们可以在相同频道上执行` airodump-ng `来确保所有四个接入点都启动并且运行,像这样:
![](img/7-4-7.jpg)
8. 现在让我们打开漫游客户端上的 WIFI。取决于之前连接到哪个` Wireless Lab `,它会连接到该安全配置。这里,它连接到了 WPA-PSK 网络,像这样:
![](img/7-4-8.jpg)
### 刚刚发生了什么?
我们创建了拥有相同 SSID 但是不同安全配置的多个蜜罐。取决于客户端为`Wireless Lab`网络储存哪个配置,它会连接到相应的那个。
这个技巧十分实用,因为如果你在执行渗透测试,你不知道客户端的笔记本上是哪个安全配置。这会允许你通过引诱客户端来找到合适的那个。这个技巧也叫作 WIFI 钓鱼。
### 试一试 -- 引诱客户端
在客户端上创建相同 SSID 的不同配置,并检查你的蜜罐是否能检测它们。
要注意,许多 WIFI 客户端可能不探测储存在配置中的网络。这时就不能使用我们讨论的技巧来检测它们。
## 小测验 -- 高级 WLAN 攻击
Q1 在 MITM 攻击中,谁是中间人?
1. 接入点。
2. 攻击者。
3. 受害者。
4. 都不是。
Q2 Dnsspoof 能够:
1. 伪造 DNS 请求。
2. 伪造 DNS 响应。
3. 需要在 DNS 服务器上运行。
4. 需要在接入点上运行。
Q3 无线 MITM 攻击可以在 \_\_ 上完成:
1. 同时在所有无线客户端上。
2. 一次在一个频道上。
3. 在任何 SSID 上。
4. 3 和 4。
Q4 在我们的 MITN 准备工作中,那个接口离受害者最近?
1. At0
2. Eth0
3. Br0
4. En0
## 总结
这一章中,我们了解了如何使用无线作为基础来实现高级攻击。我们为无线上的 MITM 攻击做了一些准备,之后用它来窃听受害者的流量。之后我们使用相同的准备工作,通过 DNS 毒化攻击来劫持受害者的应用层(Web 流量)。
在下一章中,我们会了解如何按照正确的规划、探索和报告阶段来实施无线攻击。我们也会涉及到保护 WLAN 的最佳实践。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册