Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    863543294

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.

近年來Android 惡意軟件的數量有所增加,尤其是Android 銀行惡意軟件。其中一個系列是一款名為SharkBot 的Android 銀行惡意軟件。在我們的研究中,我們注意到該惡意軟件是通過Google Play 官方商店分發的。

我們在Google Play 商店中發現了很多的SharkBot droppers,C2 服務器也用於所有其他的dropper。發現後,我們立即向Google 報告了這一情況。有關新發現的SharkBot dropper 應用程序的Google Play 商店URL,請參閱下面的IoC 部分。

0x01 總體概括SharkBot 是Cleafy 團隊於2021 年10 月末發現的一種Android 銀行惡意軟件。在撰寫本文時,SharkBot 惡意軟件與Flubot、Cerberus/Alien、Anatsa/Teabot、Oscorp 等其他Android 銀行惡意軟件沒有任何關係。

https://www.cleafy.com/cleafy-labs/sharkbot-a-new-generation-of-android-trojan-is-targeting-banks-in-europeCleafy 文章指出,SharkBot 的主要目標是通過自動轉賬系統(ATS) 從從受感染的設備發起資金轉賬。據我們觀察,這種技術是一種高級攻擊技術,在Android 惡意軟件中並不經常使用。它使攻擊者能夠在合法的移動銀行應用程序中自動填寫字段並啟動匯款,而其他Android 銀行惡意軟件(如Anatsa/Teabot 或Oscorp)需要現場操作員授權匯款。這種技術還允許攻擊者以最小的努力擴大他們的成果。

ATS 功能允許惡意軟件接收要模擬的事件列表,並將模擬它們以進行匯款。由於此功能可用於模擬觸摸、點擊和按鈕按下,因此它不僅可用於自動轉賬,還可用於安裝其他惡意應用程序或組件。這就是我們在Google Play 商店中找到的SharkBot 版本的情況,它似乎是SharkBot 的簡化版本,具有最低要求的功能,例如ATS,可以在初始安裝後的某個時間安裝惡意軟件的完整版本。

由於是通過Google Play 商店規避防病毒軟件進行分發的,受感染設備必須下載安裝才能傳播惡意應用程序。 SharkBot 通過利用“Direct Reply”的Android 功能來實現這一點。此功能用於自動發送回复通知以及下載虛假防病毒應用程序的消息。這種利用直接回复功能的傳播策略最近出現在另一個名為Flubot的銀行惡意軟件中,該惡意軟件由ThreatFabric 發現。

與其他家族不同的是,SharkBot 很可能使用ATS 還繞過多因素身份驗證機制,包括生物特徵等行為檢測,同時它還包括更多經典功能來竊取用戶的憑據。

1.憑證竊取功能SharkBot 實施了四種主要策略來竊取Android 系統中的銀行憑證:

注入(覆蓋攻擊):一旦檢測到官方銀行應用程序已打開,SharkBot 就可以通過顯示帶有虛假登錄網站(網絡釣魚)的WebView 來竊取憑據。

鍵盤記錄: Sharkbot可以通過記錄可訪問性事件(與文本字段更改和單擊按鈕相關)並將這些日誌發送到命令和控制服務器(C2)來竊取憑據。

短信攔截: Sharkbot 具有攔截/隱藏短信的能力。

遠程控制/ATS:Sharkbot 能夠獲得對Android 設備的完全遠程控制(通過輔助功能服務)。

對於大多數這些功能,SharkBot 需要受害者啟用Accessibility Permissions Services。這些權限允許Android 銀行惡意軟件攔截用戶與用戶界面交互產生的所有可訪問性事件,包括按鈕按下、觸摸、TextField 更改(對鍵盤記錄功能有用)等。攔截的可訪問性事件還允許檢測前台應用程序,因此銀行惡意軟件也使用這些權限來檢測目標應用程序何時打開,以進行網絡注入以竊取用戶的憑據。

2.軟件分發Sharkbot 通過Google Play 商店進行分發,但也使用了Android 惡意軟件中的新技術:“Direct reply”通知功能。借助此功能,C2 可以向惡意軟件發送命令消息,該命令消息將用於Direct reply受感染設備消息。 Flubot最近引入了此功能,以使用受感染的設備分發惡意軟件,但似乎SharkBot攻擊者在最近的版本中也加入了此功能。

在下圖中,我們可以看到SharkBot 用於攔截新通知的代碼,並自動將收到的來自C2 的消息進行回复。

img

在下圖中,我們可以看到受感染的測試設備收到的“autoReply”命令,其中包含一個Bit.ly 短鏈接,該鏈接會重定向到Google Play 商店。

img

我們檢測到SharkBot於去年2 月28 日在Google Play 上發布,最後一次更新是在今年2 月10 日,該應用程序已經發布了一段時間。這個簡化版本使用相似協議與C2 通信,RC4 加密Payload和公共RSA 密鑰用於加密RC4 密鑰,因此C2 服務器可以使用相同的密鑰解密請求並加密響應。這個SharkBot 版本,我們可以稱之為SharkBotDropper,主要用於從C2 服務器下載一個全功能的SharkBot,它將使用自動傳輸系統(ATS) 安裝(模擬點擊和触摸,具有Accessibility 權限)。

