事情的起源
這一切都始于一個垃圾郵件,它帶有著一個Android應用程序附件。垃圾郵件模糊地聲稱,該附件是一個名為SilverBox 尋找匿名性交朋友的約會應用程序。

垃圾郵件示例
這與我們平時在windows上接受到的惡意郵件和附件所不同,惡意郵件附帶一個apk(Android Package Kit)文件是非常不尋常的,值得耐人尋味。我們的好奇心得到了激發并決定潛入并分析它。
初步分析
通過使用Apktool對APK文件進行解壓縮和解碼來開始分析,我們馬上注意到代碼被進行了嚴重的混淆。

DEX文件嚴重混淆
然后我們檢查根目錄中的AndroidManifest.xml文件。AndroidManifest.xml 是每個android程序中必須的文件,它位于整個項目的根目錄。我們每天都在使用這個文件,往里面配置程序運行所必要的組件,權限,以及一些相關信息。清單文件顯示看似隨機命名的應用程序原始軟件包名稱。

應用程序的包名稱
該應用程序的目標SDK版本代碼是Android Marshmallow及更高版本,如上圖所示。這字段platformBuildVersionCode中指示我們看到這個應用程序需要的Android權限列表

應用程序的Android權限
其中的大多數權限不僅讓人發出疑問包括權限如:WRITE_SMS,READ_SMS,RECEIVE_SMS。CALL_PHONE,CHANGE_NETWORK_STATE。我們已經在此表中編譯了此應用程序需要的所有Android權限:

該軟件請求的權限
我們繼續使用Android Studio的AVD(Android虛擬設備)在模擬器上安裝該應用程序。正如你所看到的,應用程序需要被用戶激活才能使用它。

需要被用戶激活
在這個階段,我們希望更好地理解代碼,但我們發現很難繞過混淆。我們嘗試使用IDAPro遠程調試應用程序,這很痛苦和乏味。我們做的另一件事是讓惡意軟件運行,然后轉儲設備的內存。這幫助我們從應用程序中找到惡意軟件配置和字符串。雖然這很有幫助,但仍然不夠,我們需要反編譯的源代碼才能充分了解此惡意軟件的工作原理。
在設備中,我們使用Android調試橋(ADB)工具搜索更多有趣的數據,并找到應用程序的VDEX和ODEX文件。

。VDEX文件包含APK的未壓縮的DEX(Dalvic可執行)代碼,而ODEX包含APK中的方法的前期編譯代碼。 所以,我們下一步就是使用vDexExtractor工具反編譯VDEX文件。

vDexExtractor工具命令行將.vdex文件轉換為.dex文件
在反編譯并將.VDEX轉換為.DEX文件后,我們使用JADX工具將.DEX文件轉換為.JAR文件。然后我們可以使用IntelliJ / Android Studio或任何可用的Java反編譯器等工具反編譯.JAR文件。

Android惡意軟件被反編譯。在這個屏幕截圖中顯示的是Bot的命令,獲得一些Java代碼后,下一步是詳細的靜態分析。
惡意軟件的主要架構
惡意軟件的主要體系結構分為以下主要類別:
數據庫訪問
存儲在SQLite中的數據。命令也存儲在這個數據庫中,并且主要通過這個層來處理。

SQLlite數據庫由惡意軟件創建以存儲命令,短信列表和模板
電話相關
設置默認電話軟件包,實用功能(獲取設備ID,SIM卡序列號,行號等)

