首發(fā)于FreeBuf:http://www.freebuf.com/articles/wireless/145259.html
0.前言
三年前我發(fā)表了一篇文章《黑客有辦法讓你自動連上陌生WiFi》坟冲,介紹Karma攻擊可以讓你的無線設(shè)備自動連上黑客的WiFi。當時引起了還算比較熱烈的討論,關(guān)于WiFi安全,關(guān)于Karma攻擊等。同時及穗,我也提到WiFi釣魚將會成為接下來幾年的一個熱門。
如今WiFi安全發(fā)生了許多變化,相比于三年前我對WiFi安全也有了更多的了解匀奏。本篇文章將介紹為什么Karma攻擊逐漸失效了,廠商是如何修補的学搜,以及我們還有哪些攻擊方式娃善。
1. Karma攻擊
被動掃描(Passive Scan)和主動掃描(Active Scan)
無線客戶端可以使用兩種掃描方式:主動掃描和被動掃描。在主動掃描中瑞佩,客戶端發(fā)送probe request聚磺,接收由AP發(fā)回的probe response。在被動掃描中炬丸,客戶端在每個頻道監(jiān)聽AP周期性發(fā)送的Beacon瘫寝。之后是認證(Authentication)和連接(Association)過程。
Karma
2004年稠炬,Dino dai Zovi和Shane Macaulay發(fā)布了Karma工具焕阿。Karma通過利用客戶端主動掃描時泄露的已保存網(wǎng)絡(luò)列表信息(preferred/trusted networks),隨后偽造同名無密碼熱點吸引客戶端自動連接首启。
如上圖所示暮屡,當Karma發(fā)現(xiàn)有客戶端發(fā)出對SSID為Telekom的熱點請求時,向其回復Probe
Response毅桃;當Karma發(fā)現(xiàn)有客戶端發(fā)出對SSID為RUB-WiFi的熱點請求時栽惶,也向其回復Probe Response。
這實質(zhì)上是違反了802.11標準協(xié)議疾嗅,無論客戶端請求任何SSID外厂,都向其回復表示自己就是客戶端所請求的熱點,使客戶端對自己發(fā)起連接代承。
Why works汁蝶?
主動掃描過程中(Active Scan)泄露客戶端已保存網(wǎng)絡(luò)列表信息
為實現(xiàn)自動連接已保存網(wǎng)絡(luò)等功能,客戶端會定時發(fā)送帶有已保存網(wǎng)絡(luò)信息的Probe Request(在后文統(tǒng)稱為Directed Probe Request)。黑客通過無線網(wǎng)卡監(jiān)聽無線幀便能輕松獲取這些信息掖棉。客戶端對保存熱點不檢驗MAC地址
為了增大信號覆蓋范圍墓律,通常會部署多個同名熱部署在整個區(qū)域。當客戶端發(fā)現(xiàn)信號更強的同名熱點幔亥,滿足“一定條件”后便會切換過去耻讽,即所謂的無線漫游功能。為了實現(xiàn)這種特性同時也意味著帕棉,只需要SSID名稱及加密方式相同客戶端便能自動連接针肥,不會檢查MAC地址。
在曾經(jīng)某段時間里香伴,甚至加密方式不一樣慰枕,只要SSID同名也能讓客戶端連接。比如客戶端曾連過SSID為“yyf”的WPA熱點即纲,只需建立SSID為“yyf”的OPEN熱點具帮,客戶端也會自動連接。具體的時間點及手機操作系統(tǒng)版本號我暫時沒檢索到低斋。
相關(guān)工具
-
Pineapple
Hak5的便攜式無線安全審計設(shè)備——WiFi Pineapple蜂厅,內(nèi)置了Karma攻擊功能。
airbase-ng
它是著名的wifi攻擊套件aircrack-ng中的一個工具膊畴。其用法如下掘猿,其中-P、-C為Karma相關(guān)的參數(shù)
airmon-ng start wlan0 #網(wǎng)卡設(shè)為monitor模式
airbase-ng -c 6 -P -C 20 -v mon0
-c channel
-v be verbose
-P (karma mode) respond to all probes.
-C enables beaconing of probed ESSID values (requires -P)
危害性
如果黑客在公共場合開啟了Karma攻擊巴比,便能輕松吸引周邊大量設(shè)備連接到黑客的熱點(一般會配合著Deauth攻擊)术奖。隨后礁遵,黑客便能隨心所欲對網(wǎng)絡(luò)內(nèi)的客戶端進行流量嗅探或其他的中間人攻擊了轻绞。可謂危險性巨大佣耐。
2. 后來Karma攻擊逐漸不好使了
Broadcast Probe Request
隨著各廠商對于Directed Probe泄露SSID導致釣魚攻擊問題的重視政勃,在較新的設(shè)備中都改變了主動掃描的實現(xiàn)方式。主要使用不帶有SSID信息的Broadcast Probe兼砖,大大降低了Directed Probe的使用頻率奸远。Broadcast Probe流程如下圖所示。
對比下兩種方式
Directed Probe的交互如(b)所示讽挟,客戶端定時發(fā)送攜帶已保存網(wǎng)絡(luò)列表信息的Probe Request懒叛,造成了泄露;而在Broadcast Probe中耽梅,客戶端的Probe Request不再帶有已保存網(wǎng)絡(luò)列表信息薛窥,SSID字段為空。而所有收到該請求的熱點都將回復Probe Response,其中帶有AP的SSID名稱诅迷,客戶端根據(jù)回復的SSID來決定是否進行連接佩番。如此一來,在實現(xiàn)原有功能的同時罢杉,解決了泄露保存熱點信息的問題。
iPhone大概在iOS7做了這個改變。Android大概在Android 4.x整胃,還有同樣使用了wpa_supplicant的Linux杠愧。
wpa_supplicant 在2014年7月的一個patch修復了Android在省電模式下的掃描依然會發(fā)送暴露SSID的Directed Probe Request的行為。
http://w1.fi/cgit/hostap/commit/?id=4ed3492206097c24aa37b4429938fec049ba1827
隱藏熱點(Hidden SSID)
當AP配置為隱藏模式時持际,在主動掃描的Beacon幀和被動掃描的Probe Response幀中都不會公布自身SSID沃琅。于是客戶端連接隱藏熱點的唯一方法就是持續(xù)不斷的發(fā)送帶SSID的Directed Probe Request。
顯然這會導致SSID泄露蜘欲。后來發(fā)現(xiàn)iOS對此也做了些改進益眉,設(shè)備會首先檢測周圍是否存在隱藏熱點,當至少存在一個隱藏熱點時才會發(fā)送姥份。這增加了一些利用難度郭脂。
Mana工具
在2014年的Defcon 22上,由Dominic White 和 Ian de Villiers 發(fā)布了mana澈歉。mana可以理解為karma 2.0展鸡,它針對前文提到的問題做了一些改進:
- 收集周圍空間的SSID信息(來自于老設(shè)備的Directed Probe)或者用戶自定義。當接收到Broadcast Probe Request時埃难,mana會根據(jù)列表中的每一個SSID構(gòu)造成 Probe Response向客戶端回復莹弊。
客戶端在面對同一MAC有多個不同SSID時不會產(chǎn)生問題
針對iOS對Hidden SSID的處理,mana會自動創(chuàng)建一個隱藏熱點用于觸發(fā)iOS設(shè)備發(fā)Directed Probe Request
增加了偽造PEAP等EAP SSL方案的熱點功能涡尘,可以抓取并破解EAP hash忍弛。破解后將認證信息存入radius服務(wù)器,客戶端下次重連就能成功連接了考抄。
對Broadcast Probe的解決方案就是通過手動指定常見或自動收集周邊的開放式熱點信息(城市细疚、機場、公司川梅、超商等公共WiFi)以期望覆蓋到客戶端曾經(jīng)連接過的熱點疯兼。
在吸引客戶端連入熱點的目的上能起到不錯的效果。但需要明白的是贫途,類似于“查看目標設(shè)備以前連接過哪些熱點”這種需求已基本沒法實現(xiàn)吧彪。
而對PEAP的攻擊可參考我之前發(fā)布的文章《企業(yè)級無線滲透之PEAP》,這里不再贅述丢早。
3. 如今的攻擊面
最后總結(jié)一下姨裸,在如今,吸引客戶端連入惡意熱點的辦法有:
- 對于老舊的移動設(shè)備和筆記本,Karma依然可用啦扬,客戶端自動連接中狂。
- 由于隱藏熱點的特性,連接依賴于Directed Probe扑毡,Karma依然可用(記得創(chuàng)建隱藏熱點觸發(fā)客戶端發(fā)送)胃榕,客戶端自動連接。
- 根據(jù)周邊熱點及常見公共熱點構(gòu)造SSID列表進行偽造(比如CMCC瞄摊、StarBucks等)勋又,如果覆蓋到客戶端曾經(jīng)連接過的熱點,也會自動連接换帜。
- 偽造PEAP熱點獲取hash楔壤,破解后存入radius服務(wù)器,客戶端下次重連便能成功惯驼。
- 偽造公共熱點蹲嚣,用戶受騙主動點擊發(fā)起連接。
4.參考文獻
- Improvements in Rogue AP attacks – MANA 1/2
https://sensepost.com/blog/2015/improvements-in-rogue-ap-attacks-mana-1%2F2/ - An Android Change for the Better (Maybe)
http://www.sniffwifi.com/2014/12/an-android-change-for-better-maybe.html - EMSEC Don’t Trust Open Hotspots: Wi-Fi Hacker Detection and Privacy Protection via Smartphone
https://www.semanticscholar.org/paper/EMSEC-Don-t-Trust-Open-Hotspots-Wi-Fi-Hacker-Detec-Kropeit/01eea887a17f85f99b8614d48ecafb445fff7bc0 - Hidden Wi-Fi Network: How to know the name of a wireless network with no SSID
https://www.acrylicwifi.com/en/blog/hidden-ssid-wifi-how-to-know-name-of-network-without-ssid/ - 企業(yè)級無線滲透之PEAP
http://www.reibang.com/p/367ecc71518b
Author: qingxp9 @ 360PegasusTeam