這個惡意dropper 在Google Play 商店中作為假的防病毒軟件發布,它實際上有兩個主要功能和從C2 接收命令:

使用“Direct reply”功能傳播惡意軟件:它可以接收帶有消息的“Direct reply”命令,該消息應用於Direct reply受感染設備中收到的任何通知。我們研究發現,它一直在通過Bit.ly URL 短鏈接傳播相同的Google Play dropper。

img

Dropper+ATS:ATS 功能用於安裝從C2 獲取的下載的SharkBot 示例。在下圖中,我們可以看到從C2 接收到的解密響應請求,其中dropper 接收命令“ b ”以從提供的URL 下載完整的SharkBot 樣本,並模擬ATS 事件以安裝惡意軟件。

img

使用此命令,從Google Play 商店安裝的應用程序能夠為其下載的全功能SharkBot樣本安裝和啟用輔助功能權限。它將用於最終執行ATS 欺騙,以從受害者那裡竊取金錢和憑證。

在Google Play 商店中發布的假殺毒應用SharkBotDropper 的下載量已超過1,000 次,還有一些假評論,如“效果很好”,還有一些受害者的評論,他們意識到這個應用做了一些奇怪的事情。

img

0x02 技術分析1.C2協議用於與C2 服務器通信的協議是基於HTTP 的協議。 HTTP 請求是明文發出的,因為沒有使用HTTPs。即便如此,包含發送和接收信息的實際Payload是使用RC4 加密的。用於加密信息的RC4 密鑰是為每個請求隨機生成的,並使用每個樣本中硬編碼的RSA 公鑰進行加密。這樣,C2 可以解密加密的密鑰( HTTP POST 請求中的rkey字段)並最終解密發送的Payload( HTTP POST 請求中的rdata字段)。

img

如果看一下解密後的Payload,可以看到SharkBot 是如何簡單地使用JSON 發送有關受感染設備的不同信息並從C2 接收要執行的命令。在下圖中,我們可以看到從受感染設備發送的解密後的RC4 Payload。

img

請求中發送的兩個重要字段是:

ownerID

botnetID

這些參數是硬編碼的,並且在分析的樣本中具有相同的值。我們猜測這些值將來可用於識別此惡意軟件的不同買家,根據我們的調查,該惡意軟件尚未在地下論壇上出售。

2.域生成算法SharkBot 包括一個或兩個註冊的Domain/URL,但如果硬編碼的C2 服務器被關閉,它還包括一個域生成算法(DGA),以便將來能夠與新的C2 服務器通信。

img

DGA 使用當前日期和特定的後綴字符串('pojBI9LHGFdfgegjjsJ99hvVGHVOjhksdf') 最終將其編碼為base64 並獲取前19 個字符。然後,它附加不同的TLD 以生成最終的候選域。

img

使用的日期元素是:

一年中的一周(代碼中的v1.get(3))

年份(代碼中的v1.get(1))

它使用'+'運算符,但由於年份的星期和年份是整數,因此它們是相加的,因此例如:對於2022年的第二週,生成的要進行base64編碼的字符串為:2 + 2022 + “pojBI9LHGFdfgegjjsJ99hvVGHVOjhksdf”=2024 + “pojBI9LHGFdfgegjjsJ99hvVGHVOjhksdf”=“2024pojBI9LHGFdfgegjjsJ99hvVGHVOjhksdf”。

在以前版本的SharkBot(從2021 年11 月至12 月)中,它僅使用一年中的當前一周來生成域。將年份加入到生成算法中似乎是為了更好地支持2022 年的更新。

3.木馬命令SharkBot 可以從C2 服務器接收不同的命令,以便在受感染的設備中執行不同的操作,例如發送短信、下載文件、注入等。它可以接收和執行的命令列表如下:

smsSend : 用於由TA 向指定的電話號碼發送短信

updateLib:用於請求惡意軟件從指定的URL 下載新的JAR 文件,其中應包含惡意軟件的更新版本

updateSQL:用於發送要在SQLite 數據庫中執行的SQL 查詢,Sharkbot 使用它來保存惡意軟件的注入等配置

stopAll:用於重置/停止ATS 功能,停止正在進行的自動化功能。

updateConfig:用於向惡意軟件發送更新的配置。

uninstallApp:用於從受感染設備上卸載指定的應用程序

changeSmsAdmin:用於更改短信管理器應用

getDoze : 用於檢查是否啟用忽略電池優化的權限,如果未啟用,則顯示Android 設置以禁用它們

sendInject:用於顯示覆蓋以竊取用戶的憑據

getNotify:如果沒有為惡意軟件啟用通知監聽器設置,則進行顯示。啟用此權限後,Sharkbot 將能夠攔截通知並將其發送到C2