設置默認的電話包
服務響應處理程序
響應回復并可能向命令和控制(C&C)服務器發起新請求。一些響應處理程序是:GetTemplateHandlerPostCallListHandlerPostContactListHandlerServerCommandHandler – 主要通過寫入數據庫來控制惡意軟件RegisterDeviceHandlerSendSmsListResponseHandlerGetSmsListResponseHandler
相關的網絡連接
該層將設備注冊為bot,確保連接在線,發布通話列表,短信列表等等,其回復將由Service ResponseHandlers處理
服務
處理被攔截的意圖。其中一些服務處理惡意軟件的生命周期并確保惡意軟件始終運行。這些服務的一些例子是:WatchDogService:設置定時器以確保惡意軟件定期運行。ControlService:注冊設備機器人,并啟動ReadCommandThread:等待C&C服務器的指示確保設備已連接到C&C服務器BootReceiver:確保所有功能在計算機重新啟動時運行。該啟動接收器確保看門狗服務每10秒或30秒運行一次,具體取決于操作系統的版本。
用戶界面
向用戶請求權限,并將從C&C服務器接收的一些模板覆蓋在其他應用程序的頂部,以進一步欺騙用戶,包括啟用設備管理員訪問權限。
惡意軟件主要特點
惡意軟件將自己設置為默認電話提供商,主要用于攔截SMS消息。C&C服務器可以控制要攔截的電話號碼列表。來自這些號碼的消息可能對用戶隱藏。截獲的消息也被發送到C&C服務器。這可以用于攔截當前大多數手機驗證的短信驗證碼,包括網上銀行。
設備管理員訪問
惡意軟件可以完全訪問設備,包括完全清除設備中的所有數據。該惡意軟件具有用于啟用設備管理員訪問的UI,且不允許您在啟用后禁用它。
僵尸機和C&C通信
被攻擊主要通過使用HTTP POST請求來傳遞特定的URL。如果不可用,它將嘗試通過Twitter消息獲得另一項服務。HTTP POST主體不使用花哨的加密,只用Base64編碼。這個URI的格式是:http:// controlserver / /支持以下消息類型:stbi – 注冊設備及其編號,iccid,模型,imei,os和lang。sy – 從服務器傳遞它的bot_id,imei,type,以及是否啟用設備管理的命令。以下是攻擊者可能執行的命令列表:startSmsInterceptionstopSmsInterceptionsendSmssetDefaultSmsresetDefaultSmsgetSmsListgetCallListgetContactListsetAdminlaunchAppblocksendUssdnotifysban – 從服務器獲取模板,傳遞安裝在系統中的應用程序列表。通過這種方式,機器人可以裁剪哪個模板覆蓋特定的應用程序。gt – 從服務器獲取模板ssl – 返回exfiltrated sms列表scol – 返回exfiltrated聯系人列表scal – 返回exfiltrated通話清單ping – ping 測試ucs – 返回執行的命令std – ?ss – ?
在我們分析的時候,已經沒有存活的C&C服務器正在運行了,所以我們無法觀察惡意軟件和C&C服務器之間的任何流量。由于一些問題,我們無法完成某些命令的逆向工程,包括沒有觀察到流量,嚴重混淆的代碼,但是當我們發送一個命令時,也會出現惡意軟件的多次崩潰。我們覺得我們已經涵蓋了惡意軟件的大部分重要部分但是你覺得到里就完了嗎?

惡意軟件的在資源配置的存儲。這里是C&C服務器的存儲位置
問
那么如果你沒有活C&C服務器進行測試,你會怎么做?
答
為什么不自己建造一個!
一旦我們對C&C協議進行了反向設計,我們就擁有一個C&C進行測試。C&C服務器在惡意軟件中被硬編碼,但很容易使用iptables重定向,所以所有的機器人通信都被發送到我們的C&C服務器。
iptables -t nat -A OUTPUT -p tcp --dport -j DNAT --to-destination :

使用adb工具,我們可以使用iptables將流量出口重定向到我們的控制服務器

這是我們編寫的控制面板的屏幕截圖。它使我們能夠控制僵尸機,采用了Django web框架編寫的,可以在github上找到我們的源代碼:https://github.com/bizdak/silverboxcc
整個控制過程如下
如果僵尸機尚未在C2服務器上注冊,請注冊stbi命令并獲取新的bot-id。

僵尸機的初始POST數據包含設備信息,IMEI,手機型號等
使用sban命令獲取最終顯示給用戶的模板列表。

解碼的HTTP POST正文,捕獲從中招手機上發送應用程序列表
循環并等待來自服務器的命令并發送它。

每10秒鐘獲取新命令的機器人信標。
根據要執行的命令設置一堆標志和參數,通過數據庫完成調度。
另一項服務然后輪詢數據庫并執行相應的命令。
諸如發送聯系人列表,短信和呼叫列表之類的操作分別使用scol,ssl,scal命令完成。

僵尸機向控制服務器返回SMS列表時捕獲的解碼數據

解碼僵尸機的聯系人列表的數據
7.通知服務器該命令已經使用ucs執行

