80211 wireshark 抓包
前言
本人习惯使用 Omnipeek 抓包分析,所以 wireshark 的实验只讲到抓包完成。
Windows 环境采用 wireshark 抓包是比较麻烦的,因为支持在 Windows 环境中支持抓包的网卡并不多,所以本次直接用 Linux 环境来做试验。
使用网卡为:RT3070L,70块钱一张的网卡。
配置 monitor
何为 monitor?顾名思义和监视有关,但是和有线网络监视不同,对有线网络监视抓包只需要运行 wireshark 选择一张网卡即可。无线网络的抓包稍微复杂一点,因为需要一张网卡作为 monitor 放置于要监视抓包的两张网卡之间,用 Linux 电脑连接 monitor 网卡,这样才能接收到要抓包的两张网卡的无线包。
其次是无线抓包的目标层,我们都知道 osi 把网络分为 7 层,各层协议分布情况如下:
- L7应用层:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP
- L6表示层:数据的表示、安全、压缩;JPEG、ASCll、EBCDIC、加密格式等。(在五层模型里面合并到应用层)
- L5会话层:建立、管理、终止会话。对应主机进程,指本地主机与远程主机正在进行的会话。(在五层模型里面合并到应用层)
- L4传输层:TCP UDP
- L3网络层:ICMP IGMP IP(IPV4 IPV6)
- L2数据链路层:建立逻辑连接、进行硬件地址寻址、差错校验等功能。将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。
- L1物理层:设备之间非结构化原始数据的传输和接收
而无线网实际上是L2:数据链路层。所以 monitor 将会抓到的包也是链路层的数据包。
软件配置
先安装必要的软件(不同网卡实际需要的软件不完全相同)
c
sudo apt-get install tcpdump wireless-tools net-tools
然后要将网卡配置成monitor模式:
c
$ sudo ifconfig wlan0 down #关闭网卡,才可以设置mode
$ sudo iwconfig wlan0 mode monitor #设置网卡为monitor模式
$ sudo ifconfig wlan0 up #开启网卡,让设置生效
除了monitor模式外,无线网卡还可以设置成以下几种模式:
- Monitor:节点不与任何AP关联,可以被动地捕获信道上所有的数据包。
- Master:节点作为同步的主节点,简单而言,就是AP。该模式是默认的模式。
- Repeater:节点负责中继无线节点间的数据包。
- Secondary:节点可作为一个AP(也就是Master)或者Repeater的备份节点。
- Managed:节点作为客户端能够向AP发起关联,通常也被称为client模式。
- Ad-hoc:节点与节点间直接建立关联关系,并不存在AP。
查看无线网卡是否支持 monitor 模式:
c
$ sudo iwconfig
lo no wireless extensions.
enp8s0 no wireless extensions.
wlan0 IEEE 802.11 Mode:Monitor Frequency:2.412 GHz Tx-Power=14 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
查看&设置WiFi RF信道:
c
$ sudo iwlist wlan0 channel
wlan0 13 channels in total; available frequencies :
Channel 01 : 2.412 GHz
Channel 02 : 2.417 GHz
Channel 03 : 2.422 GHz
Channel 04 : 2.427 GHz
Channel 05 : 2.432 GHz
Channel 06 : 2.437 GHz
Channel 07 : 2.442 GHz
Channel 08 : 2.447 GHz
Channel 09 : 2.452 GHz
Channel 10 : 2.457 GHz
Channel 11 : 2.462 GHz
Channel 12 : 2.467 GHz
Channel 13 : 2.472 GHz
Current Frequency:2.462 GHz (Channel 11)
#设置当前信道为6
$ sudo iwconfig wlan0 channel 6
$ sudo iwlist wlan0 channel
wlan0 13 channels in total; available frequencies :
Channel 01 : 2.412 GHz
Channel 02 : 2.417 GHz
Channel 03 : 2.422 GHz
Channel 04 : 2.427 GHz
Channel 05 : 2.432 GHz
Channel 06 : 2.437 GHz
Channel 07 : 2.442 GHz
Channel 08 : 2.447 GHz
Channel 09 : 2.452 GHz
Channel 10 : 2.457 GHz
Channel 11 : 2.462 GHz
Channel 12 : 2.467 GHz
Channel 13 : 2.472 GHz
Current Frequency:2.437 GHz (Channel 6)
也可以用 iw list 代替。
设置完成,启动 wireshark:
c
sudo wireshark
wireshark 操作
点击"捕获"。
选择绑定了目标网卡的网口:wlan0,并开启混杂模式,此模式所有的无线帧都可以捕捉到。
随后点击开始,将陆续抓取环境中所有的无线数据包,不会局限于目标中的两张网卡。
注意:wireshark抓取的数据包都是固定信道的,所以要抓取特定信道的数据包的话,那么需要首先手动设定。
但是这样也有一个好处,可以抓目标信道的无线包。