濫用Accessibility service自動安裝應用

wyzsk發表於2020-08-19
作者: 阿里移動安全 · 2015/12/18 16:55

Author:[email protected]

0x00 惡意應用簡介


近年許多的android市場實現免root安裝應用,也就是下載完成立即自動安裝,而黑產界也同樣利用該技術在進行惡意推廣,靜默安裝。最近攔截到大量惡意應用利用系統AccessibilityService靜默安裝應用。一旦惡意的Accessibility服務被啟用,惡意應用將彈出廣告,即使使用者關閉彈出的廣告該應用程式也會在後臺下載,隨後自動安裝推廣的惡意應用。

0x01 AccessibilityService介紹:


AccessibilityService作用:

Android Accessibility用於那些由於視力、聽力或其它身體原因導致不能方便使用Android智慧手機的使用者,Android提供了Accessibility功能和服務幫助這些使用者更加簡單地操作裝置。開發者可以搭建自己的Accessibility服務,這可以加強應用的可用性。開啟AccessibilityService後應用透過它能實時地獲取當前操作應用的視窗元素資訊,並能夠雙向互動,既能獲取使用者的輸入,也能對視窗元素進行操作,比如點選按鈕。

AccessibilityService的使用場景:

Android應用市場使用android Accessibility來免root安裝應用;近來火熱的搶紅包應用也用使用AccessibilityService自動搶紅包。

0x02 惡意應用分析


我們監測到一款名為“WiFi密碼檢視器(增強版)”的應用濫用AccessibilityService。應用啟動後誘導使用者開啟“WIFI訊號增強服”,其實就是開啟惡意應用自身的AccessibilityService;以檢視WIFI密碼讓惡意應用獲得root許可權,而這一切都是為該惡意自動安裝做鋪墊。下圖是該應用執行圖

p1 p2 圖應用啟動與引導開啟wifi訊號增強介面

應用啟動後會引導使用者開啟WIFI訊號增強服務。應用跳轉到ACCESSIBILITY_SETTINGS介面,提示使用者若要增強Wifi訊號強度,請開啟WIFI訊號增強服務。使用者啟用惡意應用的該服務之後,手機將瘋狂下載該應用雲端準備的應用包,並且在手機上自動安裝執行。

p3 p4 圖啟動Accessibilty Service介面

以下是惡意程式碼執行流程

p5 圖惡意程式碼雲信流程

流程圖解析

  1. Wifi_list模組,惡意應用利用wifi訊號增強誘導使用者開啟Accessiblity Service;檢視Wifi密碼誘導使用者給該應用賦予Root許可權。
  2. PushDownLoad模組,該模組由PushCoreServiceChapingCoreService服務組成,它們利用後臺服務上傳裝置資訊,獲取待Push的應用包,下載應用包。
  3. 安裝模組,惡意應用解析下載成功的包,然後彈出DialogPushActivity的廣告框,非Root利用 AccessilbityService安裝,root利用 pm install完成靜默安裝
  4. daemon模組, daemon是存放在raw目錄下的elf檔案,它是一個守護程式,保護應用不被殺死。daemon原理是fork出子程式之後,讓子程式成為新的會話的領頭程式,並與其父程式的會話組和程式組脫離,緊接著就是在子程式中定時去啟動java層配置的任務。這裡它保證 PushCoreServiceChapingCoreService一直在後臺執行。

以下對核心服務PushCoreService跟蹤分析

首先向目標伺服器Post裝置的imei,wifimac,SerialNumber資訊,伺服器返回uuid,並記錄在DefaultSharedPreference檔案的”uuid”欄位

p6 圖請求伺服器獲取uuid

上圖最後呼叫this.m_context.handler.sendEmptyMessage(1),啟動執行緒GetPushThread執行緒。該執行緒向http://api.findzhibo.com/ad/open?appCode=1&appVersion=appVerion請求獲取當前應用的“open_status”欄位。只有“open_status”欄位為True時,雲端伺服器才會繼續執行,否則表示當前應用版本對應的雲端關閉。開啟狀態向http://api.findzhibo.com/index.php/ad/push,傳送post請求,伺服器返回待push的應用,寫入“cc_push_sp.xml”的push_json欄位

p7 圖雲端惡意推廣app的push_json

p8 圖雲端請求獲取惡意推廣應用

上圖最後呼叫this.m_context.handler.sendEmptyMessage(2),解析push_json欄位填充intent,啟動PushDownloadService進行應用下載和惡意廣告頁面彈出。PushDownloadService解析appJson,獲取下載資訊,隨後透過handler訊息對應用下載安裝。

p9 圖解析appJson,進行下載安裝

Handler存在4個msg.what值,‘3’處理下載失敗;‘4’下載成功;‘5’彈出DialogPushActivity廣告框若開啟Accessiblity Service,啟動WifiZengQiangService; ‘6’彈出DialogPushActivity廣告框,啟動惡意推廣的應用。 首先傳送“4“表示開始後臺下載,隨後啟動下載安裝的執行緒。該執行緒檢查本次推送的應用是否已經被下載到指定目錄,sdcard/.wifi_ckq儲存下載的應用包以及廣告圖片,appName經過md5加密。

p10 圖sdcard目錄存放下載的推廣應用包

p11 圖下載惡意推廣應用

下載完成後傳送對應用靜默安裝,裝置非root傳送‘5’,root使用 pm install安裝應用隨後傳送‘6’啟動應用。

p12 圖傳送handler安裝應用

handler ‘5’,’6’都會啟動DialogPushActivity,

p13 圖啟動DialogPushActivity

DialogPushActivity其實就是一個ImageView,使用者在觸控該介面後推送的應用將被自動安裝

p14 p15 圖DialogPushActivity介面

啟動WifiZengQiongService自動安裝服務。之前的Ghosh Push,Kemoge等病毒家族,都是先對裝置root然後植入推廣應用。而該惡意應用的AccessibilityService一旦被啟動,隨後應用彈出惡意廣告介面,即使受害者關閉彈出的廣告,該應用程式也會被自動下載,隨後成功安裝。這個過程是呼叫系統的packageinstaller,獲取安裝介面的按鈕位置,Accessibility提供的模擬使用者點選功能,代替使用者自動點選下一步,直到安裝結束。下圖是彈出的廣告圖,觸碰後即可開始下載安裝推廣的應用。下圖AccessibilityService裡喚起安裝介面

p16 圖呼叫系統packageInstaller

AccessibilityService的onAccessibilityEvent方法不僅處理’com.android.packageinstaller’ 的event,還處理一些安全軟體,這樣該惡意應用將會完全控制安全軟體行為,也就意味著該應用可以自動安裝,啟動任意app,解除安裝任意應用,而且利用AccessibilityService控制安全軟體進行免殺。

p17 圖AccessibilityService控制指定應用包

在推廣的應用成功安裝過後,系統將會發出“android.intent.action.PACKAGE_ADDED”廣播訊息,AppListenerReceiver類接受該廣播並啟動應用。

0x03 總結與建議


到此濫用AccessibilityService過程分析完畢。該應用已增強WIFI訊號誘惑使用者啟用Accessibility,以及檢視WIFI密碼是應用獲取root許可權。在此提醒使用者謹慎給不受信應用開啟AccessibilityService,以免被惡意應用控制;最近火熱的搶紅包應用也會利用AccessibilityService,實現自動搶功能,我們已發現駭客利用‘自動搶紅包’誘導使用者開啟AccessibilityService控制手機,建議使用者在安全渠道下載搶紅包軟體,以免不必要的損失。

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

相關文章