0x01 原理介紹
在目標AP已有合法客戶端連接的情況下,可以通過airodump-ng偵聽數據包,然后用aireplay-ng的deauth強制合法客戶端掉線,掉線后客戶端會嘗試重新連接AP,此時會產生握手包。如果成功抓取到該握手包,則可以用字典進行本地離線破解。使用這種方法進行攻擊的前提有兩個:1、必須處在目標AP的信號范圍內。2、已有合法客戶端連接該AP。
在客戶端開啟無線,但是沒有與目標AP連接的情況下,可以通過airbase-ng偽造目標AP來欺騙客戶端與其連接,這時也會產生握手包,通過這個握手包,同樣可以實現破解目標AP無線密碼以及入侵該客戶端。
0x02 實驗准備
Kali物理機,手機A(創建一個名為Hack_WiFi_Without_AP的熱點),手機B(連接熱點,然后關閉手機A熱點,不關閉手機B的無線)
0x03 實驗步驟
關閉會影響抓包的進程,網卡開啟偵聽模式
airmon-ng check kill
airmon-ng start wlan0
啟用airodump-ng掃描周圍的無線信號
airodump-ng wlan0mon
74:AD:B7:A7:CB:A2是手機B的網卡MAC地址,處於not associated狀態,所以手機B此時掃描周圍是否有曾經連接過的AP,如有則嘗試連接。可以看到c此時正在搜索曾經連過的BSSID名為ChinaNet-qQRH和Hack_WiFi_Without_AP的這兩個AP
指定Hack_WiFi_Without_AP進行抓包,結果命名為test
airodump-ng wlan0mon --essid Hack_WiFi_Without_AP -w test
用airbase-ng構造一個同名的虛假AP
airbase-ng --essid Hack_WiFi_Without_AP -c 6 -Z 4 wlan0mon
-c代表channel信道,-Z代表WPA2加密,參數4是指定CCMP加密
P.S. -z代表WPA1加密,參數1~5分別表示WEP40、TKIP、WRAP、CCMP、WEP104,與-Z共用
手機B發現這個ESSID和加密方式相同的虛假AP,發送握手包
用字典離線破解密碼
aircrack-ng -w 字典文件 test-01.cap
0x04 題外話
相比於傳統的打掉客戶端進行deauth攻擊,本以為無AP破解WiFi這個思路比較雞肋,因為即使你得到WiFi密碼可是AP不在范圍內照樣連不上。直到我看到了tk教主的老司機的BlackHat手冊——衣食住行和WiFi,文中說道:參加任何安全大會,最重要的事兒都是關閉手機WiFi,主要是防Karma攻擊——只要你之前連接過任何一個無密碼的WiFi,攻擊者就可以讓你的手機認為又來到了這個WiFi旁邊,並連接上去。看來猥瑣的思路最重要,重心不一定是在AP端,也可以是客戶端。