Gamaredon组织某样本分析
2020-03-30 10:53:21 Author: xz.aliyun.com(查看原文) 阅读量:220 收藏

0x01 Запит СБУ.docx文档分析

打开文档后,远程注入模板:

文档内容如下:

翻译后内容如下:

由图标也可以看出:

0x02 opt.dot模板分析

模板启用了宏,通过olevba.py导出后分析。

获取主机ComputerName及系统磁盘SerialNumber,并通过_拼接:

拼接URL及路径,后续的VBS脚本中会用到:

于启动目录新建一security.vbs:

余下所有都是向该VBS写入内容,不再赘述:

0x03 security.vbs分析

监测沙箱(如果沙箱跑25s,那么它此处延时就能达到反沙箱的目的):

余下部分结构如下(其中红色方框部分经过处理):

下面逐一进行分析。

使用XMLHTTP访问http://skrembler[.]hopto[.]org/ComputerName_SerialNumber/tor.php。

将其响应作为函数返回值。

随机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


文章来源: http://xz.aliyun.com/t/7444
如有侵权请联系:admin#unsafe.sh