Android Cerberus 惡意樣本分析

編者按:此前我們曾經就Android Cerberus惡意木馬翻譯整理了一些相關技術資料,與此同時,北京鏈安的安全技術人員對該木馬的樣本進行了專業和細緻的分析,完成了一篇詳盡的技術文章,非常適合安卓客戶端開發者、安全技術人員閱讀了解。

本文首發於FreeBuf,FreeBuf是國內領先的互聯網安全新媒體,同時也是愛好者們交流與分享安全技術的社區,其投稿類文章均需要經過對應領域專家的審稿認可後方可通過。本文在FreeBuf投稿後,經過了其指定專業人員的審稿,最終得以發佈也體現了本文的技術含量和價值,希望對業內人士有所幫助。

Android Cerberus 惡意樣本分析 惡意樣本特徵 流程概覽 內存解密新 dex 地區白名單 隱藏圖標 定時觸發保活廣播 計步機制觸發與 C2 服務器通信 更新攻擊命令 忽略電池優化 竊聽短信消息 激活設備管理員 啟動後臺服務 誘導啟用無障礙服務 請求竊聽短信所需的權限 啟動設備鎖 更新輔助服務狀態到 payload 無障礙服務 木馬傳播機制 總結 參考文章

Android Cerberus 惡意樣本分析

前段時間網上流傳 Android 平臺 Cerberus 木馬家族出現了新的變種,在網上找了一番沒有找到新變種的木馬樣本反而找到了 2019 年 6 月披露的一批樣本,這裡挑選了其中一個樣本深入的分析下看看 Cerberus 木馬的工作機制。

Cerberus 木馬的詳細介紹可以閱讀之前發的文章:https://mp.weixin.qq.com/s/UewBO4RgTlh9vBKzqYXEcQ

惡意樣本特徵

樣本名稱:Flash Player

應用包名:com.uxlgtsvfdc.zipvwntdy

SHA-256:728a6ea44aab94a2d0ebbccbf0c1b4a93fbd9efa8813c19a88d368d6a46b4f4f

流程概覽

惡意樣本的執行流程大概如下:Android Cerberus 恶意样本分析

內存解密新 dex

Android 應用程序必須在 AndroidManifest.xml 文件中聲明其使用的服務、廣播接收器和活動組件才能使用它們。在反編譯 Cerberus 惡意樣本中很明顯能看到其使用的服務、廣播接收器和活動等組件並不在主 dex 文件中,所以這裡基本可以判斷其核心 dex 文件是在內存中動態解密的。Android Cerberus 恶意样本分析

通過在內存搜索匹配 dex 文件特徵並轉儲內存中解密後的 dex 獲取木馬的核心代碼。

Android Cerberus 恶意样本分析

地區白名單

惡意樣本在解密釋放新的 dex 文件後判斷當前感染者所在國是否在白名單中,如果在白名單中則不執行惡意行為。

白名單國家名單有:烏克蘭、俄羅斯、白俄羅斯、塔吉克斯坦、烏茲別克斯坦、土庫曼斯坦、阿塞拜疆、亞美尼亞、哈薩克斯坦、吉爾吉斯斯坦、摩爾多瓦等。

Android Cerberus 恶意样本分析
Android Cerberus 恶意样本分析

隱藏圖標

如果感染者不在白名單國家則惡意軟件將進一步執行,其通過禁用入口組件來實現隱藏圖標使其在手機桌面上不可見來規避感染者卸載惡意應用。

定時觸發保活廣播

惡意軟件通過在清單文件中註冊高頻的系統廣播事件以及定時讓系統時鐘發送自身廣播事件實現了一個簡單的保活機制使其能持續的活動在系統中。Android Cerberus 恶意样本分析
Android Cerberus 恶意样本分析Android Cerberus 恶意样本分析

計步機制觸發與 C2 服務器通信

在保活廣播接收器組件中,實現了一個簡單的計步器來觸發木馬與 C2 服務器的通信。Android Cerberus 恶意样本分析Android Cerberus 恶意样本分析

更新攻擊命令

計步數量達到閥值後,啟動 HBOxMrf 木馬服務拉取 C2 服務器的攻擊命令,C&C 服務器地址為:http://94.156.77.32/gate.php目前服務已經無法正常訪問

客戶端與 C2 服務器交互流程如下:

1.首先拉取 C2 服務器下發的攻擊命令。

Android Cerberus 恶意样本分析

2.如果響應命令為 ||no|| 則註冊到 C2 服務器成為肉雞設備

