Alice 连接到了 Web 服务器上,Bob打算了解 Alice 正在发送什么信息。于是 Bob 建立 MITM 攻击,通过告诉服务器他是 Alice,并且告诉 Alice 他是服务器。现在,所有 Alice 的请求都会发给 Bob,Bob 会将它们转发给服务器,并对服务器的响应做相同操作。这样,Bob 就能够拦截、读取或修改所有 Alice 和服务器之间的流量。
虽然 MITM 攻击并不特定与 Web 攻击,了解如何执行它们,以及如何防止它们,对于任何渗透测试者都非常重要,因为它们可以用于偷取密码,劫持会话,或者执行 Web 应用中的非授权操作。
这一章中,我们会建立起中间人攻击,并使用它来获得信息,以及执行更加复杂的攻击。
## 8.1 使用 Ettercap 执行欺骗攻击
地址解析协议(ARP)欺骗可能是最常见的 MITM 攻击。它基于一个事实,就是 ARP 并不验证系统所收到的响应。这就意味着,当 Alice 的电脑询问网络上的所有设备,“IP 为 xxx.xxx.xxx.xxx 的机器的 MAC 地址是什么”时,它会信任从任何设备得到的答复。该设备可能是预期的服务器,也可能是不是。ARP 欺骗或毒化的工作方式是,发送大量 ARP 响应给通信的两端,告诉每一端攻击者的 MAC 地址对应它们另一端的 IP 地址。
这个秘籍中,我们会使用Ettercap 来执行 ARP 欺骗攻击,并将我们放到客户端和服务器之间。
### 准备
对于这个秘籍,我们会使用第一章配置的客户端虚拟机,和vulnerable_vm。客户端的 IP 是 192.168.56.101,vulnerable_vm 是 192.168.56.102。
### 操作步骤
1. 将两个虚拟机打开,我们的 Kali Linux(192.168.56.1)主机是攻击者的机器。打开终端窗口并输入下列命令:
```
ettercap –G
```
从 Ettercap 的主菜单中,选择`Sniff | Unified Sniffing`。
2. 在弹出的对话框中选择你打算使用的网络接口,这里我们选择`vboxnet0`,像这样:
![](img/8-1-1.jpg)
3. 既然我们嗅探了网络,下一步就是识别哪个主机正在通信。访问主菜单的`Hosts`之后选择`Scan for hosts`。