移动端C#病毒“东山再起”,利用知名应用通信实现远控隐私窃取
近日,安天移動安全聯合獵豹移動安全實驗室又捕獲一例類似的病毒,該病毒使用MonoDroid框架進行開發(MoniDroid是以C#語言和部分.Net基類庫為核心,使用mono虛擬機為Android平臺開發應用的代碼框架),MonoDroid框架開發的特點是開發者編寫的邏輯代碼都會最終編譯在dll文件中,而不是常規的dex文件中,因而常規的反病毒檢測手段對這類應用一般都會失效。此外,該病毒使用了知名應用Telegram的Bot進行通信,相較于傳統的C&C域名通信具有極強的隱蔽性。安天移動安全團隊聯合獵豹移動安全實驗室對其進行了深入分析并發布技術報告,全文如下。
一、樣本信息
二、靜態分析
首先從AM文件中,可以看到該病毒申請了一系列與竊密行為相關的權限:
此外,在AM文件中還看到其注冊了各種receiver用來監聽系統消息。
深入查看一個用來接收當有電話打入時的receiver,在該類中我們并未發現一些實際功能代碼。在onReceiver函數中,其直接將Context和Intent轉交給了一個native方法n_onReceive,然而尷尬的是在這個類中,我們并沒有看到有loadLibrary的so文件,而這其實利用的是Mono框架實現的。
在dex文件中其他的幾個類也都存在類似的情況:
MainActivity也是如此:
從以上靜態分析中,可以了解到該病毒dex文件中基本沒有實質性的代碼,這里的原因主要來源于MonoDroid框架允許開發者在.Net平臺使用C#進行開發,而這意味著我們基本不可能在dex文件中有所得。
三、惡意行為分析
該病毒的核心惡意模塊為google.tools.dll文件,通過對該文件進行反編譯后獲得該病毒的核心惡意行為。該病毒的整體攻擊流程如下圖所示:
Step1:自我隱藏并初始化Telegram Bot
當用戶安裝應用后,該病毒首先通過MainActivity的onResume()方法,彈出虛假提示框告知用戶該程序無法運行并自動卸載,卸載完成后自動隱藏圖標,為后續的惡意行為不被發現做好鋪墊。而這也是當前常見的惡意代碼自我隱藏的主要方式。 隱藏完畢后,該病毒啟動下述服務,首先進行了語言識別,針對非英文語言環境會默認顯示波斯語。
mainservice中包含部分組件設置、綁定以及Telegram Bot API(后文簡稱TBA)模塊的初始化相關的行為:
值得一提的是,該病毒設置了定時器對相關核心惡意服務是否存活進行監控,如果掛掉了,就重啟之。
此外,該病毒還另外注冊了兩個Telegram的消息回調函數。在這里再次暴露了其通過利用知名應用Telegram提供的框架實現某些重要功能的意圖:
Step2:遠程控制設備
在此之前我們也曾發現過一些使用TBA進行通信的樣本,本次發掘的樣本基本采用純TBA進行通信,該病毒的遠控的行為設計的十分完備,關鍵操作(文件增刪、關鍵服務的啟閉、關機重啟被控端、卸載自身等)都需要主控端二次確認操作,分發起操作和確定操作兩步。在文件管理功能方面基本上做到了PC端的遠控的水平,集合了文件預覽、上傳、下載、移動、重命名等諸多功能。對于被控端的短信,來電等內容,在主控端可以做到“消息實時推送“級別的接收響應,另外這些功能都可以通過主控端隨時進行開閉操作。同時主控端可以控制被控端設備的關機、重啟(該功能需要被控端是已經被root的設備,該病毒自身不擁有提權功能),主控端可以隨時發起被控端卸載該病毒、實時開啟攝像頭拍照、實時屏幕截圖(需root)、獲取實時地理位置信息。
總的來說這款病毒在軟控功能上設計的十分完善,主控端和被控端的可以進行靈活的交互,這點大大區別于其他普通的Android病毒,這在一定程度上得益于TBA提供的各種完善的網絡傳輸方法。
android.os.CTRLCB類的CTRLMESS()方法中包含了所有控制指令,整理如下。基本上所有上述指令中具體相關功能都在android.os.DoWork中有所實現。
Step3:Root模塊檢測
由于遠控行為中包括的遠程開機、重啟、屏幕截圖等功能的實現需要設備的Root權限,因此在相關功能執行前,該病毒會先進行Root模塊的檢測,確認設備是否已經Root。如果已Root,則通過申請Root權限進行相關惡意行為的實施:
Step4:設置定時操作
該病毒還特別創建了定時操作線程,按照規定的時間間隔進行惡意行為的執行,定時操作分別為:每小時執行對所竊取的隱私信息存放的緩存空間的釋放工作;每五秒執行一次,檢查采集地理位置的Service是否還在工作:
而上述定時執行的線程還負責對獲取到的隱私信息的定時上傳:
Step5:監控亮屏行為激活守護主惡意服務
亮屏動作的捕獲主要是為了實現對主惡意服務mainservice的存活守護,結合上述的定時執行線程以及定時服務探活和激活的邏輯,都足以看出該病毒開發者對保護自我服務的“用心”:
Step6:其他隱私信息竊取
(1)竊取手機圖片
通過onStartComand方法,啟動一個服務去定時獲取手機存儲中的所有圖片類型的文件:
該病毒專門對此服務設置了定時器去進行“服務守護”,如果服務掛掉,重啟之。
**(2)監聽短信模塊 **
從+98編碼可以看出,該病毒的活動范圍為某中東地區。此外,該病毒還會監聽短信發送行為:
**(3)竊取通話錄音記錄 **
**(4)利用相機拍照 **
**(5)獲取通訊錄 **
**(6)竊取來電記錄 **
監視網絡變化,上傳通話記錄,守護惡意服務:
**(7)獲取地理位置 **
四、事件分析
從我們捕獲到的樣本上來看,該病毒基本上都是偽造的工具類應用,包名google.tools、System.OS也非常普遍,我們很難從這些地方發掘出可能的攻擊對象和目標群體屬性。 但是根據在應用中出現的波斯語設置以及在短信監聽中出現的+98國際區號的線索,我們推測出,該病毒的活躍地區應該是某中東國家。此外,在分析的過程中我們發現了一個疑似主控端Telegram的賬號主頁:https://telegram.me/Qhack。該主頁賬號指向的是Telegram的某位用戶賬號“Qhack”。我們在Telegram上搜索這個用戶,結果如下:
從第二張圖片中,我們可以發現這個賬號在1小時前還在線,但是個人信息中并沒有什么內容,因此推測這可能只是一個用來作為主控端的僵尸賬號。 通過樣本關聯,我們在這批樣本的其中一個簽名下關聯到一種不同的樣本,但是都是使用MonoDroid框架編寫,類名、方法名命名極為相似,都有偽裝卸載后臺隱藏圖標啟動惡意服務的行為,但是編寫較為粗糙,雖然也進行了部分隱私信息的竊取,但并未如前面所分析的使用Telegram進行通信,而只是簡單的使用http的方式進行通信,通信的IP為148.251.203.5、148.251.32.113,其中一個樣本名為“電報技巧”(Telegram的譯名就叫“電報”),同樣也是活躍在阿拉伯語的使用地區,推測這類樣本可能是早期的產物。
一代樣本:
二代樣本:
從技術手法上來看,使用C#開發Android應用不多見,推測攻擊者可能是精于Windows開發的技術人員,當然也不排除是故意為了混淆視聽或是規避殺軟檢測而為之。從代碼結構上來看,其模塊劃分比較明確,組織結構安排的也較為合理,同時其通信過程完全使用TBA,與TBA配合的遠控行為邏輯和功能設計也頗有特色,從這些角度看來該攻擊組織具備相當不錯的技術水平。
五、總結
該病毒采用C#編寫,通過將邏輯代碼編譯在dll文件中而不是常規的dex文件中來規避常規的惡意代碼檢測機制。此外,該病毒使用了知名應用Telegram的Bot進行通信,進一步增強了其隱蔽性。這說明惡意開發者有一定的反查殺意識和能力。在此基礎上,該病毒建立起了一套完整的遠程控制體系,涵蓋了各種遠程控制惡意行為,包括對各種設備硬件信息采集、文件管理(文件和文件夾預覽、移動、刪除、重命名、上傳、下載)、短信實時監控、通話記錄實時監控,以及截屏、通話錄音、圖片、賬戶、和地理位置實時獲取、遠控攝像頭拍照等等,極大程度上侵犯了用戶的個人隱私信息安全,具有非常強的危害性。
對此,安天移動安全聯合獵豹移動安全實驗室已實現對該病毒的檢測查殺,建議用戶安裝獵豹安全大師等集成安天移動反病毒引擎的安全產品,定期進行病毒檢測,保護個人信息安全。
原文出處: http://blog.avlsec.com/2017/12/5020/tba/
總結
以上是生活随笔為你收集整理的移动端C#病毒“东山再起”,利用知名应用通信实现远控隐私窃取的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全面解析多种区块链隐私保护解决方案
- 下一篇: 安天移动安全:Janus高危漏洞深度分析