Android Cerberus 恶意样本分析

3.如果命令包含 ||youNeedMoreResources|| 則下載 payload 並保存到 data/data/包名/apk/system.apk 文件中。

Android Cerberus 恶意样本分析Android Cerberus 恶意样本分析

4.更新攻擊命令到 payload 等待完成攻擊。

Android Cerberus 恶意样本分析Android Cerberus 恶意样本分析

忽略電池優化

Cerberus 木馬除了定時觸發保活廣播,還通過將自己加入電池優化白名單中來增強持續在系統中執行惡意活動的可能。Android Cerberus 恶意样本分析

竊聽短信消息

保活廣播接收器同時也在接收短信消息類型的系統廣播,當收到此類型廣播時則讀取出短信內容和發信人並保存到配置文件中,為後續執行惡意活動竊取短信消息做準備。Android Cerberus 恶意样本分析

激活設備管理員

Cerberus 木馬除了通過隱藏圖標的方式防止感染者卸載自身外,還通過激活設備管理員權限來防止感染者卸載自身,同時也為了防止其他安全軟件查殺卸載 Cerberus 木馬。Android Cerberus 恶意样本分析

啟動後臺服務

誘導啟用無障礙服務

Cerberus 木馬的所有敏感操作都嚴重依賴於無障礙服務的啟用,其通過循環拉起 “啟用無障礙服務界面” 來誘導感染者對其進行無障礙服務授權。
Android Cerberus 恶意样本分析Android Cerberus 恶意样本分析

請求竊聽短信所需的權限

請求竊取短信消息和聯繫人所需的權限。

啟動設備鎖

根據 lockDevice 標記執行設備鎖操作。Android Cerberus 恶意样本分析Android Cerberus 恶意样本分析
Android Cerberus 恶意样本分析

更新輔助服務狀態到 payload

無障礙服務

無障礙服務啟用後通過監控界面元素,模擬點擊界面授權按鈕來完成權限的自我授權和設備管理員的激活操作。同時監控界面活動是否正在進行安全掃描、是否正在卸載惡意軟件來避免木馬被查殺和卸載。包括監控界面是否打開目標活動,將其通知給 payload 完成界面劫持攻擊操作。

在無障礙服務中模擬點擊激活按鈕,完成激活設備管理員防止被用戶卸載,也為後續鎖定設備提供權限支撐。

Android Cerberus 恶意样本分析Android Cerberus 恶意样本分析

監控界面是否在 Google Play 保護機制掃描界面,如果是則發送回退事件防止被查殺。

Android Cerberus 恶意样本分析

監控當前前臺活動發送到 payload 執行相關攻擊操作。

Android Cerberus 恶意样本分析

木馬傳播機制

Cerberus 木馬的作者曾在 Twitter 上表明,其傳播採用釣魚網站以 Flash Player 的形式進行傳播來誘導用戶下載安裝惡意木馬。建議用戶在網站下載應用時應特別注意網站的真實性和安全性避免被釣魚或劫持攻擊Android Cerberus 恶意样本分析Android Cerberus 恶意样本分析
Android Cerberus 恶意样本分析

總結

Cerberus 惡意木馬通過字符串混淆、執行流混淆、動態加載代碼、動態解密字符串和實現了一個簡單的計步器機制來對抗安全人員的分析工作。同時利用了 Android 無障礙服務的屏幕監控功能,通過監控手機屏幕內容的改變事件,模擬點擊危險權限授權按鈕進行自我授權、監控用戶的安全掃描和卸載行為進行自我保護以及監控前臺應用活動界面完成對目標的劫持攻擊。

對於本次分析遺憾的是由於 C2 服務器的關閉導致無法獲取到核心的 payload 代碼和相關惡意指令,從而無法進行更加全面的分析木馬的攻擊機制。但 payload 想要完成攻擊終究還是依賴於無障礙服務的啟用,我相信 Cerberus 木馬家族的新變種也會依賴於該功能,所以建議在日常使用 Android 設備時應謹慎啟用設置中的無障礙服務開關。

Cerberus 仍是目前較為活躍的 Android 平臺新型木馬,其作者通過租賃的方式進行盈利,同時在黑市和 Twitter 上宣傳木馬內容從而吸引惡意活動參與者購買此木馬。

此類木馬危害極大,普通用戶在下載相關軟件時請首先確認網站的真實性,確保軟件來源的可靠性防止被釣魚攻擊下載到此類惡意軟件。

參考文章


分享到:


相關文章: