gamaredon_Gamaredon组织某样本分析
0x01 Запит СБУ.docx文檔分析
打開文檔后,遠程注入模板:
文檔內容如下:
翻譯后內容如下:
由圖標也可以看出:
0x02 opt.dot模板分析
模板啟用了宏,通過olevba.py導出后分析。
獲取主機ComputerName及系統磁盤SerialNumber,并通過_拼接:
拼接URL及路徑,后續的VBS腳本中會用到:
于啟動目錄新建一security.vbs:
余下所有都是向該VBS寫入內容,不再贅述:
0x03 security.vbs分析
監測沙箱(如果沙箱跑25s,那么它此處延時就能達到反沙箱的目的):
余下部分結構如下(其中紅色方框部分經過處理):
下面逐一進行分析。
將其響應作為函數返回值。
隨機QopZ個字符返回,用于后面的文件命名。
上圖是Encode()函數主要功能。第一個參數FCkE是文本文件,內容CZeq()函數返回;第二個參數BGmO是要寫入的EXE文件; msKq是GetHKcc()函數返回的數組。該函數功能是將TXT文件內容經過異或操作之后寫入EXE文件。
將傳遞給該函數的字符串中每個字符的ASCII碼寫入一數組返回。
該Sub功能是將參數內容寫入TXT文件(即CZeq()函數返回值),并判斷大小:若小于1025,則刪除該文件。之后調用Encode函數,將TXT文件內容寫入EXE文件。如EXE文件存在,則于啟動目錄創建一VBS,內容如下(紅色方框部分經過處理):
循環前半部分功能見前文。后半部分是判斷EXE文件數量,大于2則使用WMI重啟,以達到執行啟動目錄內EXE文件的目的。
0x04 啟動目錄內EXE文件分析
實際是一SFX文件,其中包含如下文件:
0x04.1 8957.cmd
文件內容如下:
去混淆后:
28847同樣是一SFX文件,“ppfljk,fkbcerbgblfhs”是其解壓密碼。
0x04.2 28847.exe分析
輸入密碼,解壓后如下:
0x04.3 6323.exe分析
.NET程序,使用dnSpy分析。結構如下:
其中有大量如下特征混淆代碼:
去混淆后分析。各函數功能及調用關系如下:
BatJwAk()函數是將傳遞參數(以:分隔的十六進制ASCII碼)轉換為對應的字符串形式。
Main()函數于一循環中調用CYIxJzc()遍歷10.0-17.0各個版本的Word、Excel注冊表項。之后CYIxJzc()調用BcNIQrU()修改相應鍵值:
jYRcuEu()函數通過計算達到延時目的:
之后Main()調用cztXiVD(),遍歷非系統盤下文件:
llpJYEs()首先讀取路徑存放宏代碼的TXT文件:
之后判斷文件是否符合指定條件(非系統文件,擴展名包括.doc/.xls):
llpJYEs()之后調用zrdMiQo(),復制文件內容到一新文件(新文件名稱比原文件多一空格)后刪除原文件,并將新文件復制到原目錄下:
zrdMiQo()之后調用cBtQGAf()函數向新文件內寫入宏。該函數根據傳遞的第四個Bool參數值執行相關的寫入宏代碼,True:
False:
cBtQGAf()函數在執行寫入操作之前會調用hXblmtN()函數Kill "EXCEL"、"WINWORD"進程:
0x04.4 wordMacros.txt分析
兩份宏代碼不同之處只有如下3點:
其余不同點只是字符串拼接方式的不同,故只分析其中之一。
功能大體與opt.dot模板內宏代碼相同,但是增添了修改注冊表功能:
不同的URL:
創建一VBS,其功能是設置定時任務:
余下代碼是于%AppData%\Microsoft\Office目錄下創建IndexOffice.vbs文件,并寫入內容,該VBS功能與security.vbs功能近似,不再贅述。
0x05 Hashes && URL
Запит СБУ.docx:C0DC0C23E675D0C380E243FB36EE005E
opt.dot:689FAB7A016DAE57300048539A4C807E
107010D9E4FF8436F872F17A2B13BBE4
AF19975E1450D0CA7C4533F11D5E67D2
4286A15469AE50182CEA715ED6FA4109
總結
以上是生活随笔為你收集整理的gamaredon_Gamaredon组织某样本分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ksweb如何安装php5.6_Andr
- 下一篇: mybatis 多租户saas_Myba