額外的發現
我們從反編譯的源代碼中搜索了一些字符串,在地下市場中發現這個惡意軟件被稱為RED ALERT v2.0 BOT,并且在7天的測試使用情況下租用至少200美元,一個月500美元,2個月最高999美元。
這個俄文廣告翻譯成中文如下:你好!我們向市場推出一款新產品紅色警報2.0沒有類似產品所有小細節都被考慮此外,我們開發新功能
功能:
短信發送
短信攔截
APK啟動
HTML注入功能:
APK大小95kb
短信截取所有版本更高的4.4+和6+
管理權限提供85%的機器人
無后門
耐久性
獨特的功能:如果您租用,我們將提供你想要數量的僵尸機。注入開發不需要付款。
另外,我們每2周更新一次軟件,并增加新的功能。我們的客戶免費更新租金價格500美元每月我們歡迎任何形式的贈款
這個惡意軟件可以針對攔截來自許多個不同國家的銀行,如下所列:澳大利亞-ANZ Bank-Bankwest-CUA-ME Bank-Newcastle Permanent-Suncorp Bank-Commonwealth-CitiBank-ING Bank-NAB-St.George-WestPacAUSTRIA-Raiffeisen-Volksbank奧地利-Raiffeisen-Volksbank加拿大-Bank of Montreal-CIBC-Desjardins-TD Bank-Royal Bank of Canada-Tangerine捷克-Air Bank-Equa Bank-mBank CZ波蘭-AliorBank-Alior Business Pro-Alior Mobile-BZWK24-BZWK24 Biznes-BZWK24 Mobile-Citi handlowy (花旗銀行)-EuroBank-Getin Bank-ING-iPKO-BGZ BNP Paribas-PekaoBank-PekaoBiznes24-Raiffeisen Poland-mBank丹麥-Danske Bank-Nordea-Jyske bank-MobilePay-Sydbank-Nykredit德國-Post Bank-Commerzbank-ComDirect-Sparkasse-DKB Bank-Sparda-Bank法國-Crédit Mutuel-Bankque palatine-Banque Populaire-Ma banque-Lapost bank-Mes Comptes-Banque-Mes Comptes BNP Paribas立陶宛-Swedbank lt印度-Axis Mobile-Bank of Baroda-iMobile by ICICI Bank-India Bank-SBI Anywhere Personal-HDFC Bank MobileBanking-Union Bank Mobile Banking-IDBI Bank GO Mobile-Kotak Bank-YesBank意大利-Intesa Sanpaolo-UBI愛爾蘭-Bank of Ireland-Ulster Bank-Permanent tsb日本-Aeon Bank-MUFG Bank-Orico Bank-Rakuten CardSPAIN西班牙-CaixaBank-BBVA-Bankia-Cajamar-Caixer automatic Ibercaja-Banco Sabadell-Satander Bank-Unicaja Banco羅馬尼亞-Central Transilvania-BCR Bank-Raiffeisen Bank Romania瑞典-Swedbank土耳其-AkBank-DenizBank-Finansbank-Banking banks-Turkiye Bankasi-HalkBank-VakifBank-YapiKredi-Ziraat bank英國-Metro Bank-Natwest-Barclays-Lloyds-HALIFAX美國-Bank Of America-ChaseBank-Suntrust-Capital One-WellsFargo新西蘭-Kiwi Bank
它還針對多種支付服務,零售應用和社交媒體。這是我們從地下論壇獲得的清單。支付系統-PayPal-Airbnb-Coinbase-Poker Stars-Neteller-Skrill-Unocoin Bitcoin Wallet IndiaCC + VBV支付掠奪-Amazon-eBay-LINE-GetTaxi-Snapchat-Viber-Instagram-Facebook-Skype-UBER-WeChat-WhatsApp
總結
我們對這款Android惡意軟件進行了逆向工程和溯源分析,并且學到了很多東西。有趣的是,看到APK惡意軟件通過電子郵件被垃圾郵件發送,但我們想知道這種策略對于犯罪者來說會有多大成效。惡意軟件需要用戶確定才能安裝,并且Android會彈出大量關于權限的警告。另外,Google Play Protect正在檢測這種威脅,因此為了獲得安裝在Android上的惡意軟件,我們還必須禁用Play Protect。
目前我們還沒有看到更多此類的垃圾郵件樣本,也許該惡意apk的電子郵件攻擊不是那么成功。
|