APT攻擊中會使用合法程序嗎?
這幾天,在我研究過程中我發現了下面這樣一個文件:
MD5 5e81bd134168d7d8c91b96d88b5e0fd0nSHA1 a632371b2aa54709d4bf6b0f28cb1904cb8864bcn
在這一軟體信息中可以看到它是由SlavaSoft公司製作的HashCalc程序,不過也可能不會這一公司製作的。
在SlavaSoft公司網站主頁上可以看到這一軟體,對其說明如下:
一個快速簡易的計算器,可以計算文件,文本文檔,以及哈希字元串的消息摘要,校驗碼,以及HMAC。這一工具提供了13種最常用的hash,以及校驗演算法以便進行將計算。n
我手上的這一文件確實具有這樣的功能。
通過靜態分析,並沒有發現一些有趣的東西,只是在.text段中是允許寫入的,這在一些函數庫中是很常見的。當我進行動態分析時,幾乎試遍了所有的功能,也沒有發現一些可疑的行為。
這時我就有點困惑了,從這一點看確實這一文件是沒有問題的,如果沒有足夠的時間去分析它,我相信每個人都會和我說一樣的話的。
在我調試這一軟體之前,我想從官網上將文件下載下來,然後和我手中的文件進行比較。但是當文件正在被分析時,無法和另外一個文件進行比較。所以在這種情況我有兩種選擇,完成分析,或者調試整個程序。如果程序很大,我們需要花費非常長的時間對它進行調試,如果我們想立即獲得結果,幾乎是不可能的。
在這種情況下,我已經有了原始的文件,只需要比較該文件是不是多了一些隱藏的功能,讓我們看看吧~
他們都有相同的程序入口點:除了.text段外,其餘段的md5值都是相等的:
通過比較.text段,我們可以發現該部分的最後一個位元組存在不同:
如果我們通過hiew反編譯這些位元組,我們可以讀到一些彙編指令:
因為想調試這一段代碼,所以在第一個說明處放置一個斷點,也許這一代碼可能執行也可能不執行,甚至這不是一串代碼。
放置斷點後,運行後程序無任何異常,任何功能都可以正常使用。下面幾張圖是我測試過程中使用的功能,設置斷點並不影響使用:下一張圖中,當我想從文件中得到hash值時,這一程序停止了:
現在到達了我們設置之前斷點的地方,這一段代碼正在嘗試對自身解密,下圖是加密的shellcode:
對shellcode進行解密,只是單純的與7進行亦或:
解密之後的shellcode:
解密之後的shellcode就回有些有趣的東西:
- SLAVAn- kernel32n- ANNA (Anna Chapman???)n- CreateEventAn- .PhysicalDrive0n- ALISAn- KATIn- ntdlln
shellcode如下:
這一段shellcode會執行以下步驟:
1. 對自身進行解碼
2. 調整許可權3. 它會創建一個名為SLAVA的時間,如果事件沒有創立,那麼就會返回之前代碼,因此這一代碼是等待事件的創立。
4.接下來shellcode會將.PhysicalDrive0的前512個位元組進行覆蓋,當這一扇區覆蓋之後計算機將無法啟動。
5. 對本身進行加密,從而隱藏惡意代碼。
6. 返回原始代碼
如果你還記得文章第一張圖片,這一惡意軟體只被一個殺毒軟體檢測到。
結論:
在文件大小大於50M的情況下,除非惡意軟體激活時,否則很難找到惡意代碼的。也許我們可以得到原始的文件,我們可以比較兩者的差異,但是在某些情況下是不可能的。我們必須要花很長時間或者金錢去找到惡意代碼。這一文件可能是apt攻擊中,等待第三方事件的軟體。那麼是誰製作的?為什麼要製作他?他們是否是使用一種工具對它進行製作?所以如果我們有機會,我們必須比較手中的文件和官網上的文件,但是當我們沒有原始文件時,會發生什麼呢?
本文翻譯自:Can be a "legitimate" program an APT? ? reversingminds's Blog,如若轉載,請註明來源於嘶吼: APT攻擊中會使用合法程序嗎? 更多內容請關注「嘶吼專業版」——Pro4hou
推薦閱讀:
※外媒解密 | 間諜軟體是如何工作的?
※黎巴嫩國家APT組織「黑山貓Dark Caracal」浮出水面
※差學生秒變三好學生?因為一款黑客工具他入獄了
TAG:信息安全 |