編輯:關於android開發
App劫持是指執行流程被重定向,又可分為Activity劫持、安裝劫持、流量劫持、函數執行劫持等。本文將對近期利用Acticity劫持和安裝劫持的病毒進行分析。
Activity劫持是指當啟動某個窗口組件時,被惡意應用探知,若該窗口界面是惡意程序預設的攻擊對象,惡意應用將啟動自己仿冒的界面覆蓋原界面,用戶在毫無察覺的情況下輸入登錄信息,惡意程序在把獲取的數據返回給服務端。
以MazarBOT間諜木馬為例,該類木馬有一下幾個特點:
偽裝成系統短信應用,啟動後請求激活設備管理權限,隨後隱藏圖標;利用Tor與C&C控制中心進行匿名通信,抵御流量分析;C&C控制中心下發指令進行手機控制、update html、以及信息收集;通過服務器動態獲取htmlData,然後實施界面劫持,獲取用戶賬號信息;
以下是C&C控制中心指令列表:
我們發現該木馬能接受並處理一套完整的C&C控制指令,並且使用Tor進行匿名網絡通信,使得流量數據的來源和目的地不是一條路徑直接相連,增加對攻擊者身份反溯的難度。結下來我們將詳細分析該木馬界面劫持過程。
入口梳理首先看到axml文件。WorkerService服務處理C&C控制中心下發的”update html”指令,同時後台監控頂層運行的Activity,若是待劫持的應用將會啟動InjDialog Acticity進行頁面劫持。
圖axml信息
下圖是後台服務對頂層Acticity監控過程,若是待劫持應用則啟動InjDialog進行劫持。getTop函數做了代碼兼容性處理,5.0以上的設備木馬也可以獲取頂層Acticity的包名。
圖後台監控
InjDialog Activity通過webView加載偽造的html應用界面,調用webView.setWebChromeClient(new HookChromeClient())設置html頁面與Java交互,在偽造的Html頁面裡調用prompt把JS中的用戶輸入信息傳遞到Java,HookChromeClient類重寫onJsPrompt方法,處理用戶輸入信息,最後將劫持的用戶信息通過Tor匿名上傳到指定域名。
圖劫持用戶信息
圖上傳劫持信息
安裝劫持病毒通過監聽android.intent.action.PACKAGE_ADDED和android.intent.action.PACKAGE_REPLACED intent實施攻擊,包括兩種手段,一種是卸載刪除掉真正安裝的apk,替換為攻擊者偽造的應用;另外一種是借用用戶正在安裝的這個消息,悄悄的安裝自己推廣的其他應用。這個過程就像你平時喝的“六個核桃”,某天你居然喝到“七個核桃”。
該應用是一款名為”FlashLight”的應用,程序包名:com.gouq.light,應用圖標如下:
.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進行安裝劫持。
下圖安裝劫持過程,通過監聽應用的安裝和更新,實施關聯的其他應用的靜默安裝。
圖安裝劫持
上圖可以知道此惡意應用借用安裝或更新intent,安裝預設的關聯應用,這樣在安裝完畢後用戶並不清楚哪個是剛真正安裝的應用,這樣增加了推廣應用點擊運行的幾率。
針對企業用戶:
作為一名移動應用開發者,要防御APP被界面劫持,最簡單的方法是在登錄窗口等關鍵Activity的onPause方法中檢測最前端Activity應用是不是自身或者是系統應用。
當然,術業有專攻,專業的事情交給專業的人來做。阿裡聚安全旗下產品安全組件SDK具有安全簽名、安全加密、安全存儲、模擬器檢測、反調試、反注入、反Activity劫持等功能。 開發者只需要簡單集成安全組件SDK就可以有效解決上述登錄窗口被木馬病毒劫持的問題,從而幫助用戶和企業減少損失。
針對個人用戶:
安裝阿裡錢盾保護應用免受App劫持木馬威脅。
用Android Studio 運行ndk 程序 最近准備研究一下android雙進程守護,由於此前用eclipse 寫jni習慣了,現在主要用as 工具。在此也試著
Android ViewPager 重復數據問題的解決方法,androidviewpager最近在做的新聞客戶端用到了ViewPager,Android Studio如今
【Android性能工具】騰訊開源工具GT(隨身調),androidgt做App測試時監測使用期間的cpu,內存,流量,電量等指標時,發現的企鵝很好用的工具。 備份至此,
Android之ASD組件(一),androidasd組件 Google在android5.0之後推出新設計標准Material Design,為了能在低版本上使用Ma
Android系統之路(初識MTK) ------ System-Blu