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 iwconfig #确认网卡信息。
表示设备WLAN0待命并且当前模式为被管理(Managed)。
3.2 airmon-ng start wlan0 #激活网卡至监视模式。
会发现不能正常开启,有5 个进程会导致错误。
解决方案: (1). ifconfig wlan0mon down #先取消wlan0mon网卡模式
iwconfig wlan0mon mode monitor #直接设置wlan0mon为监视模式
ifconfig wlan0mon up #唤醒wlan0mon
(2). 第2 步开始前, airmon-ng check kill
,自动检查冲突程序并强制关闭。
使用iwconfig
查询发现 wlan0mon 为监视模式
3.3 airodump-ng wlan0mon #获取附近AP 信息。
看到名为 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 airodump-ng --ivs -w 文件地址 --bssid BSSID wlan0mon #开始抓包, -w(write) 抓到的包保存的位置, --ivs表示只保留IVs 文件。(IVs 在2 中已解释)
可以看到有一台 MAC 地址为 48:74:6E:2B:70:02 的设备在连接 AP 。
重新开一个终端进行下一步 3.5 aireplay-ng -3 -b BSSID -h 客户端MAC wlan0mon #理论上来讲不用这一步,但是我们可以使用这条命令向 AP 发送大量数据包更快取得数据包。
可以看到在第3.4 步开启的终端中有大量数据。
3.6 aireplay-ng -0 10 -a 88:25:93:5A:B5:6A -c 68:17:29:26:C3:16 wlan0mon #如果发现像我一样得到的数据较少可尝试发送数据包
3.7 aircrack-ng01.ivs #01.ivs 在第 3.4 步的文件夹当中.
等待破解成功。
4.破解 WPA/WPA2 加密的 Wi-Fi 流程
前面的过程和 3.1,3.2,3.3 一样。使 wlan0mon 处于监视模式下
4.1 airodump-ng --bssid BSSID -c CH -w 文件位置 wlan0mon #-w 是抓的包输出目录,注意加-c,不然airodump-ng会每个频道都会试,一直乱跳,下一步工作不好进行。
这时返回的数据表示连接上此AP 的设备信息。
重新开启一个终端,进行下一步 4.2 aireplay-ng -0 10 -a BSSID -c STATION wlan0mon #-0 表示DeAuth模式,10表示攻击次数,-c是第3 步中的得到的STATION,即已连接上的客户端MAC 地址。
Wi-Fi的连接过程大概有三种,发现(Unauthenticated & Unassociated,未认证,未连接)-认证(Authenticated & Unassociated,认证,未连接)-连接(Authenticated & Associated,认证,连接)。
-0(DeAuth模式): 向客户端发送数据包,让客户端误以为是AP 发送的数据。 aireplay-ng -0 10 -a BSSID-c 客户端的 MAC wlan0mon
-1(Fake authentication 模式):在WEP中允许两种认证类型(开放系统和共享密钥)连接AP,我们在路由器设置页面可以看到。当我没发现4.1 中没有客户端连接时候可以使用此攻击模式。 aireplay-ng -1 0 -e ESSID -a AP的MAC -h 自己的MAC -y sharedkeyxor wlan0mon #0表示发送数据时间,-h 自己的MAC 可用
-2(Interactive packet replay):这个模式需要了解相关知识,可以去Interactivepacket replay 查看。 -3(ARPrequest replay): 可以了解相关知识 ARPrequest replay attack。 ifconfig
查询,-y sharedkeyxor表示共享密钥型,如果是开放系统则不用-yaireplay-ng -3 -b AP的MAC -h 我们的MAC wlan0mon #可以加-r CAP.cap 加速进程,这个 CAP.cap 是上一次成功进行 ARP 连接的 cap 包。
或者直接 aireplay-ng -3 -r CAP.cap wlan0mon
-4( KoreKchopchop):这个模式如果成功的话可以不用知道密码直接解密WEP数据包,但是有些AP 不支持此模式。 aireplay-ng -4 -b AP的MAC -h 我们的MAC wlan0mon
-5(Fragmentation): 碎片模式,也不包含密码信息,故不讨论,可去Fragmentationattack 查看详情。 -6(CafeLatte):可以直接从客户端系统中直接获取WEP密码,但是必须从客户端系统中获取到ARP包,并加以处理后返回给客户端。 aireplay-ng -6 -b AP的MAC -h 我们的MAC -D TEST-jglimmers #-D表示取消AP 的探测
-7(Hirte): 基于上一个模式的攻击,也是需要ARP请求。 aireplay-ng -7 -h 我们的MAC -D TEST-jglimmers
-8(WPAMigration):这个模式在我看了官方文档后感觉非常强大,强大到我想让大家自己去 WPAMigration Mode 看看。它可以将WPA强制转换成 WEP 解密,但是仅限思科的 AP(>=IOSReleases 12.2(11)JA),并且同时连接了 WEP 和 WPA 的客户端。 -9(Injection test): 测试一下网卡是否连接成功,其实我们在3.2 就已经成功,不过还是可以验证一下。 aireplay-ng-9 -a AP的MAC-i wlan1wlan0mon# wlan1是模拟的一个AP。
这时能看到第1 步中的设备出现了大量数据读取。
4.3 等待握手。 当经过第2 步发送大量数据包之后只要发现第1 步中右上角出现了 handshake: AP的MAC(BSSID),就可以 CRTL+C 停止。
4.4 aircrack-ng -w Wordlists.txt CAP-01.cap #-w表示字典包的路径, CAP 表示第 1 步中保存的文件中 -01.cap 文件,因为我们对每个 AP 的尝试可能不止一次,所以 airodump-ng 会自动在文件名后加类似01,02这样的数字表示次数,所以记得最后破解的时候输入正确的 CAP 包名称。
破解的速度一般显卡也就这样,其实我们也可以根据 GPU 加速,但是我曾经经过好几个月的试验最后发现我的显卡不支持 GPU 加速。
4.5 等待 KEY FOUND!
破解成功。
5.其他 推荐一个字典生成工具 Crunch.
6.Q&A
Q: 修改成监视模式(Monitor)失败。 A: (1). ifconfigwlan0mondown #先取消wlan0mon网卡模式
iwconfigwlan0monmode monitor #直接设置wlan0mon为监视模式
ifconfigwlan0monup #唤醒wlan0mon
(2). 所有工作开始前 airmon-ngcheck kill
自动检查冲突程序并强制关闭。
Q:破解之后不能正常联网。 A: ifconfigwlan0mondown
iwconfigwlan0monmode managed
ifconfigwlan0monup
因为之前将 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
啊哈啊哈啊哈哈哈哈
有些疑问,就是握手包和字典是什么关系?要选择什么样的字典?以及字典生成器Crunch,是一个什么样的东西,怎么一个用法?
Jglimmers: @啊哈啊哈啊哈哈哈哈 1.【握手包】是你抓取到路由器和PC之间的数据包,而【字典包】是由密码组成的,软件经过对【密码包】中的密码进行运算和【握手包】进行匹配,匹配成功则说明当前密码正确;2.用密码包就是碰运气的事情,网上有很多Wi-Fi字典包,针对国人惯用的8个8,6个6,12345678等组成的密码包,破解出来的几率比较大;3.Crunch是一个可以根据用户喜好自定义密码的软件,非常好用,官网介绍用法,http://tools.kali.org/password-attacks/crunch,但是是洋文,这里有一篇中文的:http://my.oschina.net/yygh/blog/312824 可以帮助你了解:)
话说我攻击多次AP都一直没办法获取到握手包= = 请问主要可能是什么方面的原因呢
Jglimmers: @a89446b269a5 根据经验应该是信号不太好,或者是AP没有其他设备在使用.可以采取的办法有:换一下攻击方式;或者加大发送数据包的量和频率.多试几次应该就好:)