前言:昨天0XShe这细狗突然来找我,告诉我微信某个功能可能可以RCE,于是吃饭的时候花了半个小时简单验证了一下。先放视频
1.在电脑上打开功能
在电脑上打开是微信移动端的一个新功能,在移动端收到的文件,只要PC开着微信,就能自动打开该文件。其中普通文件打开到目录,office文档微信会调用相应的office程序打开文档。为了更直观通过进程抓取来演示。
1.1普通文件
父进程:
ParentCommandLine "C:\Program Files (x86)\Tencent\WeChat\WeChat.exe"
子进程:
CommandLine "C:\Windows\System32\explorer.exe" /select,"C:\Users\xroot\Documents\WeChat Files\gnAMGMGM\FileStorage\File\2023-02\ccc.bat"
当是普通文档时候,微信会调用资源管理器打开文件的
1.2office文件
父进程:
C:\Program Files (x86)\Tencent\WeChat\WeChat.exe
子进程:
C:\Program Files\Microsoft Office\Office15\WINWORD.EXE /n "C:\Users\xroot\Documents\WeChat Files\gnAMGMGM\FileStorage\File\2023-02\document.docx" /o
当要打开的文件是office文档时候,微信会用调用office程序,直接打开文档
2.CVE-2021-40444和他的子孙们
既然会直接打开OFFICE文档,这样想让电脑打开的时候直接执行命令。第一个想到的就是CVE-2021-40444和他的子孙们。不懂这个漏洞的可以去下面的链接:
CVE-2021-40444:CVE-2021-40444复现
CVE-2021-40444的儿子:CVE-2021-40444&&RAR补丁绕过
CVE-2021-40444的儿子:office-rce(cve-2021-40444msdt变种)
CVE-2021-40444在野的儿子:想啥呢,这怎么可能给你们
40444可以通过远程模板加载,不需要点击就可以触发漏洞,这边用最初那个版本的40444来验证然后触发:
1.生成特制DOCX,指向可控的web服务器
2.挂一个web,挂上特制的JS文件
3.通过微信发送文档,通过移动端触发在电脑上查看操作
4.微信调用office打开文档
父进程到触发全流程:
C:\Program Files (x86)\Tencent\WeChat\WeChat.exe
C:\Program Files\Microsoft Office\Office15\WINWORD.EXE /n "C:\Users\xroot\Documents\WeChat Files\gnAMGMGM\FileStorage\File\2023-02\document.docx" /o
C:\Windows\System32\control.exe" ".cpl:../../../AppData/Local/Temp/msword.inf",
C:\Windows\system32\rundll32.exe" Shell32.dll,Control_RunDLL ".cpl:../../../AppData/Local/Temp/msword.inf",
C:\Windows\SysWOW64\rundll32.exe" "C:\Windows\SysWOW64\shell32.dll",#44 ".cpl:../../../AppData/Local/Temp/msword.inf",
C:\Windows\system32\cmd.exe /c C:\Windows\System32\calc.exe
这样就可以触发上文的视频的操作
3.怎么真正的RCE
上文的操作只能自己打自己,怎么把战果扩大,形成真正的RCE呢?
这边提供三个方向,目前作者本人也在挖掘:
协议层,微信的请求流程自己去看,不复述了,可以伪造服务端给指定端口发指令,从而进行上下文拼接进行命令执行。
文件名,通过特制的文件名闭合上一条命令,然后执行自己想要的命令
用假的office文档,通过office的自带指令从而触发命令
写在最后:究竟是哪个逼把视频传播开的,利用链都没完成,就做了一个简单的POC就开始传RCE了。安全圈,没劲!