溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用API調(diào)用分析惡意軟件

發(fā)布時間:2022-02-19 13:45:15 來源:億速云 閱讀:321 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“如何使用API調(diào)用分析惡意軟件”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何使用API調(diào)用分析惡意軟件”這篇文章吧。

我們發(fā)現(xiàn)有越來越多的惡意軟件開始使用各種加密、封裝和加殼等保護技術(shù)來對惡意代碼進行混淆處理,以防止系統(tǒng)或程序?qū)ζ溥M行識別。除此之外,這些技術(shù)甚至還會讓研究人員對其的靜態(tài)分析變得更加困難。雖然越來越多的惡意軟件開發(fā)人員開始使用這種保護性的加殼技術(shù),但這也直接導致了另一種惡意軟件分析方法的誕生。

如何使用API調(diào)用分析惡意軟件

其中的一種分析方法,就是通過分析惡意代碼中負責告訴系統(tǒng)如何執(zhí)行特定操作的API調(diào)用以及控制命令。在這種方法中,我們不需要對已加殼的文件進行逆向分析,因為我們只需要對惡意代碼所執(zhí)行的API調(diào)用來進行動態(tài)分析,就可以知道某個特定文件具體的功能了。通過這樣的方法(分析API調(diào)用),我們可以確定一個文件是否具有惡意性,而有些API調(diào)用只有某些特殊類型的惡意軟件才會去使用。比如說,常用的惡意Payload下載API是URLDownloadToFile,而GetWindowDC這個API一般用于間諜軟件或鍵盤記錄器等惡意工具(用于屏幕截?。?/p>

接下來,我們會對一個惡意軟件樣本進行分析,并給大家介紹這項技術(shù)的實現(xiàn)方法。

木馬樣本

我們所要分析的惡意軟件樣本是一個名叫1.exe的著名木馬,它的SHA256如下:0213b36ee85a301b88c26e180f821104d5371410ab4390803eaa39fac1553c4c

如何使用API調(diào)用分析惡意軟件

這個文件是加了殼的(VMProtect),所以我們就很難使用反編譯工具來對其進行分析了。由于我個人并不擅長逆向工程分析,因此我打算通過分析該文件在沙盒環(huán)境的執(zhí)行過程中的API調(diào)用來了解它的行為。

下面這張圖片中,顯示的是我們通過觀察它在沙盒環(huán)境中的運行情況所得到的API調(diào)用列表:

如何使用API調(diào)用分析惡意軟件

首先,我們來看一看這些函數(shù)到底有什么作用。其中有部分函數(shù)可以在微軟的網(wǎng)站中找到相關(guān)內(nèi)容:

GetModuleHandle函數(shù)

為特定模塊獲取模塊處理器,該模塊必須在調(diào)用進程中被加載。GetModuleHandleA (ANSI)

GetProcAddress函數(shù)

獲取一個輸出函數(shù)的地址,或從指定的動態(tài)鏈接庫(DLL)獲取變量。

_wtoi

將一個字符串轉(zhuǎn)換成整型

CreateStreamOnHGlobal函數(shù)

這個函數(shù)將創(chuàng)建一個流對象,該對象可以使用一個HGLOBAL內(nèi)存處理器來存儲流內(nèi)容。

StrStr函數(shù)

查找字符串中出現(xiàn)的第一個子字符串,匹配是大小寫敏感的。StrStrA(ANSI)

wsprintf函數(shù)

向特定的緩沖區(qū)中寫入格式化數(shù)據(jù),可根據(jù)相應的格式化字符串標準向輸出緩沖區(qū)中寫入任意參數(shù)。wsprintfA (ANSI)

WinHttpOpen函數(shù)

該函數(shù)可以初始化WinHTTP函數(shù)并返回一個WinHTTP-session處理器。

GetModuleFileName函數(shù)

獲取包含指定模塊的文件的完整路徑,該模塊必須在當前的調(diào)用進程中被加載。GetModuleFileNameW (Unicode)

LoadLibrary函數(shù)

向調(diào)用進程的地址空間加載特定模塊,該模塊可能還會加載其他的模塊。LoadLibraryA (ANSI)

LocalAlloc函數(shù)

向堆內(nèi)存中分配指定大小的字節(jié)。

LocalFree函數(shù)

釋放指定的本地內(nèi)存對象,并初始化該對象的處理器。

GetModuleFileName函數(shù)

獲取包含指定模塊的文件的完整路徑,該模塊必須在當前調(diào)用進程中被加載。GetModuleFileNameA (ANSI)

ExitProcess函數(shù)

終止調(diào)用進程以及所有相關(guān)的線程。

關(guān)鍵的惡意識別指標

需要注意的是,上面給出的所有函數(shù)并非都能夠之別標明某個可執(zhí)行程序的真實作用。但是針對WinHttpOpen的調(diào)用可以告訴我們這個應用是有特殊目的的。

那我們就可以從這個函數(shù)下手,我們使用URL Revealer(Kahu Security)來檢測流量的目的地,并發(fā)現(xiàn)了兩個該惡意應用會不斷嘗試連接的URL地址。

?

GET http://twitter.com/pidoras6

POST http://www.virustotal.com/vtapi/v2/file/scan

注:當我們向VirusTotalAPI提交一個文件來進行掃描時,最好提交這種形式的POST

上面這個鏈接指向的是一個已失效的Twitter地址,當我使用Twitter的高級搜索功能進行查找時,我發(fā)現(xiàn)這條推文早就已經(jīng)被刪除了。

如何使用API調(diào)用分析惡意軟件

通過Base64解碼之后我們得到了這條推文的原始內(nèi)容:https://w0rm.in/join/join.php。但不幸的是,這個網(wǎng)站已經(jīng)無法解析了,但這個網(wǎng)站原本是一個專門提供網(wǎng)站入侵服務的地下站點。不過需要注意的是,這個Twitter賬號目前仍然是活躍的。

由此看來,我們就沒辦法弄清楚這個惡意軟件想要利用GET請求來做什么了。但是我們可以用其他的方法搞清楚它想用VirusTotal來掃描什么東西?下面是我們使用WireShark所捕捉到的數(shù)據(jù)包:

如何使用API調(diào)用分析惡意軟件

在這個數(shù)據(jù)包中,你可以看到惡意軟件用來在VirusTotal網(wǎng)站上掃描文件的API密鑰以及文件名。所以,通過對API調(diào)用和數(shù)據(jù)包進行重構(gòu),我們發(fā)現(xiàn)這款惡意軟件會向VirusTotal提交自己的拷貝版本,即惡意軟件副本,而這正好是Vflooder木馬家族的典型行為。Vflooder是一種特殊類型的Flooder木馬,而Flooder木馬可以向目標發(fā)送大量的信息來中斷目標的正常操作。但是我認為VirusTotal可能無法檢測到這種惡意軟件威脅。

以上是“如何使用API調(diào)用分析惡意軟件”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

api
AI