科普:詳解流量劫持的形成原因
流量劫持,這種古老的攻擊沉寂了一段時間后,最近又開始鬧的沸沸揚揚。眾多知名品牌的路由器相繼爆出存在安全漏洞,引來國內(nèi)媒體紛紛報道。只要用戶沒改默認密碼,打開一個網(wǎng)頁甚至帖子,路由器配置就會被暗中修改?;ヂ?lián)網(wǎng)一夜間變得岌岌可危。
攻擊還是那幾種攻擊,報道仍是那千篇一律的磚家提醒,以至于大家都麻木了。早已見慣運營商的各種劫持,頻繁的廣告彈窗,大家也無可奈何。這么多年也沒出現(xiàn)過什么損失,也就睜只眼閉只眼。
事實上,僅僅被運營商劫持算是比較幸運了。相比隱匿在暗中的神秘黑客,運營商作為公眾企業(yè)還是得守法的,廣告劫持雖無節(jié)操但還是有底線的。這不,能讓你看見廣告了,也算是在提醒你,當前網(wǎng)絡(luò)存在被劫持的風險,得留點神;相反,一切看似風平浪靜毫無異常,或許已有一個天大的間諜潛伏在網(wǎng)絡(luò)里,隨時等你上鉤 —— 這可不是彈廣告那樣簡單,而是要謀財盜號了!
我會被劫持嗎?
不少人存在一個錯誤的觀點:只有那些安全意識薄弱的才會被入侵。只要裝了各種專業(yè)的防火墻,系統(tǒng)補丁及時更新,所有的密碼都很復雜,劫持肯定是輪不到我了。
的確,安全意識強的自然不容易被入侵,但那只對傳統(tǒng)的病毒木馬而已。而在流量劫持面前,幾乎是人人平等的。網(wǎng)絡(luò)安全與傳統(tǒng)的系統(tǒng)安全不同,網(wǎng)絡(luò)是各種硬件設(shè)備組合的整體,木桶效應尤為明顯。即使有神一樣的系統(tǒng),但遇到豬一樣的設(shè)備,你的安全等級瞬間就被拉低了。現(xiàn)在越來越流行便宜的小路由,它們可是承載著各種網(wǎng)上交易的流量,你能放心使用嗎?
即使你相信系統(tǒng)和設(shè)備都絕對可靠,就能高枕無憂了嗎?事實上有問題的設(shè)備并不多,但出問題的事卻不少,難道其中還存在什么缺陷?沒錯,還遺漏了最重要的一點:網(wǎng)絡(luò)環(huán)境。
如果網(wǎng)絡(luò)環(huán)境里有黑客潛伏著,即使有足夠?qū)I(yè)的技術(shù),是在所難逃了,敵暗我明,稍不留神就會落入圈套。
當然,蒼蠅不叮無縫的蛋。有哪些隱患導致你的網(wǎng)絡(luò)環(huán)境出現(xiàn)了裂縫?太多了,從古到今流行過的攻擊方式數(shù)不勝數(shù)。甚至可以根據(jù)實際環(huán)境,自己創(chuàng)造一種。
現(xiàn)在回憶下嘗試過的劫持案例。
上古時代:
Hub 嗅探
MAC 欺騙
MAC 沖刷
ARP 攻擊
DHCP 釣魚
DNS 劫持
CDN 入侵
中世紀:
路由器弱口令
路由器 CSRF
PPPoE 釣魚
蜜罐代理
工業(yè)時代:
WiFi 弱口令
WiFi 偽熱點
WiFi 強制斷線
WLAN 基站釣魚
#p#
Hub 嗅探
集線器(Hub)這種設(shè)備如今早已銷聲匿跡了,即使在十年前也少有人用。作為早期的網(wǎng)絡(luò)設(shè)備,它唯一的功能就是廣播數(shù)據(jù)包:把一個接口的收到的數(shù)據(jù)包群發(fā)到所有接口上。且不吐槽那小得驚人的帶寬,光是這轉(zhuǎn)發(fā)規(guī)則就是多么的不合理。任何人能收到整個網(wǎng)絡(luò)環(huán)境的數(shù)據(jù),隱私安全可想而知。
嗅探器成了那個時代的頂尖利器。只要配置好過濾器,不多久就能捕捉到各種明文數(shù)據(jù),用戶卻沒有任何防御對策。
防范措施:還在用的趕緊扔了吧。
這種設(shè)備目前唯一可用之處就是旁路嗅探。利用廣播的特性,可以非常方便分析其他設(shè)備的通信,例如抓取機頂盒的數(shù)據(jù)包而不影響正常通信。
#p#
MAC 欺騙
交換機的出現(xiàn)逐漸淘汰了集線器。交換機會綁定 MAC 地址和接口,數(shù)據(jù)包最終只發(fā)往一個終端。因此只要事先配置好 MAC 對應的接口,理論上非常安全了。
不過,很少有人會那么做,大多為了偷懶,直接使用了設(shè)備默認的模式 —— 自動學習。設(shè)備根據(jù)某個接口發(fā)出的包,自動關(guān)聯(lián)該包的源地址到此接口。
然而這種學習并不智能,甚至太過死板,任何一個道聽途說都會當作真理。用戶發(fā)送一個自定義源 MAC 地址的包是非常容易的,因此交換機成了非常容易被忽悠的對象。只要偽造一個源地址,就能將這個地址關(guān)聯(lián)到自己的接口上,以此獲得受害者的流量。
不過,受害者接著再發(fā)出一個包,綁定關(guān)系又恢復原先正常的。因此只要比誰發(fā)的頻繁,誰就能競爭到這個 MAC 地址的接收權(quán)。如果偽造的是網(wǎng)關(guān)地址,交換機就誤以為網(wǎng)關(guān)電纜插到你接口上,網(wǎng)絡(luò)環(huán)境里的出站流量瞬間都到了你這里。
當然,除非你有其他出站渠道,可以將竊取的數(shù)據(jù)代理出去;否則就別想再轉(zhuǎn)發(fā)給被你打垮的真網(wǎng)關(guān)了,被劫持的用戶也就沒法上外網(wǎng)。所以這招危害性不是很大,但破壞性很強,可以瞬間集體斷網(wǎng)。
防范措施:機器固定的網(wǎng)絡(luò)盡量綁定 MAC 和接口吧。貌似大多數(shù)網(wǎng)吧都綁定了 MAC 和接口,極大增強了鏈路層的安全性。同時,獨立的子網(wǎng)段盡可能劃分 VLAN,避免過大的廣播環(huán)境。
大學里見過千人以上還不劃分 VLAN 的,用一根短路網(wǎng)線就可以毀掉整個網(wǎng)絡(luò)。#p#
MAC 沖刷
之前說了集線器和交換機的轉(zhuǎn)發(fā)區(qū)別。如果交換機發(fā)現(xiàn)一個暫時還未學習到的 MAC 地址,將會把數(shù)據(jù)包送往何處呢?為了不丟包,只能是廣播到所有接口。
如果能讓交換機的學習功能失效,那就退化成一個集線器了。由于交換機的硬件配置有限,顯然不可能無限多的記錄地址對應條目。我們不停偽造不重復的源地址,交換機里的記錄表很快就會填滿,甚至覆蓋原有的學習記錄,用戶的數(shù)據(jù)包無法正常轉(zhuǎn)發(fā),只能廣播到所有接口上了。
防范措施:還是 MAC 和接口綁定。一旦綁定,該接口只允許固定的源地址,偽造的自然就失效了。當然,好一點的交換機都有些策略,不會讓一個接口關(guān)聯(lián)過多的 MAC 地址。
曾經(jīng)在家試過一次,捕捉到小區(qū)內(nèi)用戶上網(wǎng)的流量。不過偽造包發(fā)的太快,~15萬包/秒,更致命的是發(fā)錯目標地址,發(fā)到城域網(wǎng)準入服務(wù)器上,導致工作人員切斷了整個小區(qū)半天的網(wǎng)絡(luò)… 所以必須得選一個 VLAN 內(nèi)的、并且實際存在的地址做為目標 MAC,以免產(chǎn)生大量的數(shù)據(jù)風暴。
ARP 攻擊
這種攻擊大家?guī)缀醵悸牫隼侠O了,即使不懂電腦的人也知道裝個 ARP 防火墻保平安,其危害之大可想而知。
簡單的說,ARP 就是廣播查詢某個 IP 對應的 MAC 地址,在用這個 IP 的人回個聲。知道這個 IP 對應的 MAC 地址,就可以鏈路通信了(鏈路層只能通過MAC地址通信)。如果有人冒充回復,并搶在正常人之前,偽造的答案也就先入為主。IP 被解析到錯誤的地址上,之后所有的通信都被劫持了。
事實上,早期的系統(tǒng)還有個更嚴重的BUG:直接給用戶發(fā)送一個 ARP 回復包,即使對方從沒請求過,系統(tǒng)也會接受這個回復,并提前保存里面的記錄。這種基于緩存的投毒,讓劫持成功率更上一層樓。
防范措施:由于這種攻擊太過泛濫,以至大部分路由器都帶了防 ARP 攻擊的功能??蛻舳说?ARP 防火墻也數(shù)不勝數(shù),似乎成了安全軟件的標配。當然,系統(tǒng)也支持強制綁定 IP 與 MAC 的對應,必要時可以使用。
很多教程都是用 Wireshark 來演示,事實上當年有一款叫 Iris 的軟件非常好用,可以修改封包再次發(fā)送,用它可以很容易搞明白各種攻擊的原理。不過N年沒更新了還不支持64位的。#p#
DHCP 釣魚
現(xiàn)實中,并不是每個人都會配置網(wǎng)絡(luò)參數(shù),或者出于方便,讓網(wǎng)絡(luò)系統(tǒng)自動配置。出于這個目的,DHCP 服務(wù)誕生了。
由于沒有配置IP地址、網(wǎng)關(guān)、DNS 等,在網(wǎng)絡(luò)上是寸步難行的,因此首先需要從 DHCP 那獲得這些。然而,既然連 IP 地址都沒有,那又是如何通信的?顯然,只能發(fā)到廣播地址(255.255.255.255)上,而自己則暫時使用無效的IP地址(0.0.0.0)。(事實上,鏈路層的通信只要有 MAC 地址就行,IP 地址已屬于網(wǎng)絡(luò)層了,但 DHCP 由于某些特殊需要使用的是 UDP 協(xié)議)
因為是發(fā)往廣播,內(nèi)網(wǎng)環(huán)境里的所有用戶都能聽到。如果存在多個DHCP服務(wù)器,則分別予以回復;用戶則選擇最先收到的。由于規(guī)則是如此簡單,以至于用戶沒有選擇的余地。
尚若黑客也在內(nèi)網(wǎng)里也開啟了 DHCP 服務(wù),用戶收到的回復包很可能就是黑客發(fā)出的,這時用戶的網(wǎng)絡(luò)配置完全聽天由命了,不想被劫持都難了。
防范措施:如果是用網(wǎng)線上網(wǎng)的話,最好還是手動的配置。當然,管理員應該嚴格控制 DHCP 回復的權(quán)限,只允許交換機特定的接口才有資格發(fā)送回復包。
只要是這類提問/搶答模式的,都面臨被冒充回答的風險。很多原理都類似。#p#
DNS 劫持
如同 ARP 將 IP 解析成 MAC 地址 一樣,DNS 負責將域名解析成 IP 地址。作為網(wǎng)絡(luò)層的服務(wù),面對的用戶更廣泛,當然面臨的風險也大的多。一旦遭到入侵,所有用戶都倒霉了。近些年的重大網(wǎng)絡(luò)事故無不和 DNS 有關(guān)。
DNS 服務(wù)一旦被黑客控制,用戶發(fā)起的各種域名解析,都將被暗中操控。將正常網(wǎng)站解析成黑客服務(wù)器的 IP,并事先開啟了 HTTP 代理,用戶上網(wǎng)時幾乎看不出任何破綻;而黑客則獲取到所有訪問流量,各種網(wǎng)站賬號信息都將一覽無余。
由于 DNS 服務(wù)器的重要性,現(xiàn)實中通常有著較高的安全防護,想入侵它系統(tǒng)不是件易事。但實際未必如此興師動眾,一些 DNS 程序本身就存在著設(shè)計缺陷,導致黑客能控制某些域名的指向。其中最惡名昭彰的當屬 DNS 緩存投毒。
大家或許已發(fā)現(xiàn),域名->IP->MAC->接口,只要是動態(tài)查詢的就會多一個環(huán)節(jié),風險自然增加。靈活性與安全性始終是不可兼得。
防范措施:手動設(shè)置一些權(quán)威的 DNS 服務(wù)器,例如 8.8.8.8,4.4.4.4 會靠譜的多。
公網(wǎng)上的 DNS 劫持很少發(fā)生,但家用路由器的 DNS 劫持已泛濫成災了。開頭報道的路由器漏洞,最終的利用方式也就是修改了 DNS 地址。#p#
CDN 入侵
CDN 能加速大家都知道,但其中原理不少人都不清楚。其實,CDN 本身就是一種 DNS 劫持,只不過是良性的。
不同于黑客強制 DNS 把域名解析到自己的釣魚 IP 上,CDN 則是讓 DNS 主動配合,把域名解析到臨近的服務(wù)器上。這臺服務(wù)器同樣也開啟了 HTTP 代理,讓用戶感覺不到 CDN 的存在。
不過 CDN 不像黑客那樣貪心,劫持用戶所有流量,它只『劫持』用戶的靜態(tài)資源訪問,對于之前用戶訪問過的資源,CDN 將直接從本地緩存里反饋給用戶,因此速度有了很大的提升。
然而,只要是有緩存的地方,都是大有可為的。一旦 CDN 服務(wù)器遭受入侵,硬盤上的緩存文件就岌岌可危了,網(wǎng)頁被注入腳本,可執(zhí)行文件被感染,一大波僵尸即將出現(xiàn)。
防范措施:感覺運營商不靠譜的話,換個第三方不帶加速的 DNS,或許就不會解析到 CDN 服務(wù)器上了。
不少 CDN 黑白通吃,為了省流量不按套路出牌,超過了緩存時間也不更新,甚至還有忽略 URL 問號后面的,導致程序猿們在資源更新的問題上頭疼不已。#p#
路由器弱口令
當電腦價格一再下降,到了大家打算買第二臺的時候,路由器市場也隨之火熱起來。
但由于繁瑣的配置,差勁的用戶體驗,至今仍有相當部分的用戶不明白如何配置路由器。192.168.1.1 和 admin/admin 幾乎成了國內(nèi)路由器的常量。多少回,用這毫無技術(shù)含量的方法進入網(wǎng)吧或圖書館的路由器后臺。
如果有人惡搞重啟路由,或者給他人限速,你得感謝他的仁慈,這都算不嚴重。要是把路由器的DNS給改了,那就相當嚴重了!公網(wǎng)的 DNS 劫持一般不會持續(xù)太久,但路由器的 DNS 劫持也許長年累月都不會覺察到。
事實上,不乏一些安全意識強的用戶也使用默認密碼。理由很簡單,目前的路由器有兩道門檻:一個 WiFi 連接密碼,另一個才是管理密碼。很多人設(shè)置了復雜的 WiFi 密碼就高枕無憂了,心想都連不到我的網(wǎng)絡(luò)里怎么可能進的了后臺?
之前我也有過這觀念,但總覺不對勁:萬一家里其他電腦或手機中毒了,自動嘗試用弱口令爆進路由器后臺怎么辦。城門都被占領(lǐng)了,城墻再牢固又有何用。
事實上,黑客除了修改 DNS 配置外,還有更恐怖的行為:升級路由器的固件 —— 替換成一個看似完全相同但植入了惡意程序的固件!盡管這目前還尚未普及,然而一旦流行,大批路由器將成為潘多拉魔盒。
防范措施:千萬別輕視路由器的密碼,其實它比你所有賬號都重要。
不改默認密碼的用戶,神都保佑不了你~ #p#
路由器 CSRF
回到本文開始所說的,為什么有那么多路由器會出現(xiàn)這個漏洞呢?也許是路由器的開發(fā)人員太高估用戶了,認為絕大多數(shù)用戶都修改了默認密碼,因此 CSRF 幾乎難以產(chǎn)生。
事實上,國內(nèi)網(wǎng)民的安全意識遠超他們的想象。加上剛才說的,只設(shè)置了 WiFi 密碼而忽略了管理密碼,導致一個惡意程序就能悄悄進入路由器后臺。
沒想到現(xiàn)在這種病毒還真出現(xiàn)了,而且居然還是 Web 版的!
CSRF 漏洞讓病毒木馬都用不著了。用戶直接訪問一個網(wǎng)頁,甚至是一帖子,瀏覽器自動向路由器發(fā)起修改配置的請求。
由于國產(chǎn)路由器的網(wǎng)頁開發(fā)是如此的差勁,登錄基本都是用既不安全又丑陋的 HTTP 401 彈框。這種登錄只需在URL里填上『用戶名:密碼@』即可自動通過,即使登錄失敗也不會有什么提示。
防范措施:絕對要看管好路由器密碼,并且定期去檢查配置是否被篡改。
看過路由器頁面源代碼會發(fā)現(xiàn),那簡直是慘不忍睹,甚至還是 IE5 時代的風格。路由器芯片都是采購的,內(nèi)核也有開源的,所謂的『自主研發(fā)』就是做了那幾個頁面?#p#
PPPoE 釣魚
好了,不吐槽路由器了,下面說說再高級的路由器也無法避免的事。
除了一些大公司或?qū)W校,用的是固定的專線接入上網(wǎng),個人或者小組織很少會使用這種土豪級套餐,只能老老實實的撥號上網(wǎng) —— 無論是電信,還是網(wǎng)通鐵通各種通。
不少人都存在誤區(qū),認為撥號是物理信號的建立過程,在沒有撥上之前,點對點是不通的。如果真是這樣,那么撥號時賬號密碼是如何傳過去的呢?顯然不可能。事實上,終端之間時刻都是暢通的,只不過不撥號就無法得到IP、網(wǎng)關(guān)、會話等參數(shù),即使強制把包發(fā)給網(wǎng)關(guān),人家雖能收到,但沒有認證的會話是不予理睬的,你自然沒法上網(wǎng)。
PPPoE,大家經(jīng)常在撥號時看到這詞。Point-Point Protocol over Ethernet,故名思議,就是點對點的協(xié)議:用戶發(fā)送賬號密碼認證給終端(BRAS),并得到上網(wǎng) IP、網(wǎng)關(guān)地址、會話等。而且協(xié)議是基于以太網(wǎng)的,哪怕線路不是,也得想辦法把數(shù)據(jù)封裝進去。
傳統(tǒng)的 ADSL 是通過電話線上網(wǎng)的,于是需要一個『貓』來把以太網(wǎng)數(shù)據(jù)調(diào)制成電話信號,最終通過電信交換機傳輸。這種設(shè)備保障每家每戶都是獨立的,以免電話信號被竊聽。
然而,后來興起的各種通就不一定了。不少打著的『千兆到樓,百兆到家』的寬帶,就是建了N個小區(qū)局域網(wǎng),然后合并到一個大的城域網(wǎng)(MAN)里。所謂的『百兆』,無非就是拖進你家的那根網(wǎng)線插在樓下一個 100Mbps 的交換機上而已。
用過網(wǎng)通的都知道,百兆帶寬并沒有快到哪里,甚至在一些南方地區(qū)網(wǎng)速慢如蝸牛。但在下載的時候,卻能輕松飆到數(shù)兆每秒。這時局域網(wǎng)的作用就發(fā)揮出來了,如果附近有多個人在看同樣的視頻,P2P 就直接在內(nèi)網(wǎng)里共享流量了,大幅減輕了節(jié)點的壓力。
但是,整個小區(qū)成了一個局域網(wǎng),是多么的不安全。有時甚至不合理的 VLAN 劃分,導致多個小區(qū)成一內(nèi)網(wǎng)。要是有人開啟 DHCP 服務(wù),其他用戶插上網(wǎng)線就能上網(wǎng)了,連撥號都不用,難道天上掉餡餅了?如果敢吃,那可能就落入黑客的陷阱了。
當然,現(xiàn)在直接插網(wǎng)線的并不多,基本通過路由器自動撥號了。但他們的協(xié)議都是一樣的 —— PPPoE,一種極不安全的協(xié)議。
類似 DHCP 協(xié)議,PPPoE 也是通過廣播來探尋有哪些可用的終端,意味著整個小區(qū)的內(nèi)網(wǎng)用戶都能收到;同時探尋包一直往上冒泡,直到被城域網(wǎng)的終端們收到,然后開始紛紛回應。
如果小區(qū)里有人私自開啟一個 PPPoE 終端服務(wù),顯然是最先被收到的。真正的回應包還在大街小巷里傳遞著,用戶和黑客已經(jīng)開始協(xié)商認證了。
不過或許你會說,這必須有人撥號才能上鉤,現(xiàn)在都用路由器,長年累月不會斷開。如果不想耐心等,也有很簡單的方法:來一次集體掉線。
剛剛說過,可以用短路的網(wǎng)線,引發(fā)一場廣播風暴。不過這太過暴力了,甚至會引起流量異常的報警。我們可以使用更簡單有效的方法:MAC 欺騙,不停偽造終端服務(wù)器的 MAC 地址,就可以將小區(qū)用戶的數(shù)據(jù)包統(tǒng)統(tǒng)吸過來了。
PPPoE 使用的是一種隧道方式,將任何數(shù)據(jù)都封裝在其棧下,因此捕捉到用戶任意一個包,即可得到PPPoE棧上的會話ID。然后冒充終端,向用戶發(fā)送一個『斷開連接』的指令,用戶就乖乖下線了。使用這種方法,分分鐘就能讓整個小區(qū)的用戶重新?lián)芤淮翁?,于是可以快速釣魚了。
還有更糟的是,PPPoE 絕大多數(shù)時候都是明文傳輸用戶名和密碼的,因此還能額外獲得用戶發(fā)來的認證賬號。
前面吐槽了大學寢室樓 1000 多機器還不劃 VLAN 的,于是寫一個簡單的 PPPoE 模擬器,就能輕松抓到整個網(wǎng)絡(luò)環(huán)境里的上網(wǎng)賬號。(還支持一鍵全都撥上,集體下線的惡作劇功能~)
防范措施:由于 PPPoE 的安全嚴重依賴物理層,所以盡量不要裝以太網(wǎng)接入的寬帶。當然,管理員們應該嚴格限制 PPPoE 搜尋回復包,就像 DHCP 那樣只允許特定接口出現(xiàn)。事實上小區(qū)內(nèi)部是不可能出現(xiàn) BRAS 服務(wù)器的,因此只允許交換機的 WAN 口出現(xiàn)回復包,那樣就不容易被釣魚了。
PPPoE 還有個更嚴重 BUG,會話 ID 只有 2 字節(jié),最多 65536 種可能。事先構(gòu)造個『撥號斷開』的請求包,接著把會話 ID 依次遍歷一下,就能讓某個終端服務(wù)器的所有用戶下線。如果事先收集好所有終端服務(wù)器地址,可以發(fā)起一次全城斷網(wǎng)- -
這個 BUG 應該早已經(jīng)修復了,只需綁定 <會話 ID,用戶 MAC,小區(qū) VLAN-ID> 關(guān)系即可。而且一個小腳本就能斷開全城各縣市的網(wǎng)絡(luò),說明終端部署不能太過集中。#p#
蜜罐代理
由于眾所周知的原因,某國對代理的需求居高不下。不管黑的白的,透明的還是高匿的,只要能翻出去就是好的。
VPN 需要用戶名密碼以及各種認證,中途被劫持幾乎是不可能的。黑客抓住了人們的純真的心里,將目光轉(zhuǎn)到代理上面。的確,加密后的數(shù)據(jù)中途確實難以劫持,但最終仍要在服務(wù)端還原出真實內(nèi)容吧。如果一時大意,連接了某個免費的 VPN,或許就登上了黑客的賊船了。
相比 HTTP 代理只影響部分功能,VPN 將整個系統(tǒng)的流量都通過穿越過去了。而這一切應用程序并不知曉,仍然將一些重要的數(shù)據(jù)往外發(fā)送,最終被黑客所劫持。
防范措施:不要貪圖小利,用那些打著免費幌子的代理。天下沒有免費的午餐。
很多蜜罐代理未必是黑客布下的,而是你懂的。#p#
WiFi 弱口令
當互聯(lián)網(wǎng)延伸到移動設(shè)備時,網(wǎng)線成了最大的累贅,無線網(wǎng)絡(luò)逐漸進入人們視野。如今,由于無線的廉價和便利,幾乎應用到所有的便捷設(shè)備。一切都不再受限制,人們可以隨時隨地上網(wǎng),這是過去難以想象的;黑客也可以隨時隨地發(fā)起攻擊,這是過去夢寐以求的。
但無論上網(wǎng)方式如何變化,以太網(wǎng)始終是網(wǎng)絡(luò)的核心。如同剛才說的 ADSL,盡管載體是電話線路,但最終解調(diào)出來的仍是以太網(wǎng)數(shù)據(jù)。WiFi 也一樣,無論電波怎樣傳播,最終只有還原出標準的以太網(wǎng)封包才能被路由。
無線網(wǎng)絡(luò)形同一個看不見的巨大集線器,無需任何物理傳播介質(zhì),附近所有人都可以收聽數(shù)據(jù)信號,專業(yè)設(shè)備甚至能在更遠處捕獲。如果沒有一種強有力的加密方式把數(shù)據(jù)封裝起來,那么就毫無隱私可言了。
在經(jīng)歷了各種加密被攻破后,WPA2 如今成為無線網(wǎng)絡(luò)標準加密算法。如果企圖通過傳統(tǒng)爆后臺那樣,一次次的嘗試弱口令去連接,那效率將是何其的低下。
和撥號不同,WiFi 用戶首先需『關(guān)聯(lián)』熱點,以建立起物理通道。類似 PPPoE 那樣,WiFi 在認證之前也是可以通信的,并且是明文數(shù)據(jù) —— 不過,這僅僅是認證數(shù)據(jù)包明文而已,真正密碼顯然不會出現(xiàn)在其中。畢竟它和撥號的目的完全不同:一個是為了加密之后所有的流量,而后者僅僅識別下你有沒有上網(wǎng)的權(quán)限。
通過傳統(tǒng)的嗅探工具,可以方便獲取這些握手通信包。盡管找不出密碼,但里面保存著密鑰初始化相關(guān)的數(shù)據(jù)。通過專業(yè)的 WPA2 破解工具,加上豐富的密碼字典,有相當一部分的無線網(wǎng)絡(luò),能在可接受的時間里被破解。
對于不少人來說,無線密碼是他第一道也是唯一一道防線。連上之后,不出意外即可輕易進入路由器后臺,然后就可以控制他整個內(nèi)網(wǎng)的流量了。
防范措施:最簡單也是最有效的方法:給密碼加些特殊符號。
如果給他的路由器刷一個固件,能自動破解其他的無線網(wǎng)絡(luò),破解之后自動進后臺,自動給它升級自己的固件。。。排山倒海的路由器木馬爆發(fā)了。#p#
WiFi 熱點釣魚
上面簡單的說了無線密碼的破解。但若本來就知道密碼的情況下,又如何發(fā)起入侵呢?
這種場合很常見,在一些商場、餐廳、旅館等地方,無線網(wǎng)絡(luò)即使有密碼,大家一般也能在墻上或卡片上找到,處于半公開的狀態(tài)。或者是破解了鄰居的無線密碼,但無法進入路由器后臺,又該如何繼續(xù)?
如今越來越智能的無線設(shè)備,已能很好的防御諸如 MAC 欺騙以及 ARP 攻擊這類原始入侵了,因此需要一個更先進和隱蔽的方式,能繞過網(wǎng)絡(luò)設(shè)備,直接發(fā)起點對點的進攻。
在大公司或大商場上過無線網(wǎng)的用戶會發(fā)現(xiàn),在室內(nèi)無論走到哪里網(wǎng)絡(luò)都存在,即使從一層到五層信號照樣滿格,而在自己家中信號隔墻就下降不少。難道是開了信號特別強大的熱點嗎?但在建筑外面卻收不到。事實上,不難發(fā)現(xiàn)每層樓天花板上,都吸附著不少盤子似的東西。沒錯,正是這些分布在各處的設(shè)備,覆蓋了整棟樓的無線網(wǎng)絡(luò),讓信號死角變得更少。
但是同時存在那么多熱點,搜索列表里顯示的卻沒有幾個。因為他們都有著同樣的熱點名(SSID),客戶端通常會將同名熱點合并成一個。至于連接時,系統(tǒng)會選擇信號最好的那個。如果這些熱點的認證方式也是相同的,無論連哪個都沒問題。
仔細揣摩這條特征,不難發(fā)現(xiàn)其中大有文章可做 —— 這不天生就為我們釣魚準備的!我們再開一個同名同認證的偽熱點,只要在信號上壓倒對方,釣上附近的魚兒那是妥妥的。
目前幾乎還沒有哪個客戶端對此有防御,無論是商場還是咖啡店,甚至是一些大公司里,對此也束手無策。原因很簡單,問題既不出在設(shè)備、也不是部署上,更不能歸咎與用戶。這是整個協(xié)議棧的弱點。
發(fā)起此攻擊的唯一材料,就是一個超大功率的熱點,以此來壓倒正常的,爭做用戶『最信賴』的信號源。
其實,每個熱點都時時刻刻廣播著一種叫 Beacon 的數(shù)據(jù)包,里面帶有熱點名等相關(guān)的信息。用戶網(wǎng)卡收集之后進過篩選分析,即可得知附近有哪些熱點,各自信號如何。功率大的熱點,用戶接收時的信號強度(RSSI)自然也會高一些。
當然,過高的信號源可能會引起一些監(jiān)控的警覺,自己也被置于巨大的輻射之中。如果僅僅是對某個方位片殺,使用定向天線會有更好的效果。
不過,光有發(fā)射能力還是不夠的。即使能把 Beacon 推送到數(shù)十公里外,讓全城都能看見你的熱點名,但前來連接的設(shè)備可沒有那么強勁信號。因此沒有一個高靈敏的接收系統(tǒng),再強的信號也只是一廂情愿罷了。
防范措施:因為是底層的缺陷,這種劫持通常很難防護。從理論上說,熱點通常是固定著的,因此可以事先記錄下每個熱點的3D坐標,然后根據(jù) WiFi 定位時刻監(jiān)控熱點位置,如果某個熱點信號出現(xiàn)在遠離事先的地方,很可能是釣魚熱點發(fā)出的假信號。
但在現(xiàn)實中,要同時追蹤那么多設(shè)備并不容易。除非所有的無線設(shè)備,都自帶監(jiān)控附近熱點的功能,那樣可以節(jié)省大量追蹤成本。
不過在安全性高的場合,還是使用『接入認證』,連接時要求輸入用戶名和密碼來準入。
用戶成功連上 WiFi 后,導致網(wǎng)絡(luò)狀態(tài)發(fā)生改變,一些系統(tǒng)會嘗試請求某個特定的 URL,如果返回的是 HTTP 302,會自動彈出重定向后的網(wǎng)頁。目的是為了方便打開網(wǎng)頁版的準入,有時連上 CMCC 會自動彈出一個登錄網(wǎng)頁就是如此。iPhone,iPad,WP 都支持,MacOS 最新版彈出的網(wǎng)頁不會執(zhí)行腳本了。利用這個廢功能來彈廣告應該很不錯~#p#
WiFi 強制斷線
不得不說 WiFi 的另一個缺陷 —— 被下線。類似 PPPoE 主動或被動斷開撥號時都有一個注銷包,WiFi 也一樣。
之前提到,遍歷 PPPoE 的會話ID,冒充所有用戶發(fā)出注銷請求,可以斷開全城的網(wǎng)絡(luò)。WiFi 也有類似的缺陷,只不過正好反過來:冒充熱點,向所有用戶廣播注銷包,于是所有連著該熱點的用戶都下線了。
不過,WiFi 的被下線僅僅是認證被注銷,用戶和熱點仍是關(guān)聯(lián)著的。用戶接著重新發(fā)起認證,因此又給黑客一個獲取握手數(shù)據(jù)的機會。
如果廣播持續(xù)不斷,用戶也就一直沒法上網(wǎng),屏幕上會不停的閃爍著『連接中… / 已斷開』。對方可能會嘗試重啟路由,但發(fā)現(xiàn)問題仍在,而且所有設(shè)備都是這情況,會認為路由器出問題了,于是嘗試恢復出廠設(shè)置 —— 這一刻,危險降臨了!
照國產(chǎn)路由器的風格,出廠時 WiFi 是沒有密碼的,而且后臺基本是弱口令。因此有個非常短暫的安全縫隙,能鉆入這臺設(shè)備并拿下他的網(wǎng)絡(luò)!如果事先寫好腳本,一旦發(fā)現(xiàn)有開放的熱點,立即連上并且爆入后臺,更是可以直接秒殺!對方剛恢復完路由器,還沒回到電腦前就已被劫持了,這是無論如何也想不到的。。。
當然,為了防止他之后進入路由器改密碼,你必須立即隱藏 SSID,讓 Beacon 不再發(fā)出,這樣大家都看不見這臺設(shè)備了,只能通過 BSSID(路由器 MAC 地址)來連接。但是人家會有疑問,剛恢復好的路由器怎么看不見?這時得事先建立一個釣魚熱點,名字和那被隱藏的 SSID 一樣,將對方引誘到自己的蜜罐上。
在這個蜜罐里開啟一個和路由器頁面差不多的站點(可以直接反向代理他路由器的頁面),拖住用戶,讓你有充足的時間來操作那臺被隱藏的真設(shè)備。甚至可以換掉他固件了!
當然,有些設(shè)備不讓輕易更新固件,需要輸入路由器上的某個號碼,或者按一個鍵才能開始。這時得發(fā)揮蜜罐站點的作用了,你可以在頁面上畫個文本框,提示他輸入路由器上的那號碼,或者直接讓他去按那按鈕。由于路由器后臺太過專業(yè),很少會有人質(zhì)疑它的權(quán)威性,幾乎都是按部就班。
事實上,你的蜜罐一直開著,對方肯定會在里面配置 WiFi 密碼和管理密碼,以及 PPPoE 賬號。于是他的一切上網(wǎng)秘密都被掌控!即使不改他路由器也無所謂了,以后可以隨時進入。
防范措施:不要輕易恢復路由器的出廠設(shè)置。真有必要請務(wù)必留神,盡快改掉默認密碼。即使周圍沒有黑客,一些中毒的設(shè)備隨時可能來連上并爆進后臺竄亂。
軟硬兼施,這招是不是太陰了?稍微用一點心理學或是社工,原本不怎么嚴重的漏洞可以擴大很多倍。
#p#
WLAN 基站釣魚
前面說的熱點釣魚,只能在特定的場合下進行。劫持KFC的用戶,只能在KFC附近;入侵小區(qū)的路由,只能在家完成。這極大的限制了攻擊范圍,完全沒有發(fā)揮出無線網(wǎng)絡(luò)的靈活性。
然而有一種網(wǎng)絡(luò),無論走到哪都能收到。打開手機,總能看見 CMCC 這類熱點如同幽靈一般存在。如今,WLAN 業(yè)務(wù)已遍地開花,幾乎覆蓋了全國各地。它支持更高的頻段,并向下兼容 WiFi,設(shè)備遍布全城,試圖打造一個無線城域網(wǎng)。唯一的遺憾是收費的,而且信號也一般,遠不如 3G 實用。
有時我們并沒有連接這些熱點,系統(tǒng)卻自動連上了。原因很簡單,之前某個時候手賤,去連過它們。而系統(tǒng)會保存主動連過的熱點,再次出現(xiàn)時就自動上了。事實上,去連過這些熱點的人不在少數(shù)。
不用說,你也想到開熱點釣魚了。并且用戶幾乎都是用 WiFi 來連接,也就沒有必要使用 WLAN 設(shè)備。使用之前的大功率熱點,取個 CMCC 的名字,放在陽臺上對著大街,不一會就連上一堆用戶了。要是支持虛 AP 的話,把 CMCC-AUTO,ChinaNet 等等這些名字全部用上,前來光臨的就更多了。
上面提到了,不少設(shè)備連上 WiFi 后能自動彈網(wǎng)頁,利用這個特性,釣魚就更容易了。大多手機系統(tǒng)為了節(jié)省流量,當 WiFi 和 3G 同時可用時,會優(yōu)先使用 WiFi,于是用戶的流量不知不覺流到黑客那里。
事實上,我們還可以把整套釣魚方案集成到安卓里。利用手機創(chuàng)建的熱點吸引附近的用戶,捕捉到的流量還可以通過自己的 3G 網(wǎng)絡(luò)代理出去。使用 Linux 內(nèi)核強大的轉(zhuǎn)發(fā)機制,我們可以輕易的控制用戶的各種流量。以后可別嘲笑街上低頭玩手機的人,人家說不定正在劫持你呢。
不過,在一些地方例如地鐵上面,3G信號很差,難以將熱點收到的數(shù)據(jù)轉(zhuǎn)發(fā)出去,因此只能釣魚無法劫持。這種單機模式是否仍能入侵呢?下篇文章將敘述,如何發(fā)起離線釣魚。
防范措施:WiFi 不用就應及時關(guān)閉,以免自動連上不安全的熱點。對于一些長期不用的連接記錄,不如趁早刪了吧。
安卓熱點默認只支持10個用戶,在街上開個叫 CMCC 的熱點,會發(fā)現(xiàn)瞬間就連滿了。所以還是把筆記本藏書包里,配幾個好點的無線網(wǎng)卡,既隱蔽效果也好。大功率天線雖然很過癮,但不能過度使用,說不定哪天就被查水表了~
結(jié)尾
就談到這里吧,這些只是之前嘗試有效的案例,事實上還有太多的途徑,要是再算上系統(tǒng)內(nèi)部的方式那就無數(shù)了。但不論如何變化,流量劫持的最終利用方式幾乎是如出一轍的 —— 利用它能做些什么呢?終極危害能有多大?請聽下回分解。
原文地址:http://fex.baidu.com/blog/2014/04/traffic-hijack/