Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    86369406

Contributors to this blog

  • HireHackking 16114

About this blog

Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.

趨勢科技移動應用信譽服務(MARS)團隊最近發現了一種全新的、完全未被發現的安卓銀行木馬,名為MMRat,自2023年6月底以來一直針對東南亞的移動用戶。

研究人員將此惡意Android銀行木馬命名為MMRat (趨勢科技檢測為AndroidOS_MMRat.HRX),自2023年6月下旬以來一直針對東南亞的移動用戶。該惡意軟件以其獨特包名com.mm.user命名。可以捕獲用戶輸入和屏蔽內容,還可以通過各種技術遠程控制受害者設備,使其運營商能夠在受害者的設備上實施銀行欺詐。

此外,MMRat使用基於協議緩衝區(又名Protobuf)的特殊自定義命令與控制(CC)協議,這是一種用於序列化結構化數據的開源數據格式。這個功能在Android銀行木馬中很少見到,它在傳輸大量數據時提高了性能。

技術分析分析顯示,大多數MMRat樣本都是從一系列偽裝成官方應用商店的類似網絡釣魚網站下載的。這些網站主要在語言上有所不同,這表明了MMRat運營商的目標受害者範圍。然而,這些網絡釣魚鏈接到達受害者設備的確切方法目前尚不清楚。

1.1.png

1.2.png

越南語和泰語的應用商店頁面示例,包含提到應用程序安裝提示的文本,第二張截圖是對泰國政府實體的惡搞

在撰寫本文時,該惡意軟件在VirusTotal上完全未被發現,這表明用於使其隱蔽技術是成功的。類似的惡意軟件,如GigabudRat和Vultur,也利用類似的技術,如鍵盤記錄和屏幕捕獲,在攻擊階段取得了顯著的反規避效果。

MMRat如何被用於銀行欺詐MMRat攻擊流程如下:

1.受害者下載並安裝MMRat;

2.受害者授予MMRat必要的權限;

3.MMRat開始與遠程服務器通信,並發送大量數據,包括設備狀態、個人數據和鍵盤記錄數據。

當目標設備未被使用時,攻擊者可以遠程喚醒設備,解鎖屏幕,並執行銀行欺詐。同時,攻擊者還可以啟動屏幕捕獲,以實現設備屏幕的服務器端可視化。

在最後一步,MMRat自行卸載,從系統中刪除惡意軟件的所有痕跡。

2.png

MMRat攻擊流程

MMRat分析如前所述,MMRat能夠捕獲用戶輸入、屏幕內容並遠程控制其受害者的設備。它在很大程度上依賴於Android輔助功能服務和MediaProjection API來正常工作。

模擬和持久化為了避免被發現,MMRat經常偽裝成官方政府或約會應用程序,然後在啟動時向受害者展示一個網絡釣魚網站。隨後,它註冊一個接收器,該接收器可以接收系統事件,包括檢測系統何時打開和關閉以及重新啟動等。在收到這些事件後,惡意軟件啟動一個1x1大小的像素活動以確保其持久性。

3.png

WebView顯示的虛假登錄網站

與遠程服務器的網絡通信在啟動可訪問性服務時,MMRat與攻擊者控制的服務器建立連接。值得注意的是,MMRat在單個服務器上使用不同的端口來實現不同的功能:

4.png

MMRat在單個服務器上使用的端口

CC協議特別獨特,因為它基於Netty(一種網絡應用程序框架)和前面提到的Protobuf進行自定義,並配有精心設計的消息結構。

對於CC通信,攻擊者使用一個總體結構來表示所有消息類型,並使用“oneof”關鍵字來表示不同的數據類型。研究人員仔細地重構了CC通信中使用的主要Protobuf模式,如下圖所示。

5.1.png

5.2.png

用於CC通信的Protobuf模式

“PackType”是一個枚舉結構,可用於表示CC命令,而“pack”字段包含不同CC命令對應的詳細數據。

下圖顯示了惡意軟件使用的已定義的CC命令及其相應的描述。由於涉及雙向通信,我們將CC命令分為服務器命令和客戶端命令。服務器命令發送給客戶端,客戶端命令發送給服務器。

