概述2023 年3 月21 日晚上,鏈安與中睿天下聯合研發的監控系統檢測到一種新型安卓木馬。在經過睿士沙箱系統捕獲樣本之後,發現該安卓木馬極有可能是原安卓網銀盜號木馬SOVA 的變種。與此同時,意大利安全公司Cleafy 發布了一篇題為《Nexus:一个新的安卓僵尸网络?》 的報告,確認該病毒確實是SOVA 的變種,並將其重新命名為Nexus。
樣本分析樣本名稱:Chrome.apk
樣本SHA256 為: 376d13affcbfc5d5358d39aba16b814f711f2e81632059a4bce5af060e038ea4
樣本文件大小:4792032KB
主要行為列表刪除指定應用以其應用數據
安裝並啟動任意應用
隱藏自身應用圖標
卸載保護
上傳用戶短信數據以及通訊錄
使用SmsManager 發送短信、 刪除短信、取消短信通知
撥打電話
獲取用戶cookie 信息並上傳,注入cookie 等
讀取並上傳數字錢包信息
記錄並上傳鍵盤輸入記錄
查詢敏感信息手機數據(查詢存儲郵件、應用賬號數據、IMSI 等手機信息)
設置靜音
屏幕解鎖
訪問指定Url
試圖禁用管理員用戶
開啟輔助功能
監聽手機重啟事件
使用DownloadManager 下載文件
安裝測試當木馬安裝完成後,手機主界面會出現一個類似Chrome 瀏覽器的圖標(如圖1所示),與真實的Chrome 圖標略有差異。木馬使用的圖標較小,但在沒有相關對比的情況下,基本上很難識別出這種差異。
圖1
當木馬啟動後,界面會提示用戶需要開啟“無障礙功能”。在用戶點擊界面任意位置時,將自動跳轉到系統內的“無障礙功能”設置並自動啟用該功能(如下圖所示)。
在啟動“無障礙功能”之後,程序會自動彈出並請求獲取“設備管理員權限”(如圖2所示)。
圖2
在惡意應用獲得設備管理員權限後,它會在後台不斷收集用戶信息,用戶很難察覺其存在。一旦設備管理員權限被授予,用戶在嘗試打開設備管理員權限設置界面時會發現界面迅速關閉,無法撤銷權限。類似地,通過adb 執行操作時也會遇到相同問題,界面會立刻關閉。這是因為惡意應用程序已經監控了設備管理員設置界面的開啟動作,從而阻止用戶撤銷其權限。因此,用戶需要啟用root 權限才能成功卸載此惡意應用。
adb shell am start -S 'com.android.settings/.Settings\$DeviceAdminSettingsActivity'
樣本深度分析基礎信息
圖3
圖4
在使用Incinerator 進行手動分析之前,通過“基礎分析”模塊,我們發現該樣本程序具有加密殼(如圖3所示)。這意味著惡意應用程序的開發者使用了一種加密方法來保護其代碼,以防止分析和逆向工程。同時,我們注意到簽名信息中使用了“CN=Android Debug”(如圖4所示),這與正常的Chrome 證書不一致。這可能意味著此惡意應用程序的開發者試圖偽裝成正常的Chrome 應用,以便更容易地欺騙用戶並獲得其信任。
得益於incinerator 具備Apk 權限分析功能,我們可以在Apk 的詳細信息中獲取相應的權限列表(如圖5,6所示)。
圖5
圖6
在應用權限列表中,樣本獲取的權限中有13 項被評定為“危險”的權限。其中有幾個權限尤為危險:
發送短信(SEND_SMS)
讀取短信(READ_SMS)
接收短信(RECEIVE_SMS)
讀取聯繫人(READ_CONTACTS)
寫入聯繫人(WRITE_CONTACTS)
讀取電話號碼(READ_PHONE_NUMBER)
普通應用通常不會申請一些涉及敏感操作的權限,如改寫通訊錄、讀取和發送短信等。這些權限通常僅限於專門的通訊軟件。然而,當惡意應用獲取輔助功能權限後,它可以利用這一功能來自動開啟其他權限,包括一些對用戶隱私和安全具有潛在威脅的權限。
輔助功能是Android 系統中一項強大的功能,旨在幫助有特殊需求的用戶更好地使用設備。然而,這一功能也可能被惡意應用濫用,從而執行不受用戶控制的操作。一旦惡意應用獲得了輔助功能權限,它可以在用戶不知情的情況下執行各種操作,如啟用其他敏感權限,進而竊取用戶數據和破壞其隱私。因此,用戶需要謹慎授權輔助功能權限,避免將其授予不可信的應用。
代碼中用輔助功能開啟的權限列表如下:
android.permission.READ_SMS:允許應用程序讀取短信消息
android.permission.SEND_SMS:允許應用程序發送短信消息
android.permission.RECEIVE_SMS:允許應用程序接收短信消息
android.permission.READ_CONTACTS:允許應用程序讀取聯繫人列表
android.permission.WRITE_CONTACTS:允許應用程序編輯聯繫人列表
android.permission.READ_PHONE_STATE:允許應用程序讀取設備電話狀態和身份信息
android.permission.WRITE_EXTERNAL_STORAGE:允許應用程序寫入外部存儲,例如SD卡
android.permission.MODIFY_AUDIO_SETTINGS:允許應用程序修改聲音設置
android.permission.READ_EXTERNAL_STORAGE:允許應用程序讀取外部存儲,例如SD卡
android.permission.INSTALL_PACKAGES:允許應用程序安裝其他應用程序
android.permission.CALL_PHONE:允許應用程序撥打電話
android.permission.GET_ACCOUNTS:允許應用程序訪問設備帳戶列表
android.permission.READ_PHONE_NUMBERS:允許應用程序讀取設備電話號碼
android.permission.CLEAR_APP_CACHE:允許應用程序清除所有緩存文件
圖7
圖8
如上圖所示,該應用首先硬編碼了需要通過輔助功能開啟的權限列表,接著向系統發起對這些權限的申請。在PermissionsTask 環節中,應用會監聽權限申請的動作。一旦監聽到權限申請,該應用便利用輔助功能在權限申請界面上自動點擊“同意”按鈕。
靜態代碼分析在使用Incinerator 工具對樣本進行自動脫殼並分析惡意行為代碼後,我們發現以下主要功能:
1. 刪除指定應用以其應用數據惡意應用具有刪除其他應用及其數據的能力,可能影響用戶正常使用手機及其應用。
圖9
clearApp方法確實是通過執行pm clear package命令(如圖9所示)來刪除與特定應用程序包相關的緩存數據,包括圖片緩存、臨時文件、數據庫緩存等。這樣可以幫助清理設備上的垃圾文件,釋放存儲空間。
而deleteThisApp方法則通過觸發android.intent.action.DELETEintent 來實現應用的卸載(如圖9所示)。當系統接收到這個intent 時,會彈出一個卸載確認界面。通常情況下,用戶需要在此界面上手動點擊“同意”按鈕才能完成卸載。然而,由於這個惡意應用具有輔助功能權限,它可以在卸載確認界面出現時自動點擊“同意”按鈕,從而在用戶不知情的情況下完成卸載操作。這種做法進一步提高了惡意應用的隱蔽性和破壞性。
2. 安裝並啟動任意應用惡意應用可以安裝並啟動其他應用,可能進一步傳播惡意軟件或將用戶引導至惡意網站。
圖10
安裝和卸載應用確實是通過輔助功能來實現的。這種方式可以方便地為用戶自動化應用的安裝和卸載過程。唯一的區別在於,為了實現這一功能,惡意應用需要適配不同廠商的安裝應用包名和安裝Activity 的名稱。
這樣一來,惡意應用可以在各種不同的設備上成功執行安裝和卸載操作,從而更加隱蔽地實現其惡意行為。這種策略使得惡意應用在各類設備上具有更廣泛的攻擊能力。
3. 隱藏自身應用圖標為了難以被發現和卸載,惡意應用會隱藏自己的應用圖標(如圖11所示)。
圖11
在這個惡意應用中,開發者使用了setComponentEnabledSetting方法來禁用Launcher Activity。這樣一來,用戶就無法通過設備主屏幕上的應用圖標(Launcher Icon)來操作或訪問該惡意應用了。
setComponentEnabledSetting方法可以用來啟用或禁用應用程序組件,如Activity、Service、BroadcastReceiver 等。在這種情況下,惡意應用通過禁用Launcher Activity,達到了隱藏自身的目的,讓用戶更難以察覺其存在。這種做法進一步提高了惡意應用的隱蔽性,使其更難以被發現和移除。
4. 上傳手機聯繫人等敏感信息惡意應用可以竊取並上傳用戶的聯繫人、短信、Cookie 等信息,可能導致用戶隱私洩露和財產損失。
圖12
圖13
如圖12、13所示,惡意應用首先通過content://sms訪問短信內容,然後經過一系列業務邏輯處理,將其整合到網絡請求的數據中。除了短信數據,這個請求還包含瞭如SIM 卡信息、受害者設備的IP 地址、國家、城市和設備型號等信息。最後,這些數據會被發送到指定的服務器。
通過這種方式,惡意應用能夠竊取用戶的短信和設備信息,然後將這些數據發送給攻擊者。攻擊者可以利用這些信息進行各種違法活動,例如詐騙、竊取用戶隱私、甚至是身份盜竊。
5. 使用SmsManager 發送短信、 刪除短信、取消短信通知、讀取短信5.1 上傳短信
圖14
圖15
根據上述描述,該惡意應用通過監聽收到短信的系統廣播,從廣播中提取收到的短信內容,然後將每一條短信發送給遠程服務器。在完成這個過程之後,應用還會終止收到短信的廣播,以免被用戶或其他應用程序發現。如圖15所示,super.execute指的是將收集到的短信數據發送給遠程服務器。
這種行為表明,該惡意應用在竊取用戶短信方面採取了較為積極的手段。用戶需要加強對此類應用的防範意識,以避免對其隱私和安全造成不良影響。
5.2 發送短信
圖16
調用系統SmsManager 發送短信(如圖16所示)。
6. 獲取用戶cookie 信息並上傳,注入cookie 等
圖17
如圖17所示,讀取所有cookie,上傳到遠程服務器,並且通過CookieManager 把本地cookie 刪除。
7. 讀取和上傳數字錢包信息7.1 讀取餘額
圖18
通過輔助功能,讀取代表餘額的View 顯示的字符內容,就是用戶錢包的餘額(如圖18所示)。
7.2 讀取seed phrase
圖19
圖20
利用輔助功能,從表示seed phrase 的View 中讀取內容(如圖19、20所示)。
7.3 上傳到服務器
圖21
把加密錢包信息發生到遠程服務器。
8. 記錄並上傳鍵盤輸入記錄
圖22
圖23
上面兩張圖,圖22所示監聽鍵盤輸入,通過輔助功能抽取數據,圖23所示把這些數據上傳到遠程服務器。
9. 查詢敏感信息手機數據(查詢存儲郵件和應用賬號數據,IMSI 等手機信息)
圖24
通過AccountManager 獲取賬號信息,上傳到遠程服務器。
10. 把手機設置靜音
圖25
通過audio 系統服務器,把手機設置為靜音(如圖25所示)。
11. 監聽手機重啟事件
圖26
圖27
監聽手機重啟事件,手機重啟後惡意就開始工作。
12. 使用DownloadManager 下載APK 並且安裝
圖28
下載apk 並且使用安裝。
13. 拍照、錄視頻
圖29
圖30
14. 讀取其他文檔
圖31
圖32
15. 網絡請求代碼中所有的Log 都會上傳,上傳的服務器地址來自一段“加密”字符串(如圖33、34所示)。
Recommended Comments