你的應用是如何被替換的,App劫持病毒剖析

wyzsk發表於2020-08-19
作者: 阿里移動安全 · 2016/04/19 12:35

Author:[email protected]

0x00 App劫持病毒介紹


App劫持是指執行流程被重定向,又可分為Activity劫持、安裝劫持、流量劫持、函式執行劫持等。本文將對近期利用Acticity劫持和安裝劫持的病毒進行分析。

0x01 Activity劫持病毒分析


1.1 Activity劫持病毒介紹

Activity劫持是指當啟動某個視窗元件時,被惡意應用探知,若該視窗介面是惡意程式預設的攻擊物件,惡意應用將啟動自己仿冒的介面覆蓋原介面,使用者在毫無察覺的情況下輸入登入資訊,惡意程式在把獲取的資料返回給服務端。

p1

p2

以MazarBOT間諜木馬為例,該類木馬有一下幾個特點:

  • 偽裝成系統簡訊應用,啟動後請求啟用裝置管理許可權,隨後隱藏圖示;
  • 利用Tor與C&C控制中心進行匿名通訊,抵禦流量分析;
  • C&C控制中心下發指令進行手機控制、update html、以及資訊收集;
  • 透過伺服器動態獲取htmlData,然後實施介面劫持,獲取使用者賬號資訊;

以下是C&C控制中心指令列表:

p3

我們發現該木馬能接受並處理一套完整的C&C控制指令,並且使用Tor進行匿名網路通訊,使得流量資料的來源和目的地不是一條路徑直接相連,增加對攻擊者身份反溯的難度。結下來我們將詳細分析該木馬介面劫持過程。

1.2 介面劫持過程分析

入口梳理首先看到axml檔案。WorkerService服務處理C&C控制中心下發的”update html”指令,同時後臺監控頂層執行的Activity,若是待劫持的應用將會啟動InjDialog Acticity進行頁面劫持。

p4 圖 axml資訊

下圖是後臺服務對頂層Acticity監控過程,若是待劫持應用則啟動InjDialog進行劫持。getTop函式做了程式碼相容性處理,5.0以上的裝置木馬也可以獲取頂層Acticity的包名。

p5 圖 後臺監控

InjDialog Activity透過webView載入偽造的html應用介面,呼叫webView.setWebChromeClient(new HookChromeClient())設定html頁面與Java互動,在偽造的Html頁面裡呼叫prompt把JS中的使用者輸入資訊傳遞到Java,HookChromeClient類重寫onJsPrompt方法,處理使用者輸入資訊,最後將劫持的使用者資訊透過Tor匿名上傳到指定域名。

p6 圖 劫持使用者資訊

p7 圖 上傳劫持資訊

0x02 應用安裝劫持病毒分析


2.1安裝劫持病毒介紹

安裝劫持病毒透過監聽android.intent.action.PACKAGE_ADDED和android.intent.action.PACKAGE_REPLACED intent實施攻擊,包括兩種手段,一種是解除安裝刪除掉真正安裝的apk,替換為攻擊者偽造的應用;另外一種是借用使用者正在安裝的這個訊息,悄悄的安裝自己推廣的其他應用。這個過程就像你平時喝的“六個核桃”,某天你居然喝到“七個核桃”。

2.2應用相關資訊

該應用是一款名為”FlashLight”的應用,程式包名:com.gouq.light,應用圖示如下:

p8

2.3主要元件分析

  • .App:應用Application類,載入Assest目錄下加密jar包,獲取介面ExchangeImpl物件,在jar裡實現介面函式onApplicationCreate、triggerReceiver、triggerTimerService;啟動核心服務LightService;
  • .LightService:應用核心服務,可外部呼叫啟動LightTiService,達到替換程式名,以及am啟動服務以自身保活;
  • .LightTiService:由LightService啟動,該服務會呼叫動態載入包裡的triggerTimerService介面方法,完成對以安裝應用的刪除、當前裝置資訊上傳、從伺服器下載待安裝應用;
  • .AppReceiver:廣播接收器,透過載入的jar包裡triggerReceiver介面方法實現,處理android.intent.action.PACKAGE_ADDED和android.intent.action.PACKAGE_REPLACED intent檢視安裝跟新應用是否是劫持應用,若是透過execCmd進行安裝劫持。

下圖安裝劫持過程,透過監聽應用的安裝和更新,實施關聯的其他應用的靜默安裝。

p9 圖 安裝劫持

上圖可以知道此惡意應用借用安裝或更新intent,安裝預設的關聯應用,這樣在安裝完畢後使用者並不清楚哪個是剛真正安裝的應用,這樣增加了推廣應用點選執行的機率。

0x03 怎麼有效防治App劫持或安全防護建議


針對企業使用者:

作為一名移動應用開發者,要防禦APP被介面劫持,最簡單的方法是在登入視窗等關鍵Activity的onPause方法中檢測最前端Activity應用是不是自身或者是系統應用。

當然,術業有專攻,專業的事情交給專業的人來做。阿里聚安全旗下產品安全元件SDK具有安全簽名、安全加密、安全儲存、模擬器檢測、反除錯、反注入、反Activity劫持等功能。 開發者只需要簡單整合安全元件SDK就可以有效解決上述登入視窗被木馬病毒劫持的問題,從而幫助使用者和企業減少損失。

針對個人使用者:

安裝阿里錢盾保護應用免受App劫持木馬威脅。

更多技術文章,請點選阿里聚安全部落格

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章