APP_STOP_VIEW:用於關閉指定的應用程序,因此每次用戶嘗試打開該應用程序時,Accessibility Service 都會關閉它

downloadFile : 用於從指定的URL 下載一個文件

updateTimeKnock:用於更新Robot的最後一次請求時間戳

localATS:用於啟用ATS 攻擊。它包括一個JSON 數組,其中包含它應該模擬以執行ATS(按鈕單擊等)的不同事件/動作

img

4.ATS技術SharkBot 的一個獨特之處在於它使用了一種稱為自動傳輸系統(ATS) 的技術。 ATS 是針對Android 的銀行惡意軟件使用的一種相對較新的技術。

總而言之,ATS 與webinject 類似,只是用於不同的目的。它使用憑證在端點上自動啟動電子傳輸,這樣就不需要登錄和繞過2fa 或其他反欺詐措施,並不會收集憑證用於使擴展成果。然而,它是非常個性化的,需要對每個銀行、金額、貨幣等進行相當多的維護。這可能是ATS 在(Android)銀行惡意軟件中並不流行的原因之一。

一旦登錄到他們的銀行應用程序,惡意軟件就會收到一系列事件(點擊/觸摸、按鈕按下等)以特定順序進行模擬。這些事件用於模擬受害者與銀行應用程序的交互以進行匯款,就好像用戶自己進行匯款一樣。

這樣,通過模擬不同的事件從受害者的設備進行匯款,這使得欺詐檢測系統更難以檢測欺詐行為。

5.IOC樣本哈希:

a56dacc093823dc1d266d68ddfba04b2265e613dcc4b69f350873b485b9e1f1c (Google Play SharkBotDropper)

9701bef2231ecd20d52f8fd2defa4374bffc35a721e4be4519bda8f5f353e27a (Dropped SharkBot v1.64.1)

20e8688726e843e9119b33be88ef642cb646f1163dce4109b8b8a2c792b5f9fc (Google play SharkBot dropper)

187b9f5de09d82d2afbad9e139600617685095c26c4304aaf67a440338e0a9b6 (Google play SharkBot dropper)

e5b96e80935ca83bbe895f6239eabca1337dc575a066bb6ae2b56faacd29dd (Google play SharkBot dropper)

SharkBotDropper C2:

hxxp://statscodicefiscale[.]xyz/stats/

用於分發惡意軟件的URL:

hxxps://bit[.]ly/34ArUxI

Google Play 商店網址:

https://play.google.com/store/apps/details?id=com.abbondioendrizzi.antivirus.supercleaner

https://play.google.com/store/apps/details?id=com.abbondioendrizzi.tools.supercleaner

https://play.google.com/store/apps/details?id=com.pagnotto28.sellsourcecode.alpha

https://play.google.com/store/apps/details?id=com.pagnotto28.sellsourcecode.supercleaner

SharkBot 的C2 服務器/域名:

n3bvakjjouxir0zkzmd[.]xyz (185.219.221.99)

mjayoxbvakjjouxir0z[.]xyz (185.219.221.99)

SharkBot 中用於加密rc4密鑰的RSA 公鑰:

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2R7nRj0JMouviqMisFYt0F2QnScoofoR7svCcjrQcTUe7tKKweDnSetdz1A+PLNtk7wKJk+SE3tcVB7KQS/WrdsEaE9CBVJ5YmDpqGaLK9qZhAprWuKdnFU8jZ8KjNh8fXyt8UlcO9ABgiGbuyuzXgyQ VbzFfOfEqccSNlIBY3s+LtKkwb2k5GI938X/4SCX3v0r2CKlVU5ZLYYuOUzDLNl6KSToZIx5VSAB3VYp1xYurRLRPb2ncwmunb9sJUTnlwypmBCKcwTxhsFVAEvpz75opuMgv8ba9Hs0Q21PChxu98jNPsgIwUn3xmsMUl0rNgBC3MaPs8nSgcT4oUXaVwIDAQAB在Google Play SharkBotDropper 中用於加密rc4密鑰的RSA 公鑰:

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu9qo1QgM8FH7oAkCLkNO5XfQBUdl+pI4u2tvyFiZZ6hMZ07QnlYazgRmWcC5j5H2iV+74gQ9+1cgjnVSszGbIwVJOQAEZGRpSFT7BhAhA4+PTjH6CCkiyZTk7zURvgBCrXz6+B1XH0OcD4YUYs4OGj8P d2KY6zVocmvcczkwiU1LEDXo3PxPbwOTpgJL+ySWUgnKcZIBffTiKZkry0xR8vD/d7dVHmZnhJS56UNefegm4aokHPmvzD9p9n3ez1ydzfLJARb5vg0gHcFZMjf6MhuAeihFMUfLLtddgo00Zs4wFay2mPYrpn2x2pYineZEzSvLXbnxuUnkFqNmMV4UJwIDAQAB