逆向分析-IDA動態調試WanaCrypt0r的wcry.exe程序


0x00 前言

2017512日全球爆發大規模蠕蟲勒索軟件WanaCrypt0r感染事件,各大廠商對該軟件做了深入分析,但針對初學者的分析教程還比較少,復現過程需要解決的問題有很多,而且沒有文章具體介紹勒索軟件的實際運行流程,所以我寫了這篇面向初學者的教程,希望幫助大家。

 

0x01 簡介

本文將要介紹以下內容:

樣本實際運行流程

IDA動態調試方法

具體調試wcry.exe的過程

 

0x02 樣本分析

測試環境: Win 7 x86

測試工具: IDA 6.8

樣本下載地址: http://bbs.pediy.com/thread-217586-1.htm

 

樣本流程分析:

通過逆向分析,樣本流程如下圖

 

 

0x03 實際測試

1、啟動IDA,加載樣本文件wcry.exe

IDA View-A窗口右鍵選着Graph view查看程序的整體流程圖。該程序函數你比較多,為了快速定位目標,可以使用查找功能,如下圖

 

 

找到sub_401225 函數雙擊,如下圖

首先會通過一個函數算出一個標識,本質就是通過GetComputerNameW獲取計算機名然后取隨機數算出一個唯一對應的標識,后面的執行過程會用到這個標識

接下來會做幾件事情,任意一項未執行成功都會退出

找到WinMain(x,x,x,x)  函數雙擊,如下圖

 

檢查命令行參數是否為兩個,並且是否有/i這個參數

檢查並嘗試獲取文件屬性和 Temp系統臨時目錄下創建前面算出的DisplayName為標識的目錄

創建tasksche.exe程序,

tasksche.exe優先以服務方式啟動,如果失敗則以普通進程方式啟動(副本啟動的入口點和原始文件啟動的入口點不同,從而實現不同的邏輯)

通過互斥體Global\\MsWinZonesCacheCounterMutexA來判斷是否啟動成功以上幾項都成功完成后流程才會繼續,否則終止。

創建注冊表項HKEY_LOCAL_MACHINE\...\wd ,寫入當前路徑值 

 

從資源中釋放PE文件taskdl.exetaskse.exe,為了免殺,資源中的PE文件是加了密的;

通過WNcry@2ol7’密碼解密資源中的PE文件,

"attrib +h ." 命令是將其釋放的文件屬性設置成隱藏模式,

"icacls . /grant Everyone:F /T /C /Q" 此命令是允許所有用戶對全盤有完全訪問權限。

經過以上步驟程序釋放的PE文件

在當前目錄下讀取c.wnry文件

如果讀取到了c.wnry文件,就會將13AM4VW2dhxYgXeQepoHkHSQuy6NgaEb94通過一個隨機數加密后寫回到c.wnry,而這一串數字就是黑客的比特幣地址,也就是說c.wnry文件里保存的是加密后的黑客的比特幣地址(有三個地址)。

接下來是動態獲取所需的API地址

首先是獲取kernel32.dll中的文件相關的API

 

然后是獲取advapi32.dll中的加解密相關的API

CSP用的是系統默認或者是RSA and AES

加密文件以WANACRY!為特征頭

如下圖

修改桌面背景 顯示勒索信息,如下圖

 

彈出勒索窗口,顯示比特幣錢包地址和付款金額 ,如下圖

其中箭頭所指處為黑客收取比特幣的三個賬號地址之一

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM