使用macbook破解WPA/WPA2 wifi密码
安装aircrack-ng
使用homebrew安装,命令:
brew install aircrack-ng
抓包-抓取带密码的握手包
macbook自带了一个wifi工具:airport。
sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/sbin/airport
首先,断开wifi.
查看周围的wifi:
$ /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s
查看本机的无线网卡设备:
$ ifconfig
抓包:
airport可以使用网卡的监听模式抓取周围的无线网络数据包。其中,对我们最重要的数据包是:包含密码的包-也叫握手包。当有新用户或断开用户自动连接wifi时,会发送握手包。有一种攻击方式是reinjecting packet,它可以强制无线路由器重启,这样当用户自动连接时可以获得握手包。
$ sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 sniff 6
en0是无线网卡设备;6是要破解wifi的CHANNEL。
静等用户连接wifi,获得握手包。
抓的包,保存在/tmp.
破解wifi密码
获得握手包之后,我们还需要破解加密的密码。
好的密码字典一个,应包含常见的弱密码、手机号、姓名生日组合、各大网站泄露的密码、英语单词等等。如果使用字典破解不了,说明密码还算复杂;暴力穷举更是费时费力。(论复杂密码的重要性)。
$ sudo aircrack-ng -w password.txt -b c8:3a:35:30:3e:c8 /tmp/*.cap
-w:指定字典文件;-b:指定要破解的wifi BSSID。
破解过程:
----------------
安装aircrack-ng
通过shell命令行执行:
brew install aircrack-ng
第三步, 获取当前网卡
通过ifconfig命令获取当前的网卡的名字, 我这边网卡名字为en0:
第四步, 获取所有的无线网络
使用mac系统自带的airport工具, 查看当前的无线网络, 以及它们的相关信息,在shell中执行:
运行下面代码
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s
系统回显如下图, 以下为我附近所有的wifi, 注意看表格, SSID, BSSID, CHANNEL,这些关键词都会在后面提到:
第五步,开始抓包 , 收集监听周围无线网络的数据
参数en0是我电脑的默认网卡, 数字6是网卡需要监听的网络频道:
运行下面代码
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 sniff 6
当执行以上命令, 开始监听以后, wifi的图标会发生改变, 变成一个小眼睛一样的图标:
监听久一点, 然后使用ctrl+c停止监听, 系统会把监听到的数据保存到本地, 如下图, 数据保存到/tmp/airportSniffdaMCjH.cap 文件中:
在监听的过程中如果有用户登陆这个wifi, 那么包就会被我们截获, 如果用户一直没有登陆到这个wifi, 我们就还要继续等待监听, 尽量在手机或者手提电脑所用高峰期开启捕获, 这样捕获握手(handshake)的几率比较高, 具体原理参考最后的链接
第六步, 查看cap文件中的数据是否被抓取到
输入命令:
运行下面代码
sudo aircrack-ng /tmp/airportSniff8g0Oex.cap
如果要查询的路由列表的Encryption值为WPA(1 handshake) ,说明抓取成功, 否者跳到第六步,要重新抓取:
第七步, 输入命令air-crack开始破解
-b后面的参数bc:46:99:df:6c:72指的是网卡的BSSID, 最后面的一个文件路径是上一步监听到的数据
运行下面代码
sudo aircrack-ng -w dict.txt -b bc:46:99:df:6c:72 /tmp/airportSniffdaMCjH.cap
只要字典够大, 密码破出来应该指日可待, 字典可以自己去做,或者网上下载
能不能破解主要看脸, 看运气
破解成功以后,命令行会显示KEY FOUND :
WPA/WPA2简介
由于WEP中存在严重的安全漏洞,WIFI联盟制定了WPA和WPA2以取代WEP。其中WPA实现了802.11i的主要部分,提供了对现有硬件的向下兼容,被用来作为WEP到802.11i的过渡。之后的则WPA2完整的实现了整个IEEE 802.1i标准。
WPA的根据应用场景的不同采用不同的认证方式,其中面对家庭或小型办公场所网络的WPA-PSK不需要专门的认证服务器,所有该网络中的设备通过使用同一个256-bit的密钥来进行认证
WPA-PSK安全漏洞
WPA-PSK认证中的四次握手被设计用来在不安全的信道中,通过明文传输的方式来进行一定程度上的认证,并且在设备之间建立安全信道。首先,PSK会被转化为PMK,而PMK则在接下来被用于生成PTK。PTK则会被分为若干部分,其中一部分被称作MIC Key,用来生成每一个包的Hash值来用于验证。
WPA的安全问题与其认证过程所使用的算法关系不大,更多的是由于这一过程可以被轻易的重现,这就使得WPA-PSK可能遭受字典暴力攻击
WPA-PSK攻击原理
WPA-PSK攻击分为以下几个步骤:
1. 根据passphrase,SSID生成PMK,即PMK = pdkdf2_SHA1(passphrase, SSID, SSID length, 4096)
2. 捕获EAPOL四次握手的数据包,得到ANonce,SNonce等信息,用于计算PTK,即
PTK = PRF-X(PMK, Len(PMK), “Pairwise key expansion”, Min(AA,SA) || Max(AA,SA) || Min(ANonce, SNonce) || Max(ANonce, SNonce))
3. 使用MIC Key计算EAPOL报文的MIC,即MIC = HMAC_MD5(MIC Key, 16, 802.1x data)
4. 将计算得到的MIC值与捕获到的MIC值对比,如果相同则破解成功
WPA-PSK攻击难点
WPA-PSK攻击的主要难点在于大量计算PMK所需要的计算量。一台普通的计算机通常的计算能力在500pmks/s,想要对8位的纯小写字母组合密码进行暴力破解所需要的时间为14年,所以想要破解WPA-PSK只有两种可能:1.用户使用了常见的弱密码;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:初始化向量。
回到顶部
参考:
-----
----------------------------------------------------------------