朝鲜组织Kimsuky投放xml恶意软件
downn 发表于 广东 历史精选 2182浏览 · 2024-09-27 05:39

前言

样本信息IOC

一个XML恶意样本。

IOC:

XML样本下载地址:https://www.filescan.io/uploads/66d9c2130c6cfa135b3cbcb4/reports/2c3bda58-f4da-424e-8d56-22e82ad24d83/details

行为分析

从外部下载脚本

该xml恶意代码使用powershell从外部下载脚本,这里调用iex指令执行括号内的字符串。括号内是iwr对后面的url发起网络请求,从远程服务器下载脚本。-WindowStyle Hidden 用于隐藏窗口。

直接访问该URL:

前俩个字节4d5a是PE文件头标识 MZ

最下方,有部分代码,这里将上面的十六进制数据还原为二进制格式,解码后保存为xBqz.mp3,之后再重命名为exe文件并启动一个新进程执行。这里-NoNewWindow避免弹出新窗口,以确保不被发现。

使用cyberchef:

保存为exe文件。

exe文件分析

样本信息

64位GUI,用了UPX打包。

行为分析

1.创建堆和进行初始化

0x100000即为16MB,这里先是用HeapCreate创建了一个堆,拷贝了一些数据给Src。

2.分配内存

使用 HeapAlloc 从刚刚创建的堆中分配了 80 字节内存用于存储一些数据,并且再次分配了 256KB 的内存用于进一步的数据处理。

3.创建事件并初始化

这里创建了一个事件。随后调用函数sub_140055A20。如下。

4.检查当前执行的模块名称

该函数使用GetModuleFileNameW获取当前正在执行的模块名。后面的验证确保了名称的长度为偶数,文件名只能包含特定的字符('0'-'9', 'A'-'Z', 'a'-'z')。

5.填充内容并解密

HeapAlloc再次分配了内存,memmove将加密密钥Src复制给v49。v12指向数据块。

之后用一个while循环 XOR 逐字节进行解密,密钥长度16字节。

6.解析数据

这里检查解密后的 *v11 是否等于21336。之后做了根据不同情况解析。

7.执行

通过 WaitForSingleObject 等待事件信号完成。然后根据v58、v5和v6判断执行函数指针。最后清理内存。

下个断点,进入到该函数中。

第三阶段

sub_7FF72F8F14D4

这里通过遍历PEB的Ldr链表获取模块地址。

该函数解析一个PE结构的文件,即刚刚得到模块地址。通过对遍历该模块并对该模块的条目进行哈希计算,将计算的哈希与给定的哈希表进行匹配。

后面还有俩个函数也是解密和内存操作的。这里分析完不知道具体干啥,解析一些数据最终返回了一个结构体指针。

result

进入return 这的函数。

这里依旧是处理内存模块和各种加密。

总结

算是一次不成功的分析,xml恶意样本下载外部脚本,这个xml被判定为高危,它是由Kimsuky组织投放的恶意软件。但是它下载的外部脚本exe文件,跑了几个沙箱都是安全。vt跑的出来恶意行为,没有分析出来...菜

1 条评论
某人
表情
可输入 255