Wombie Attack—惡意代碼傳播的新路徑

雷鋒網編者按:8月16日,第三屆中國互聯網安全領袖峰會(CSS 2017)在北京國家會議中心召開。作為九大分會場之一的騰訊安全探索論壇(TSec)以「安全新探索」為主題,雲集了國際知名廠商及頂尖高校的資深安全專家,探討全球信息安全領域前沿技術、研究成果及未來趨勢。

騰訊安全玄武實驗室的劉惠明、郭大興帶來了一種惡意代碼傳播的新路徑——Wombie Attack。據雷鋒網了解,Wombie Attack 技術通過被感染者在地理位置上的移動來實現攻擊擴散,類似殭屍題材電影的情節——被殭屍咬了的人也變成殭屍,會再去咬其他人,該威脅技術不但可以實現傳染式攻擊,而且攻擊過程不依賴互聯網,所以甚至無法從網絡層面檢測攻擊。

以下為雷鋒網整理實錄:

郭大興:我是來自騰訊玄武實驗室的郭大興,今天和我的同事劉惠明一起演示一個在極棒上演示的項目。

從 1997 年 802.11 協議出來,到現在已經接近 20 年。最近我們查了 wifi 聯盟在 2016 年發表的聲明,到了 2016 年初,wifi 設備量已經有 120 億。現在已經進入到物聯網時代,會有越來越多的設備帶有 wifi功能。

在常見的 wifi 場景下,芯片經常處於 STA 模式或者 AP 模式。當設備想連接無線路由器的時候,會有主動掃描和被動掃描兩種方式。在配置無限路由器的時候,會配置一個 ID,它會定期的對外進行廣播,發一個數據包,告訴外面無線設備它的存在。在接收到數據包的時候,就會知道它已經進入到 IP 信號覆蓋的範圍內。另外一種是它會主動發 Probe Request,探索 ID 的存在。

2005 年,針對 wifi 設備主動連接、主動掃描 AP 的方式出現了 karma 攻擊,最著名的是 wifi Pinapple攻擊,可以做到對 wifi 基站進行欺騙,劫持它的流量,進行中間人攻擊。劫持流量之後,會提供很多插件,對它後續的攻擊進行分析。

手機芯片既可以工作於 STA 模式,也可以工作於 AT 模式。你每天用手機在家裡上網,也可以使用公司的無線網絡,還會出現在其他的無線網絡環境里,訪問大量的 IP 。karma 攻擊經過這麼多年,是不是手機對它已經免疫了?如果手機遭受 karma 攻擊,會給我們帶來什麼樣的影響?

經過分析,我們發現安卓手機不會再對外發送 Directed Probe,但是會主動發送 Broadcast Probe。我們可以採用 XIB 的質點,對它進行攻擊。手機連 wifi 網絡的時候,通常是通過一個列表,列表上面顯示附近有哪些 IP,點擊進行加入。

還有一種方式是通過手動添加網絡的方式來添加一個 IP。通常情況下,IP 是可以設置為隱藏模式的,不會主動對外廣播自己的存在,需要通過手動添加。但是,2011 年,已經有人跟安卓團隊報告通過手動添加網絡,手機依然會遭受攻擊,發送 Directed Probe,目前通過手動添加網絡的攻擊問題仍然沒有修復。

我們發現國外知名的第三方 ROM,即使刷到最新的 7.0 版本的安卓系統,它依然會發送 Directed Probe,實現 karma 攻擊。

Wombie Attack 主要就是逆向分析固件,並進行更改。

這裡介紹一下使用博通芯片的手機,通常使用 BCM43XX 系列。這個系列的芯片有一個 ROM 和 RAM,STA 和 AT 兩種模式分別使用了不同的固件,都會被加到 ROM 當中,會有一段微碼程序。可以看到 PSM 和 PSM UCODE Memory,是用來存儲微碼程序的。PSM 是程序狀態機,會同 UCODE Memory 裡面來取指令。從空中接到數據包之後,UCODE 可以對數據包進行解碼。解碼以後,發現符合接收的數據包。把固件當中的微碼程序寫入到 UCODE,提取微碼程序,對它進行反饋編。

因為微碼程序可以監控底層,知道什麼時候接收到數據包。接收到數據包之後,可以對頭部做一些簡單的解碼,判斷出你接收的數據包是管理類的,還是控制類的,還是數據類型的數據包。當接收到數據類型的數據包的時候,會判斷是不是 Probe request。

如果是廣播的,或者是發給自己的,後面就會發 Probe Response。根據 IP 的配置,會把兩個數據包保存在模板內存。微碼會從模板內存加載 Probe Response 到 seralizer 中,PSM 通過特殊的寄存器修改前面的 64 個位元組,通常情況下只需要對目的地址進行修改。

但是,它提供的數據範圍允許我們訪問到其中部分的 SSID,我們可以對微碼程序做一些 pech,我們修改了前面 4 個位元組的 SSID,讓它發送出去。在微碼層做 Probe Response 的欺騙,它的長度是可以變的,最長是 32 個位元組。響應模板包已經生成好了,配製任何意義長度的 SSID。當你匹配不一樣的長足,它是有一段缺口的。我們的辦法是不在微碼層處理這個問題,收到數據包以後,不進行檢查,直接上傳到固件層,只需要對微碼做一個簡單的 pech,紅色的就是收到 Probe request,直接調用 L623 狀態,把包上傳到固件層。

