https://securelist.com/cve-2019-0797-zero-day-vulnerability/89885/

前言

在2019年2月,卡巴实验室的自动漏洞防护(AEP)系统检测到尝试利用Microsoft Windows操作系统中的漏洞。对此事件的进一步分析发现win32k.sys中存在零日漏洞。卡巴实验室于2019年2月22日向Microsoft报告确认了该漏洞分配为CVE-2019-0797。微软刚刚发布了一个补丁,称卡巴斯基实验室研究人员Vasiliy Berdnikov和Boris Larin的发现:

这是卡巴斯基实验室在Windows中发现的第四个连续被利用的本地权限提升漏洞。例如CVE-2018-8589,卡巴实验室相信这一漏洞被一些威胁组织使用,包括但不限于FruityArmor和SandCat。

FruityArmor曾使用过0day,但SandCat是最近才发现的新APT。除了CVE-2019-0797和CHAINSHOT之外,SandCat还使用FinFisher/FinSpy框架。

卡巴斯基实验室产品通过以下技术主动检测到此漏洞:

1.端点产品的行为检测引擎和自动漏洞预防;

2.卡巴斯基反目标攻击平台(KATA)的高级沙盒和反恶意软件引擎。

卡巴斯基实验室判断此次攻击和相关攻击中使用的工件是:

HEUR:Exploit.Win32.Generic
HEUR:Trojan.Win32.Generic
PDM:Exploit.Win32.Generic

技术细节 - CVE-2019-0797

CVE-2019-0797是win32k驱动程序中存在的竞争条件,因为未记录的系统调用NtDCompositionDiscardFrame和NtDCompositionDestroyConnection之间缺乏正确的同步。在初始分析期间,在最新系统上制作的屏幕截图中,可以观察到易受攻击的代码:

NtDCompositionDiscardFrame系统调用的片段(Windows 8.1)

在这个带有NtDCompositionDiscardFrame系统调用的简化逻辑的屏幕截图中,可以看到此代码获取与结构DirectComposition :: CConnection中的帧操作相关的锁,并尝试查找与给定id对应的帧,并最终调用免费的。可以在第二个屏幕截图中观察到此问题:

NtDCompositionDestroyConnection系统调用内部函数的片段(Windows 8.1)

在此屏幕截图中,使用从NtDCompositionDestroyConnection系统调用中调用的函数DiscardAllCompositionFrames的简化逻辑,您可以看到它没有获取必要的锁定并调用将释放所有已分配帧的函数DiscardAllCompositionFrames。问题在于,当系统调用NtDCompositionDiscardFrame和NtDCompositionDestroyConnection同时执行时,函数DiscardAllCompositionFrames可以在NtDCompositionDiscardFrame系统调用已经在寻找要释放或已经找到它的帧时执行。这种情况导致免费使用后的情况。

有趣的是,这是除了CVE-2018-8589和CVE-2018-8611之外,同一组使用的第三种竞争条件零日攻击。

如果模块文件名包含子字符串“chrome.exe”,则停止执行

在野外发现的漏洞攻击目标是从Windows 8到Windows 10 build 15063的64位操作系统。所有这些操作系统的开发过程没有太大差别,并使用堆喷涂调色板和加速器表执行使用GdiSharedHandleTable和gSharedInfo泄漏其内核地址。在利用Windows 10 build 14393和更高的窗口时使用而不是调色板。除此之外,该漏洞会检查它是否从谷歌浏览器运行并停止执行,因为漏洞CVE-2019-0797无法在沙箱中被利用。

