一、 抓取空气中传播的wifi信号
(1)、使用wireshark抓包
尝试之后发现,wireshare接受的数据是系统过滤时候的数据,系统接受外界信息的时候,第一步就是确实是不是本网卡的的信息,对照mac地址,如果不相同则丢弃该数据帧,得出结论wireshark不能控制无线网卡抓取空气中的wifi信号。
(2)、使用commview抓包
CommView是一个用来分析WiFi无线网络的软件,在工作之前commview能够做什么?
1、捕获xxxxxxxxxxxxx(包括:包)
2、统计xxxxxxxxxxxxx(包括:包)
打开软件之后我们发现软件上方有几个选项卡,packets这个选项卡是最重要的,当我们点击播放键的时候,屏幕上就会滚动起来,它收集在局域网络中转送的数据,并对要分析的数据进行译码。它能使你看到网络连接的列表,监察重要的ip,我么可以使用commview来观察网络连线、重要的ip资料统计分析。
(3)、Aircrack-ng破解工具
Aircrack-ng是一个与802.11编缀的无线网络分析有关的安全软件,主要功能有:网络侦测、数据包嗅探、wep和wpa破解(采用字典攻击)密匙。
Aircrack-ng套件由几部分组成,组成部分如下:
aircrack-ng负责破解wep及wpa密匙;
airdecap-ng通过已知密匙来解密wep或wpa嗅探数据;
tkiptun-ng进行wpa/tkip攻击;
airmon-ng将网卡设置为监听模式;
airodump-ng数据包嗅探:将无线网络数据输送到pcap或ivs文件并显示网络信息。
二、
MAC802.11数据帧格式,分析抓到的帧
首先要说明的是mac802.11的帧格式很特别,它与TCP/IP这一类协议不同,它的长度是可变的。不同功能的数据帧长度会不一样。这一特性说明mac802.11数据帧显得更加灵活,然而,也会更加复杂。
mac 802.11的数据帧长度不定主要是由于以下几点决定的:
(1)、mac地址数目不定
根据帧类型不同,mac 802.11的mac地址数会不一样。比如说 ACK帧仅有一个mac地址,而数据帧有3个mac地址,在WDS模式(下面要提到)下,帧头竟然有4个mac地址。
(2)、802.11的管理帧所携带的信息长度不定
在管理帧中,不仅仅只有一些类似于mac地址,分片标志之类的这些信息,而且另外还会包括一些其它的信息,这些信息有关于安全设置的,有关于物理通信的,比如说我们的SSID名称就是通过管理帧获得的。AP会根据不同的情况发送包含有不同信息的管理帧。
(3)、加密信息,QOS信息
若有加密的数据帧格式和没有加密的数据帧格式还不一样,加密数据帧格式还多了个加密头,用于解密用。然则QOS也是同样道理。
图1 mac帧格式
1、帧控制
用于指示数据帧的类型,是否分片等等信息,这个字段就是记录了mac 802.11的属性。
Protocol version:表明版本类型,现在所有帧里面这个字段都是0x00
Type:指明数据帧类型,是管理帧,数据帧还是控制帧
Subtype:指明数据帧的子类型,因为就算是控制帧,控制帧还分RTS帧,CTS帧,ACK帧等等,通过这个域判断出该数据帧的具体类型
To DS/From DS:这两个数据帧表明数据包的发送方向,分四种可能情况讨论
(1).若数据包To DS为0,From DS为0,表明该数据包在网络主机间传输
(2).若数据包To DS为0,From DS为1,表明该数据帧来自AP
(3).若数据包To DS为1,From DS为0,表明该数据帧发送往AP
(4).若数据包To DS为1,From DS为1,表明该数据帧是从AP发送自AP的
Moreflag:分片标志,若数据帧被分片了,那么这个标志为1,否则为0
Retry:表明是否是重发的帧,若是为1,不是为0
PowerManage:当网络主机处于省电模式时,该标志为1,否则为0.
Moredata:当AP缓存了处于省电模式下的网络主机的数据包时,AP给该省电模式下的网络主机的数据帧中该位为1,否则为0
Wep:加密标志,若为1表示数据内容加密,否则为0
Order: 这个表示用于PCF模式下,这里不予讨论
2、帧的种类
802.11协议定义的无线LAN有三种类别的帧:管理帧,控制帧,和数据帧。
管理帧:用于station和AP之间的初始化通信。
控制帧:用于访问信号和ACK帧。
数据帧:用于运载数据和控制信息。
(1).数据帧
Type Subtype Frametype
10 0000 Data(数据)
10 0001 Data+CF-ACK
10 0010 Data+CF-Poll
10 0011 Data+CF-ACK+CF-Poll
10 0100 Null data(无数据:未传送数据)
10 0101 CF-ACK(未传送数据)
10 0110 CF-Poll(未传送数据)
10 0111 Data+CF-ACK+CF-Poll
10 1000 Qos Data
10 1001 Qos Data + CF-ACK
10 1010 Qos Data + CF-Poll
10 1011 Qos Data + CF-ACK+ CF-Poll
10 1100 QoS Null(未传送数据)
10 1101 QoS CF-ACK(未传送数据)
10 1110 QoS CF-Poll(未传送数据)
10 1111 QoS CF-ACK+ CF-Poll(未传送数据)
(2).控制帧
Type Subtype Frametype
01 1010 Power Save(PS)- Poll(省电-轮询)
01 1011 RTS(请求发送,即: Request To Send ,预约信道,帧长20字节)
01 1100 CTS(清除发送,即:Clear To Send ,同意预约,帧长14字节)
01 1101 ACK(确认)
01 1110 CF-End(无竞争周期结束)
01 1111 CF-End(无竞争周期结束)+CF-ACK(无竞争周期确认)
(3).管理帧 (Management Frame)
Type SubType FrameType
00 0000 Association request (连接请求)
00 0001 Association response (连接响应)
00 0010 Reassociation request(重连接请求)
00 0011 Reassociation response(重连接联响应)
00 0100 Probe request(探测请求)
00 0101 Probe response(探测响应)
00 1000 Beacon(信标,被动扫描时AP 发出,notify)
00 1001 ATIM(通知传输指示消息)
00 1010 Disassociation(解除连接,notify)
00 1011 Authentication(身份验证)
00 1100 Deauthentication(解除认证,notify)
00 1101~1111 Reserved(保留,未使用)
2、mac帧其他部分的含义
(1).生存周期
他的Network Allocation Vector(NAV)就存在这里,这里叫duration,即生存周期。当然不是所有时候这个字段存放的NAV值。在特定类型数据帧中,它也可能表示Associate ID。一旦有主机关联到AP了,AP都会为主机分配一个Associate ID。比如在网络主机通知AP自己要进入省电模式(power saving)的时候,网络主机发给AP的通知数据帧里面,这个域就表示的是Associate ID而不是NAV了。当然还可以通过最高位来判断这个域的含义:
*在15bit为0的时候,该域表示duration
*在15bit为1,14bit为1的时候,表示Associate ID。
(2).序列控制(2 bytes:4 bits/12 bits)
这个域分2部分,一个是分片序列号和标识帧列号。分片序列号就是记录分片序号的。比如一个帧A被分片成a1,a2,a3,那么a1,a2,a3这三个分片帧的分片序列分别是0,1,2。这个和IP分段原理一样的,该域占4个比特位。剩下的12个比特位就用于标识帧的序号,这个跟IP头里面的序列号一样。
(3).MAC地址 1-4
RA(receiver address):无线网络中,该数据帧的接收者
TA(transmitter address):无线网络中,该数据帧的发送者
DA(destine address):该帧的目的mac地址
SA(source address):该帧的源mac地址
三、 加密算法简要分析,并尝试解密
(一)、AES(高级加密标准)
高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。
大多数AES计算是在一个特别的有限域完成的。AES加密过程是在一个4×4的字节矩阵上运作,这个矩阵又称为“体(state)”,其初值就是一个明文区块(矩阵中一个元素大小就是明文区块中的一个Byte)。(Rijndael加密法因支持更大的区块,其矩阵行数可视情况增加)加密时,各轮AES加密循环(除最后一轮外)均包含4个步骤:
(1).AddRoundKey—矩阵中的每一个字节都与该次回合密钥(round key)做XOR运算;每个子密钥由密钥生成方案产生。
图2 AddRoundKey
(2).SubBytes—通过一个非线性的替换函数,用查找表的方式把每个字节替换成对应的字节。
图3 SubBytes
(3).ShiftRows—将矩阵中的每个横列进行循环式移位。
图4 ShiftRows
(4).MixColumns—为了充分混合矩阵中各个直行的操作。这个步骤使用线性转换来混合每内联的四个字节。最后一个加密循环中省略MixColumns步骤,而以另一个AddRoundKey取代。
图5 MixColumns
(二)、TKIP(临时密钥完整性协议)
临时密钥完整性协议(英文:Temporal Key Integrity Protocol,缩写:TKIP)是一种用于IEEE 802.11无线网络标准中的替代性安全协议,由电气电子工程师学会(IEEE)802.11i任务组和Wi-Fi联盟设计,用以在不需要升级硬件的基础上替代有线等效加密(WEP)协议。由于WEP协议的薄弱造成了数据链路层安全被完全跳过,且由于已经应用的大量按照WEP要求制造的网络硬件急需更新更可靠的安全协议,在此背景下临时密钥完整性协议应运而生。需要注意的是,临时密钥完整性协议自2012年的802.11标准中,已不再视为完全,且即将废弃。
四、
分析结论:
第一步:通过工具抓包,将包存储到本地,以待日后分析。
第二步:分析mac帧的格式,并确认抓到的帧中是否有需要的管理帧。
第三步:确认抓到身份认证帧的时候,查询wifi的数据加密流程,并尝试解密。
最后得出解密AES工作难度有些大,并选择更换策略。策略就是先通过软件破解wifi密码,使本地主机与其处于同一局域网,之后破解路由器密码,改变路由器策略使其发送不加密的数据到本地主机。也可以通过在对方机器上种植木马客户端,就能接收对方机器的动态,包括键盘输入记录和所登陆网站。但缺点就是用到的破解工具基本都是别人写好的,没有自主性。