6.png

MMRat CC命令及其描述

收集設備狀態和個人信息MMRat收集大量的設備狀態和個人數據,其中包括網絡數據、屏幕數據、電池數據、安裝的應用程序和聯繫人列表。

1.網絡數據包括信號強度、網絡類型等信息。

2.屏幕數據包括屏幕是否被鎖定、當前正在使用的應用程序以及當前屏幕上顯示的活動等信息。

3.電池數據提供有關設備電池狀態的信息。

4.聯繫人包括用戶的聯繫人列表。

5.已安裝應用包括設備上安裝的應用。

為了及時收集這些數據,MMRat安排了一個每秒執行一次的計時器任務,同時還使用一個每60秒重置一次的計數器來確定何時執行不同的任務。

7.png

用於根據計數器執行不同任務的計時器任務

MMRat專門針對受害者的聯繫人和已安裝的應用程序列表進行收集。研究人員認為,攻擊者的目標是盜取個人信息,以確保受害者符合攻擊目標的設定。例如,受害者可能有符合特定地理條件的聯繫人,或者安裝了特定的應用程序。然後,這些信息可以用於進一步的惡意活動。

8.png

收集並上傳受害者的聯繫人名單和已安裝應用程序的詳細信息

自動權限審批一旦授予了可訪問性權限,MMRat就可以濫用它來授予自己其他權限並修改設置。例如,在前面的數據收集階段,MMRat可以自動授予自己READ_CONTACTS權限來收集聯繫人數據。

上圖中的代碼片段顯示了MMRat如何自動獲得權限。它通過啟動系統對話框並自動批准傳入的權限請求來實現這一點。自動審批功能是通過在屏幕上找到“ok”或相關關鍵詞,並使用可訪問功能模擬點擊來實現的。這意味著MMRat可以繞過用戶干預,並授予自己執行惡意活動所需的權限。

9.png

請求權限並啟動自動點擊

10.png

關鍵詞,如“ok”和其他類似的單詞和短語

操作和捕獲用戶輸入MMRat濫用可訪問性服務,通過鍵盤記錄捕獲用戶輸入和操作。這些數據可用於獲取受害者的憑證,並記錄受害者的操作,以便稍後在設備上回放。

與其他專注於特定場景的鍵盤記錄惡意軟件不同,例如只在受害者使用銀行應用程序時記錄鍵盤操作,MMRat記錄用戶操作的每個動作,並通過CC通道將它們上傳到服務器。 MMRat背後的攻擊者似乎想要從受害者那裡收集大量的操作日誌,以確定惡意軟件的下一步行動。

11.png

記錄用戶操作並將其上傳到命令與控制服務器

每個日誌都是一個LogInfo結構,通過Protobuf序列化。

12.png

除了傳統的鍵盤記錄外,該惡意軟件還對鎖屏模式特別感興趣。如果檢測到用戶正在解鎖設備,惡意軟件會收集模式值,並通過命令與控制通道上傳到服務器。這使得攻擊者可以訪問受害者的設備,即使它是鎖定的。

13.png

在鎖定屏幕上進行鍵盤登錄以獲取模式值

捕獲屏幕內容MMRat可以捕獲受害者設備的實時屏幕內容,並將內容流程傳輸到遠程服務器。為了捕獲屏幕內容,惡意軟件主要依賴於MediaProjection API來記錄受害者的屏幕。然而,我們還發現惡意軟件使用另一種方法獲取屏幕內容並繞過FLAG_SECURE保護,惡意軟件將其稱為“用戶終端狀態”。

根據觀察,我們認為屏幕內容捕獲功能與遠程控制功能結合使用,因此攻擊者可以在進行銀行欺詐時查看設備的實時狀態。我們發現,惡意軟件不會捕獲憑證,而是會不斷檢查命令,如果在30秒內沒有收到命令,它會停止屏幕內容流程。

14.png

如果沒有收到命令,則停止屏幕內容流程