CVE-2019-0797漏洞:Windows操作系统中的新零日在攻击中被利用的更多相关文章

  1. 太恐怖了!黑客正在GPON路由器中利用新的零日漏洞

    即使在意识到针对GPONWi-Fi路由器的各种主动网络攻击之后,如果您还没有将其从互联网上带走,那么请小心,因为一个新的僵尸网络已加入GPON组织,该组织正在利用未公开的零日漏洞(零时差攻击). 来自 ...

  2. ASP.NET 5与MVC 6中的新特性

    差点忘了提一句,MVC 6中默认的渲染引擎Razor也将得到更新,以支持C# 6中的新语法.而Razor中的新特性还不只这一点. 在某些情况下,直接在Web页面中嵌入某些JSON数据的方式可能比向服务 ...

  3. 在Windows操作系统中,如何终止占有的8080端口的tomcat进程

    在Windows操作系统中,我们在启动一个tomcat服务器时,经常会发现8080端口已经被占用的错误,而我们又不知道如何停止这个tomcat服务器. 本文将通过命令来强行终止这个已经运行的tomca ...

  4. WINDOWS操作系统中可以允许最大的线程数(线程栈预留1M空间)(56篇Windows博客值得一看)

    WINDOWS操作系统中可以允许最大的线程数 默认情况下,一个线程的栈要预留1M的内存空间 而一个进程中可用的内存空间只有2G,所以理论上一个进程中最多可以开2048个线程 但是内存当然不可能完全拿来 ...

  5. windows操作系统中安装、启动和卸载memcached

    今天总结一下如何在Windows操作系统中安装.启动和卸载memcached:下载地址: http://download.csdn.net/download/wangshuxuncom/8249501 ...

  6. Ant—怎样Windows操作系统中搭建Apache Ant环境

    介绍一下怎样在Windows操作系统中搭建Apache Ant环境: 一.下载Apache Ant压缩文件:http://download.csdn.net/detail/wangshuxuncom/ ...

  7. 在windows操作系统中,查询端口占用和清除端口占用的程序

    一.在windows操作系统中,查询端口占用和清除端口占用的程序 提升权限后用:netstat -b或用 1.查询端口占用的进程ID 点击"开始"-->"运行&qu ...

  8. Git—怎样Windows操作系统中安装Git

    介绍一下怎样在Windows操作系统中安装Git: 一.下载Git安装压缩文件:http://download.csdn.net/detail/wangshuxuncom/8035045 二.解压该压 ...

  9. [转]在 Windows 操作系统中的已知安全标识符(Sid security identifiers)

    安全标识符 (SID) 是用于标识安全主体或安全组在 Windows 操作系统中的可变长度的唯一值.常用 Sid 的 Sid 标识普通用户的一组或通用组.跨所有操作系统,它们的值保持不变. 此信息可用 ...

随机推荐

  1. beego 实现API自动化文档

    安装beego和bee工具 1.beego安装 go get -u github.com/astaxie/beego 2.安装bee工具 go get -u github.com/beego/bee ...

  2. MySQL入门介绍(mysql-8.0.13)

    MySQL入门介绍(mysql-8.0.13单机部署) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL数据库介绍 1>.MySQL是一种开放源代码的关系型数据库 ...

  3. Java基础之IO流学习总结

    Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  4. vscode 配置踩坑记

    vscode-easy-less 遇到问题最好的解决方式是看官网文档,切记!!! 在web开发当中,经常会写less然后编译成css,当然在VS Code当中也有这样的插件(EasyLess), 但是 ...

  5. linux 内核模块makefile通用模板

    ifneq ($(KERNELRELEASE),)# 在 mylist 后面添加需要编译的模块数量 mylist=hello.o a.o# 为每一个模块添加所需的文件 hello-objs := ma ...

  6. shop++改造之Filter类

    基于shop++源码进行商城改造.本来想大展手脚,结果一入手.发觉瞬间淹没了我的才华,sql语句也得贼溜没啥用. 不得不说这个商城源码价值很高,封装的很精屁. 下面是我第一天入手的坑. 数据库建好了表 ...

  7. MySQL学习笔记(二)性能优化的笔记(转)

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...

  8. Terminal 快捷键帮助

    Terminal 快捷键帮助 Terminal 快捷键帮助 移动光标至行首 CTRL+A 第一次按时,移动光标至行首: 再次按时,回到原有位置 CTRL+X 移动光标至行尾 CTRL+E 光标向左移动 ...

  9. python socket 编程

    TCP IPv4 # server.py import socket import threading import time s = socket.socket(socket.AF_INET,soc ...

  10. 057、macvlan 网络隔离和连通(2019-03-26 周二)

    参考https://www.cnblogs.com/CloudMan6/p/7400580.html   在上一节中,两个host上四个容器的网络信息如下,然后进行网络连通性测试,可见通vlan的容器 ...