RSA-4096勒索病毒分析

說明:

  萌新一枚,這是面試過程中面試官要求分析的另外一個病毒程序,整理成文,發表出來,供大家參考學習,一起進步!如有不當之處,也希望大佬批評指正,晚輩一定虛心受教。由於考慮到時間問題還有個人能力的原因,我只將病毒關鍵功能模塊進行分析說明,勒索算法部分沒有詳細分析,也請大家見諒,不懂之處歡迎提出,我也儘量解答,加油!


一、樣本信息:

二、分析環境及工具:

環境:Oracle VM VirtualBox、Windows 7 Service Pack 1(x64)
工具:PEID V0.95、OD、IDA、火絨劍

三、基礎病毒分析:

基礎靜態分析:

爲了方便測試,更改病毒名稱爲1,拖入PEID查殼發現亂碼節區,判斷程序採用了加殼方式來保護自己,殼的類型未知

接着觀察1的字符串信息和導入表,沒有發現什麼值得注意的信息

基礎動態分析:

爲了節約時間,這裏就不截圖展示了,基本思路是拖入火絨劍監控程序運行,常見的操作和推測可參考之前的文章

四、詳細病毒分析:

樣本1分析:

程序一拖入OD會彈出一個控制檯窗口,後面程序會得到控制檯窗口句柄進行隱藏,其中sub407410()函數會再內存中解密一堆數據

接着來到sub406D00()函數,程序首先獲得得到kernel32.GetProcessHeap和ntdll.RtlAllocateHeap函數地址,和其它病毒程序常採用GetProcAddress函數來獲取其它函數地址有所不同的是,這個惡意程序通過未文檔化函數LdrGetProcedureAddress來獲取其它函數地址



然後程序遍歷ntdll的導出表,加密函數名作對比得到所需要的函數RtlDecompressBuffer


調用RtlDecompressBuffer函數,解壓數據得到新的PE文件,dump下來命名爲PE1
待解壓的數據

解壓後的PE數據

下面獲取一些所需的函數

之後調用VirtualAlloc函數分配新的內存空間將解壓出來的PE文件複製過去並存儲所需的API




最終儲存的函數地址

修改此程序的內存保護屬性,將數據清空


之後將解壓出來的PE數據複製到原進程空間

跳到新的程序入口點開始執行程序


爲了方便分析,我直接分析dump下來的PE1文件

樣本PE1分析:

先進入入口點

程序首先初始化COM庫,得到9個隨機字符並創建了一個COM對象


然後拼接出PE1:Zone.Identifier文件名並刪除,是爲了運行時候,沒有彈窗警告


接着得到kernel32.dll的基址,獲取Wow64DisableWow64FsRedirection,Wow64RevertWow64FsRedirection地址,爲了關閉和恢復64位程序和32位程序之間重定位問題

然後程序解密出一些後面所需使用的字符串數據

加密文件後綴

網絡相關信息

操作命令相關信息

惡意域名相關信息

勒索文本信息

然後得到訪問令牌信息

下面得到6個隨機字符串,和特殊目錄路徑拼接出新的文件名,將自身複製過去,設爲隱藏屬性,創建一個進程運行新創建的文件,並刪除自己

複製文件


創建進程運行程序

因爲會創建新的進程運行程序,這裏我nop掉,往下看
創建互斥體8_8_8_8

提升進程權限

下面有6個函數

第一個函數sub40FB80()得到特殊文件路徑

第二個函數sub402960()創建註冊表寫入加密數據


第三個函數sub40FF30()設置開機自啓動並提升當前進程訪問資源管理器進程網絡共享權限


第四個函數sub40FC00()在特殊目錄下創建一個TXT文件並寫入加密數據



第五個函數sub402430()找到xxxxxxxx位置,填入數據,完善勒索信息


第六個函數sub40FE80()初始化GDI信息

接着創建一個線程來加密文件,病毒會加密兩個部分,一部分是主機文件,一部分是網絡資源文件

加密部分,首先對目錄判斷,是目錄就迭代,然後對比三個系統關鍵目錄,是的話跳過,之後在目錄下留下勒索信息截圖和勒索信息文本並通過shell32.execute打開它們



不是目錄的話和之前解密出來的後綴進行對比,符合的話開始加密,加密算法部分就不分析了,按照勒索信息文本來說病毒程序採用的是RSA-4096非對稱加密算法,寫入了三段加密數據

然後枚舉網絡資源文件進行加密


加密文件之後也會在桌面創建截圖和勒索信息文本並打開

之後創建新的線程來刪除備份數據生成的卷影副本,防止數據恢復


接着又創建一個線程來發送加密後的主機信息

最後刪除自身

至此病毒程序的運行流程分析完畢,加密數據部分沒有詳細分析,自己關於算法方面的逆向能力不太足,怕分析起來浪費時間,得不償失


五、病毒行爲流程總結:

六、技術思考總結:

  1. 通過PEID查殼發現程序帶殼的話不要慌,判斷是已知殼還是未知殼,已知殼的話查閱網上相關資料手工或者尋找脫殼機幫助自己脫殼,未知的話單步分析,合理下斷,注意觀察內存變化
  2. 對於某些影響我們分析運行的函數,要大膽的NOP和跳過
  3. 多熟悉不同病毒種類,遠控類,勒索類,挖礦類等等,下次遇到時,分析起來速度會變快,效率提高
  4. 算法加密部分不僅要熟悉常見的Windows系統函數,更要知道相關原理,自己能力有待提高

七、防護建議:

1、個人電腦、服務器應及時打補丁,修復漏洞
2、對重要的數據文件定期進行非本地備份
3、不要點擊來源不明的郵件附件,不從不明網站下載軟件
4、儘量關閉不必要的文件共享權限
5、更改賬戶密碼,設置強密碼,避免使用統一的密碼
6、GandCrab勒索軟件會利用RDP(遠程桌面協議),如果業務上無需使用RDP的,建議關閉RDP

八、相關IOC:

http[:]//drlarrybenovitz.com/qhcka/templates/binarystings.php
http[:]//holishit.in/wp-content/plugins/wpclef/assets/src/sass/neat/grid/binarystings.php
http[:]//starsoftheworld.org/cgi-bin/binarystings.php
http[:]//hknsjsu.org/wp-content/plugins/profile-builder/assets/lib/wck-api/assets/js/tiny_mce/utils/binarystings.php
http[:]//vtc360.com/wp-content/themes/vtc360_maxf3d/ReduxFramework/ReduxCore/inc/extensions/wbc_importer/demo-data/Demo2/binarystings.php
http[:]//grosirkecantikan.com/wp-content/plugins/contact-form-7/includes/js/jquery-ui/themes/smoothness/images/binarystings.php
http[:]//88fga.ketteaero.com/FE4A8D7E1E829B86
http[:]//2bdfb.spinakrosa.at/FE4A8D7E1E829B86
http[:]//uj5nj.onanwhit.com/FE4A8D7E1E829B86
MD5:9d3dbe44445624abb04bdb3bdace4fc2
SHA-256:7829ae7240eb4c6f5fe33c5af43e6d388f0439011c27cf609cc4d1a8b6092ec1
SHA-1:0ffc994e247d2b108910e8bb6de3ef57439c51af


由於相關文件有點大,放在微雲上供大家下載:https://share.weiyun.com/5Nfqfqm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章