Android MediaProjection API為了方便地使用MediaProjection API並將視頻數據流式傳輸到遠程服務器,MMRat濫用了一個名為rtmp-rtsp-stream-client-java的開源框架。這使得它可以記錄屏幕並通過實時流媒體協議(RTSP)將實時視頻數據流傳輸到遠程服務器。在接收到MEDIA_STREAM命令後,MMRat可以根據發布的配置記錄兩種類型的數據:屏幕和相機數據。

例如,當記錄屏幕數據時,MMRat啟動一個名為DisplayActivity的活動。該活動通過調用createScreenCaptureIntent請求記錄權限,該操作會觸發系統對話框彈出窗口以授予權限。如上所述,系統對話框是通過自動點擊自動批准的。

15.png

請求權限和錄屏

一旦錄製請求獲得批准,MMRat就開始錄製屏幕,並通過調用開源框架存儲庫提供的API startStream將數據流式傳輸到CC服務器。

16.png

Strat記錄和數據流

用戶終端狀態捕獲屏幕內容的所謂“用戶終端狀態”方法與使用MediaProjection API的方法大不相同。顧名思義,MMRat並不將錄屏為視頻。相反,它濫用可訪問服務,每秒遞歸地轉儲窗口中的所有子節點,並通過CC通道上傳轉儲的數據。因此,結果只包含文本信息而沒有圖形用戶界面,因此類似於“終端”。

17.png

轉儲所有窗口並遍歷根節點以遞歸方式獲取所有子節點

儘管該方法有些粗糙,並且需要攻擊者在服務器端進行額外的工作來重建數據,但它在收集遠程檢查和控制所需的信息(例如,用於點擊和輸入的節點信息)方面非常有效。由於這種方法不依賴於MediaProjection API,它可以繞過FLAG_SECURE的保護,FLAG_SECURE是一個可以添加到窗口參數以防止截屏和錄屏的標誌。

此外,使用Protobuf和基於Netty的自定義協議增強了性能。這在及時傳輸大量屏幕數據時特別有用,為攻擊者提供類似視頻流的效果。

遠程控制MMRat惡意軟件濫用無障礙服務來遠程控制受害者的設備,執行諸如手勢、解鎖屏幕和輸入文本等操作。這可以被威脅行為者用來進行銀行欺詐,再加上被盜的憑據。

18.png

執行動作

正如“MMRat如何執行銀行欺詐”一節所述,研究人員認為,即使在執行其遠程訪問例程之前,MMRat也會執行逃避流程:

1.喚醒:惡意軟件利用可訪問性服務來模擬屏幕上的雙擊來喚醒設備。

2.解鎖屏幕:惡意軟件使用之前竊取的解鎖模式解鎖屏幕。

19.png

喚醒並解鎖屏幕

最後,MMRat可以在受害者不積極使用手機時遠程控制設備。

隱藏痕跡MMRat惡意軟件具有在接收到CC命令UNINSTALL_APP時將其自身刪除的能力。這種行為通常發生在銀行欺詐實施之後,使追踪其活動變得更加困難。

20.png

自動從受害者的設備中自我刪除

總結MMRat是一個強大的Android銀行木馬,對手機用戶構成了相當大的威脅,特別是在東南亞。它的關鍵功能,包括鍵盤記錄、錄屏和遠程控制訪問,使它能夠有效地執行銀行欺詐。

緩解建議1.只從官方商店下載應用程序,MMRat通常是從冒充官方應用商店的釣魚網站下載的。

2.始終使用可靠的平台,如Google Play Store或Apple App Store。

3.定期更新設備軟件。更新通常包括防範MMRat等新安全功能。

4.在授予可訪問性權限時要謹慎。 MMRat利用Android的無障礙服務來進行惡意活動,始終仔細檢查應用程序請求的權限。

5.在設備上安裝信譽良好的安全解決方案,這有助於提前預防。

6.對你的個人和銀行信息保持警惕,MMRat的目標是實施銀行欺詐,所以要小心你在網上分享的信息和你提供給應用程序的數據。