CVE-2021-40444的样本分析

本文最后更新于:2021-09-22 上午

前言

前段时间微软披露了cve-2021-40444,紧随其后就有大量的样本利用了此漏洞,本篇来分析一下一个利用了此漏洞的样本。

样本信息

  • 样本名称:A Letter before court 4.docx
  • 样本大小:24177字节
  • 样本类型:TrojanDownloader、exploit、cve-2021-40444
  • MD5:1d2094ce85d66878ee079185e2761beb
  • SHA1:53b31e513d8e23e30b7f133d4504ca7429f0e1fe
  • SHA256:938545f7bbe40738908a95da8cdeabb2a11ce2ca36b0f6a74deda9378d380a52

样本行为

  1. 打开文档尝试访问http://hidusi.com/e8c76295a5f9acb7 ,并下载side.html。
  2. side.html内部包含混淆过的JS代码来利用 CVE-2021-40444漏洞来进行攻击。
  3. side.html访问http://hidusi.com/e8c76295a5f9acb7/ministry.cab ,ministry.cab中包含着一个inf文件,实际上这是一个dll文件。
  4. 将cab中的Champion.inf文件保存在电脑上的若干路径。
  5. 执行Champion.inf,它会进行APC注入,注入进程为wabmig.exe,然后启动powershell进程实现自删除。

详细分析

打开文档会比较慢,可以看到提示正在从服务器下载side.html文件。

将DOCX格式改为压缩包格式进行解压缩,在文件内找到\word\_rels下的document.xml.rels文件,当存在需要下载的内容时,里面会存放地址。

可以看到请求下载的地址。

打开side.html文件,里面是混淆过得JS代码,这部分JS代码利用了漏洞来进行攻击。本篇不讨论具体的漏洞攻击详情,只涉及到样本的分析。

https://github.com/lockedbyte/CVE-2021-40444,在这里找到了网上的作者解开了混淆后的JS代码,可以看到其访问获取cab的路径,然后会通过执行cpl命令去执行一个inf文件。

因为域名已经挂了,所以尝试自己复现一下漏洞,还原整个攻击流程。https://github.com/lockedbyte/CVE-2021-40444,在这里有已经编写好的EXP,可以直接利用。

自己编写一个DLL,来弹出计算器。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "pch.h"

BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
WinExec("calc.exe", SW_SHOW);//弹出计算器
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}

编译,指定自己的DLL文件和服务器地址。然后会在out目录下生成一个DOC文档。

在测试机打开文档,弹出计算器,效果如下

通过火绒剑监控行为,可以看到样本通过rundll32执行了命令,msword.inf就是样本中的championship.inf只是名字不同。

在指定目录下生成的inf文件

现在分析一下championship文件,前部分有大量的复杂代码,通过fakenet判断它会尝试访问macuwf.com/get_load,因为域名已经挂了,猜测里面可能是shellcode的资源。

然后会获取一些函数的地址

通过WMI接口来创建进程

遍历线程

如果没有SeDebugPrivilege会尝试提权

写内存

APC注入

最后会启动powershell删除自身

实际注入的shellcode,并没有任何意义且只有二十个字节左右,猜测是访问服务器进行下载的,因为服务器已经挂了,部分无法分析。

防范建议

  1. 及时更新安全补丁

  2. 禁用ActiveX控件

  3. 将以下内容复制到文本文档中,保存为.reg文件并且执行

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]
    "1001"=dword:00000003
    "1004"=dword:00000003

    [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]
    "1001"=dword:00000003
    "1004"=dword:00000003

    [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]
    "1001"=dword:00000003
    "1004"=dword:00000003

    [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]
    "1001"=dword:00000003
    "1004"=dword:00000003
  4. 不要轻易打开未知来源的OFFICE文件。

IOCS

MD5:

1d2094ce85d66878ee079185e2761beb

4c80dc9fb7483214b1613957aae57e2a

faf0a0b2e0d987fd487c63f6495a9fa4

e770385f9a743ad4098f510166699305

URL:

http://hidusi.com/e8c76295a5f9acb7/side.html

http://hidusi.com/e8c76295a5f9acb7/ministry.cab

http://macuwf.com

http://macuwf.com/get_load

参考连接

https://paper.seebug.org/1718/

https://github.com/lockedbyte/CVE-2021-40444

https://www.trendmicro.com/en_no/research/21/i/remote-code-execution-zero-day--cve-2021-40444--hits-windows--tr.html

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-40444