我們選擇的是在調用 19610E 處理管理類函數的地方做了一些 hook,在這個地方判斷接收到的包是不是 Probe request。手動構造的時候,這個包裡面除了包括 SSID 之外,還包括其它的信息。最簡單的就是調取函數,生成模板,我們也可以直接生成模板,只不過其它的所有信息都生成好了,我們只需要基於檢查接收到的 Probe 的類型,對應 SI 的部分。我們只需要把接收到的請求里的 SSID 替換掉請求里的 SSID 就可以了。如果是廣播的,可以從預先準備的 SSID 字典里挑選一些出來,給它發送回去,改一下 mac 地址,就可以實現對 Probe request 的欺騙。

除了需要對 Probe request 進行修改,在後續的協議中 Association Request  Handler 用 NOP 指令替換跳轉指令。首先會檢測是不是 SSID 類型,後面會判斷長度跟你配置的 SSID 長度是不是一樣。如果一樣,會進一步判斷包請求當中的 SSID 是不是跟它配置的一樣。我們只需要用簡單的 NOP 指令替換跳轉指令。這樣就可以在手機上實現類似於 karma 的功能。在 6P 裡面,Association Request 不一樣了,每一個協議里都有一個 Element,這部分的檢驗函數是在一個 ROM 中實現的。在具體解碼的時候,會根據接收到協議的類型,動態的生成一個函數指針的數組,把這個數組傳遞給解析函數,解析函數會根據參數判斷 Elements 調用對應的函數指針。在函數調用之前,可以把 SSID 的檢驗函數替換給我們自己生成的,這樣就可以解決 6P 的部件對這個部分的驗證。

固件生成用的是 Nexmon,他們想在手機上實現 monitor 的模式基於 C 語言修改博通的框架。我們在 Nexu5 和 6P 上實現了部件的修改,實現了類似 karma 攻擊的效果。

接下來有請劉惠明給大家介紹。

劉惠明:我的同事已經完成了在手機上建立 karma 攻擊源。下面我介紹通過這個攻擊源能實現什麼內容。

首先我將介紹 Wombie Attack 整體攻擊流程和實現的典型步驟。首先,攻擊者利用手機進行 karma 攻擊,截取受攻擊的手機流量。之後,可以通過受害者手機的遠程代碼執行漏洞獲取手機上的遠程代碼執行權限。之後再利用 root 漏洞獲取 root 權限,修改手機上的固件,搭建另一個受害者手機上的 karma 攻擊源。這樣受害者就變成新的攻擊源,可以感染另一台手機。

我們設計的 Wombie Attack 的木馬結構,主要分為三個部分。第一部分是後台 AP,在手機上利用 hostapd,後台開啟 AP 用戶根本沒有任何感知。第二部分是流量劫持模塊,用 dnsmasq 劫持特定流量,並注入惡意代碼。最後就是最核心的漏洞利用代碼。利用目標手機上的漏洞獲取遠程代碼執行能力,並使用匹配手機 root 進行 root,隨後在後台靜默執行 Wombie 的部署腳本,將受害者的手機變成新的攻擊源。

這是我們在極棒上的演示,最終獲取的是手機 B 上面的照片。攻擊者拿着一部手機,靠近手機 A。A 和 B都是受 karma 攻擊影響的。手機 A 進入攻擊者的 SSID 範圍,攻擊者向手機 A 劫持流量,並利用手機 A上面的漏洞,將其控制。之後,把部署腳本傳到手機 A,手機 A 就變成新的攻擊源,會散播惡意的 SSID信號。手機 A 靠近手機 B,在手機 A 的主人沒有感知的情況下,它會進一步感染手機 B。這時,我們的演示中是直接把手機B作為最終的攻擊目標,漏洞利用之後,將手機 B 中的照片傳到手機 A 上。手機 A 返回攻擊者附近。此時,攻擊者可以從手機 A 上拿到手機B的照片。此時,手機 A 相當於攻擊的擺布人,直接將攻擊傳到世界的各個角落。

我們要確認攻擊時限的可行性。其中最大的助力來源於安卓生態系統碎片化帶來的隱患。根據 Google 7 月份發佈的最新數據,小於等於 4 的版本仍然占 26%,安卓 5 以前的版本佔一大半。此時,上面的漏洞又是什麼情況呢?根據網絡數據顯示,99.8% 的設備存在遠程攻擊漏洞。不誇張的講,絕大部分手機上都是存在攻擊的可能性的。因為手機的大量存在和移動性,將會導致大量的手機受到攻擊的影響。

在探討攻擊的可行性之後,我們將分析攻擊到底會造成什麼樣的影響。不僅是偷照片那麼簡單,它還有兩個最重要的特性。一是攻擊的隱藏性。根據之前的介紹,它是一個完全不依賴互聯網傳播的可以逃避網絡上監測和查殺的木馬傳播的新路徑。可以繞過主流互聯網的監控設備。二是一個攻擊的放大器,可以將低危漏洞轉為高危漏洞,高危漏洞更加危險。比如,劫持流量。高危漏洞就是劫持權限,上正常的網站也會遭受攻擊。

karma 攻擊依然威脅着信息世界的安全。結合移動智能手機的碎片化、更新不及時、移動性強等特性,將會造成更加危險的狀況。本攻擊模型涉及到系統安全、無線安全和用戶行為引導多個領域,需要多方合作,共同解決未來的威脅。我們在研究中發現,要解決問題,需要用戶層、驅動層多方共同努力。

安全不是絕對的,如果想更加安全,除了廠商的努力之外,也需要用戶自身的注意。最終是一個視頻帶着解說的演示,作為演示的結束。也是為了大家更深入的理解演示系統。感謝馬彬、TK教主的幫助。


想在手機閱讀更多css資訊?下載【香港矽谷】Android應用
分享到Facebook
技術平台: Nasthon Systems