青松資訊:李逵遇李鬼,淺談Android上的“冒牌貨”惡意軟體
提起古典名著《水滸傳》,想必中國人都是耳熟能詳。這本書刻畫了諸多在中國家庭裡可謂家喻戶曉的人物,梁山好漢李逵便是其中之一。《水滸傳》第四十三回中,李逵下山探親,結果路遇一黑臉大漢李鬼冒充自己名號打劫,假李逵打劫真李逵,結果自然是“假李逵”李鬼被“真李逵”打的落花流水。自此,“李鬼”一詞也常常被借指為“冒牌貨”。
那安全界有沒有這樣的李鬼呢?
還真有!
之前卡巴斯基安全研究人員就曾經在報告裡披露一個新的Android木馬,並評價其為“獨一無二”。該木馬便是一個不折不扣的“李鬼”,偽裝成知名app,以李逵之名行李鬼之實。
這個被稱為Trojan.AndroidOS.Switch
這個木馬界“李鬼”目前釋出有兩個版本。這兩個版本分別偽裝成百度客戶端和Wi-Fi萬能鑰匙這兩款知名應用來欺詐Android使用者。
▲精心偽裝的木馬
下面以偽裝成Wi-Fi萬能鑰匙的版本為例,重點介紹該木馬的工作原理、危害及防範方法。值得一提的是,木馬作者甚至還專門製作了一個網站用來宣傳和分發該木馬,這個網站所在伺服器同時也作為木馬的命令&控制中心(C&C)來使用。
▲木馬作者製作的網站
......
Switch 木 馬 工 作 原 理
Wi-Fi萬能鑰匙是一款基於分享經濟模式而推出的免費上網工具,旨在通過使用者間共享Wi-Fi網路資訊(其中,包括安全密碼)的方式來幫助使用者(如商務差旅人士)將裝置連線到周邊陌生公共網路中。由於使用者常常會通過該app連線各路Wi-Fi網路,木馬可籍此傳播傳播開來。
☟ 侵入到裝置中後,木馬將執行以下操作:
01 獲取所在網路的BSSID,並通知C&C此BSSID網路中木馬已啟用。
02 嘗試獲取ISP(Internet服務提供商)名稱,並以此確定具體使用哪個DNS伺服器來實施DNS劫持。一共有三個DNS伺服器可能參與劫持:101.200.147.153,112.33.13.11 和120.76.249.59。其中,101.200.147.153是預設選項,其他兩個則僅分別針對某些特定ISP。
03 使用以下預定義的登入名&密碼詞典施行暴力破解攻擊。
☟ ☟ ☟
· admin:00000000
· admin:admin
· admin:123456
· admin:12345678
· admin:123456789
· admin:1234567890
· admin:66668888
· admin:1111111
· admin:88888888
· admin:666666
· admin:87654321
· admin:147258369
· admin:987654321
· admin:66666666
· admin:112233
· admin:888888
· admin:000000
· admin:5201314
· admin:789456123
· admin:123123
· admin:789456123
· admin:0123456789
· admin:123456789a
· admin:11223344
· admin:123123123
執行該步驟時,木馬首先會嘗試在系統嵌入瀏覽器中訪問預設閘道器地址,其後利用預先寫好的Java指令碼執行暴力破解工作:嘗試使用登入名&密碼詞典中的各個登入名&密碼組合進行登入,一般都能順利登入TP-LINK Wi-Fi路由器Web管理介面。
04 若上一步執行成功,該木馬會在WAN設定選項中將首選DNS伺服器地址修改成由木馬釋出者控制的惡意DNS伺服器,並將備用DNS伺服器地址修改成8.8.8.8(谷歌DNS,用以確保在流氓DNS伺服器失效時,使用者裝置依然能正常解析DNS)。
▲路由器Web管理介面截圖
▲為完善可讀性而重新整理的木馬預製Java程式碼
......
Switch 木 馬 危 害 及 防 範 措 施
要想弄清楚DNS劫持類木馬的危害,首先得明白DNS到底為何物。DNS(Domain Name System,域名系統),因特網上作為域名和IP地址相互對映的一個分散式資料庫,具體作用是把網路地址(域名,以一個字串的形式)對應到真實的計算機能夠識別的網路地址(IP地址),以便計算機能夠進一步通訊,傳遞網址和內容等,而IP地址和域名之間的轉換工作則被稱為DNS解析。
☟ 域名“google.com”通過DNS解析為IP地址87.245.200.153便是一個著名的解析案例,該案例的正常解析流程如下:
▲域名“google.com”DNS解析流程
☟ 而在遭遇DNS劫持攻擊後,整個解析流程便會發生改變,具體如下:
▲遭遇DNS劫持攻擊後的域名“google.com”DNS解析流程
如上圖所示,此時使用者不再與真正的google.com進行通訊,取而代之的是一個不在使用者計劃內的陌生網路資源。這個新的訪問物件可能是一個google.com“贗品”,也可能是一個會彈出廣告或者會傳播惡意軟體的站點,亦或是其他站點/資源。如果訪問的是google.com“贗品”,該站點會儲存使用者的全部搜尋請求,並將之傳送給本次DNS劫持的施行者。
由於更改Wi-Fi路由器的DNS解析設定後,連線該路由器所支撐網路的所有裝置都將強制使用路由器指定DNS進行解析,這意味著一旦路由器DNS設定能為DNS劫持施行者所修改,此Wi-Fi下所有裝置流量去向控制權都將盡掌於其手。
-----
下面總結下Trojan.AndroidOS.Switcher的特點。
Switcher攻擊物件為整個Wi-Fi網路,而非直接攻擊使用者裝置,這意味著它具有一定隱蔽性。而它最厲害的一點在於就算重啟路由器,被篡改的DNS設定並不會因此重置,DNS劫持很難被發現。即便惡意DNS伺服器被攔截,由於使用者仍能使用輔助DNS8.8.8.8正常進行網路訪問,使用者/IT無法因此察覺異狀。
如上所述,該木馬隱蔽性強,危害大,具體防範策略以預防為主,一旦發現異狀,需及時處理。
我們建議所有使用者檢查DNS設定裡是否存在上面提過的惡意DNS伺服器之一(不僅僅是在明顯發現存在DNS劫持時,建議定期排查),若存在,請及時聯絡ISP技術支援或將情況告知Wi-Fi網路持有者。同時,我們還強烈建議使用者在路由器的管理Web介面更改預設登入名和密碼,以預防此類攻擊。
......
另 一 種 “李鬼” 式威脅
Android 上 的 Web 注 入
有類專門針對瀏覽器的攻擊,被稱為瀏覽器中間人攻擊(MITB)。該攻擊實現手段主要有惡意DLL注入、流氓擴充套件及依靠偽裝代理伺服器(或其他方式)注入惡意程式碼到瀏覽器頁面等等。而當攻擊目標是網銀時,MITB往往會通過Web注入的方式來實現。具體而言,就是通過注入惡意程式碼到網上銀行服務網頁中,以此攔截一次性SMS訊息,從而收集使用者相關資訊、欺騙銀行詳情等等。
而在Android端,Web注入實施方案主要有:
01 覆蓋應用。
02 將使用者訪問的銀行網頁重定向到特製釣魚網站頁面。
由於重定向方案近來已逐漸遭棄用,這裡僅重點介紹視窗覆蓋方案。
使用釣魚視窗覆蓋應用是目前最流行的一種Web注入方案,並且為幾乎所有網銀木馬所應用。木馬可能會用偽造的對話方塊覆蓋Google Play Store以竊取使用者銀行卡詳細資訊,也可能會用偽造的登陸框覆蓋各種社交媒體和即時通訊app以竊取使用者密碼。
▲惡意軟體Marcher、 Acecard
當然,大部分時候,它們的目標是以網銀為主的金融類APP。常見攻擊方式有:
-- 01 --
由網路犯罪分子預先製作好木馬視窗,用以覆蓋app自身視窗。木馬代表:移動網銀木馬Acecard家族。
-- 02 --
使用部署在惡意伺服器上的釣魚網頁覆蓋app。這種方式的好處是網路犯罪分子可以隨時修改其內容。木馬代表:移動網銀木馬Marcher家族。
-- 03 --
從惡意伺服器下載模板頁面,再往模板頁面新增目標app的圖示及名稱。木馬Trojan-Banker.AndroidOS.Faketoken便曾用這種方式攻擊過超過2000個金融app。從Android 6開始,為了完成上述攻擊,FakeToken木馬必須申請相關許可權來實現視窗覆蓋。而隨著新版本Android的普及,將會有越來越多的移動網銀木馬需要申請許可權。
事實上,如今很少有攻擊者會採用Web注入方案進行攻擊。由於移動瀏覽器和app的多樣,開發Web注入工具耗時耗力,且還需要大量資金投入。對於攻擊者來說,相比自己開發web注入工具,使用現成工具無疑要容易得多。當然,這並不意味著我們就可以對此類攻擊放鬆警惕,隨著惡意軟體作者技術的不斷提高,未來一切皆有可能。
......
小 結
《水滸傳》中“假李逵”李鬼的結局是最終為真李逵所斬殺。然而大道難行,魍魎難辨,隨著黑客技術的發展,這些偽裝成正當來源的惡意軟體界“李鬼”在隱蔽性和危害性上也必然會得到一個長足的提高,它們將越來越難以察覺,施加攻擊成本也將越來越低。
這時,如何快速識別、查殺木馬並避免掛馬已成為一個必須認真面對的嚴峻課題。如今攻擊者行為隱蔽性越來越高,在可能攻擊發生之前及時發現漏洞方能化被動為主動。
▌本文由青松雲安全原創編譯,如需轉載,請署名出處。