如何在Ubuntu 16.04上构建软接入点
作者:David Fletcher
本文将通过Ubuntu 16.04系统演示软件接入点(AP)的搭建过程。创建软件AP的能力在测试具备802.11无线功能的设备时非常实用。通过软件AP,我们可以观察设备生成的所有流量,检查这些流量,并确定攻击设备的方法。
需要注意的是,实现流量检测目标还有许多其他方式,例如:
- 具备内置诊断工具或数据包捕获功能的接入点
- 开源设备固件包
- 类似hostapd的接入点软件
- 拦截代理如Burp Suite或OWASP ZAP
- ARP缓存中毒攻击
- WiFi Pineapple等设备
然而,使用功能齐全的通用操作系统使我们能够获得对目标系统运行工具的广泛支持优势。因此,我们避免了因交叉编译或平台工具支持而产生的问题。
我通常将软件AP创建为虚拟机,并利用外部无线适配器的直通USB支持。这样我就不必在本机操作系统中提供支持,并且可以通过最少的配置启动AP。在这种情况下,我最喜欢使用的无线适配器是ALFA AWUS051NH高增益802.11 a/b/g/n适配器。
从全新安装并完全打补丁的Ubuntu 16.04开始,我们需要满足软件接入点的几个先决条件,包括:
- Aircrack-NG套件:该工具套件的Airbase-NG组件将用于模拟实际的无线接入点本身。
- 桥接实用工具包:该组件允许我们将接入点运行的接口桥接到互联网连接的接口。它还允许我们观察和记录跨桥接口的活动。
- 无线工具包:该包包含iwconfig实用程序,可用于检查和更改无线适配器的配置。
- rfkill实用程序:该实用程序允许我们将无线适配器从主机操作系统的控制中释放出来,以便我们使用它来支持AP。
- ISC DHCP服务器:该包将为我们的AP提供DHCP支持,以便连接客户端获得正确的IP地址和DNS设置。
这些先决条件可以通过以root身份运行以下命令来安装:
|
|
注意:在安装上述软件包之前,最好运行以下命令以确保系统完全更新:
|
|
完成先决条件后,我们可以开始配置软件AP。首先,将无线适配器连接到主机,并确保操作系统识别该适配器。使用iwconfig和ifconfig命令确保新连接的适配器出现在接口列表中。
接下来,我们需要防止主机操作系统在托管模式下使用此接口。为此,我们将发出命令“nmcli radio wifi off”和“rfkill unblock all”。第一个命令禁用主机操作系统网络管理器对wifi无线电的管理。第二个命令移除操作系统对无线设备设置的软件阻止。
释放无线适配器后,我们现在可以使用Airbase-NG开始广播我们的SSID,如下所示。该命令接受我们要广告的SSID和将托管它的适配器。此接入点仅用作快速安全测试功能,不加密流量。如果需要使用WPA2加密,应考虑使用hostapd包作为替代方案。
此时,我们可以将客户端连接到SSID,但它将无法获取IP地址或上网。这就是桥接实用工具包发挥作用的地方。如上所述,airbase-ng创建了一个at0接口。我们将创建一个名为br0的桥,并将at0接口添加到该桥。然后我们将启动两个接口并为桥接口分配IP地址。
桥接口br0现在已分配了我们默认网关的IP地址,并与at0共享一个以太网段。但是,连接客户端仍然无法获取IP地址或与互联网通信。
下一步是配置我们的DHCP服务器,为连接客户端提供IP地址、默认网关和名称服务器信息。这将使用我们在系统初始配置期间安装的ISC DHCP服务器来完成。出于本演示的目的,我们在root的主目录中复制了/etc/dhcp/dhcpd.conf进行实验。使用下面看到的配置文件,我们指定了名称服务器(8.8.8.8)、我们将服务的子网(192.168.100.0/24)、我们范围内的IP地址范围(192.168.100.10-99)和我们的默认网关(192.168.100.1)。
接下来我们需要启动DHCP服务器。但是,由于我们以root身份交互式运行DHCP实例,我们需要取得dhcp.leases文件的所有权,否则在尝试启动服务器时会收到错误。此更改不是永久性的。每次重启后,所有权将恢复,因此每次重启运行AP的操作系统时必须重新完成此操作。
更改租约文件的所有权后,我们可以使用刚创建的配置文件在桥接口上启动DHCP服务器。如果服务器成功启动,您将看到类似于下面出现的输出。
现在我们的客户端可以连接到软件AP,并将从我们的DHCP服务器获取适当的IP信息。但是,它们仍然无法与互联网通信。启动和运行AP的最后一步是启用IP转发,并在iptables防火墙中插入一条规则,以转发和NAT源地址在我们无线段范围内的流量。
这告诉Linux内核启用IP转发并使用其路由表传递流量。然后,它使用绑定到我们以太网适配器的地址对源地址匹配我们无线段的出站流量进行NAT。
完成所有这些后,我们应该能够观察关联、租约建立和监控流量,如下所示。
拥有此功能将使我们能够观察连接到开放AP时的行为(少考虑标准操作系统,多考虑IOT设备),并分析客户端和后端基础设施之间传递的流量。一如既往,注意来回传递的任何敏感数据,并在必要时寻求更安全的替代方案。如上所述,此技术有许多替代方案。