Windows远程桌面漏洞Esteemaudit(CVE-2017-9073)补丁简要分析

本文讲的是Windows远程桌面漏洞Esteemaudit(CVE-2017-9073)补丁简要分析,在上个月,我们为方程式组织被泄漏的ESTEEMAUDIT漏洞撰写了一个简要的分析,并且直到我们发现这一漏洞攻击只适用于加入Windows域的计算机前,我们都在试图去重现这个问题,不过相对来说编写补丁还是相当简单的。下图显示了当检测到并阻止ESTEEMAUDIT攻击时显示的源代码和“Exploit Attempt Blocked”对话框。

我们的补丁很简单:我们先去检查从远程智能卡收到的数据(由ESTEEMAUDIT模拟)是否大于80h,这是gpkcsp.dll中目标缓冲区的大小。如果接收到的数据较大,并且使用ESTEEMAUDIT,则我们首先警告我们本地运行的0patch代理(弹出警报),然后将接收到的数据的大小减小到80h,以防止缓冲区溢出。通过在原始代码中引入4个机器指令,可以有效地阻止攻击而不会中断那些合法功能。

 

而在大约一个月后,微软公布了ESTEEMAUDIT和其它漏洞的官方更新,并且表示会向客户提供更多的支持。这是非常好的,因为官方的供应商更新是修复漏洞的首选方法,我们的目标是为那些还未修复的问题在修复前提供尽可能的服务,或者在安全更新时间差中为一些客户组织提供对关键漏洞的保护。

当然,我们对微软如何修复这个漏洞非常感兴趣,并将其修复方案与我们的进行了比较。输入IDA Pro和BinDiff,几分钟后,我们就可以并列的去比较两者了。

在左边的固定代码和右边的易受攻击的代码上,微软的补丁在完全相同的位置也引入了同样的检查。我们修复方案的主要区别在于,尽管我们将接收到的数据切割为有效长度,但如果数据太长,则仍然会产生错误,并放弃连接。

这是非常有道理的,因为官方补丁就是应该提供故障排除信息,微软应该尽量用最小的代码关闭漏洞。

当然我们也发现了非常惊喜的地方——BinDiff展现了了另一个变化。

在代码中的其他地方,微软也添加了类似的检查——检查接收到的数据长度超过80h,如果是,则返回错误。

他们显然审计了他们的代码,并注意到在另一个DoSCardTransmit调用之后存在类似的错误,并修复它。请注意,这个第二个错误并没有被ESTEEMAUDIT利用,但是很有可能会由第一个bug 进而被发现。微软和其他类似的软件供应商经常在他们的代码中搜索那些类似已发现的漏洞(内部或外部),并主动修复它们。

毫无疑问,这个被发现的第二个问题也给我们带来了新的问题:还有其他类似的问题吗?

在gpkcsp.dll中有66次对DoSCardTransmt调用,我们来简要地看看他们。事实上,我们对接收到的缓冲区将被复制到其他缓冲区的情况很感兴趣。实际上还有一个这样的情况,除了微软修补的问题,如下图所示:

同样,最新的gpkcsp.dll还是位于左侧,但显然这里没有添加任何数据长度检查。该代码与易受攻击的代码存在相似的嫌疑,但它实际上取决于ds上的目标缓冲区的大小:[edx + ebx]。我们没有时间进一步了解这一点,但是我们希望微软去进行尝试并确认它是不可利用的。

最后顺便说一下,ESTEEMAUDIT漏洞被分配了代号CVE-2017-9073,但微软将其修复与CVE-2017-0176进行了相互的关联。这很容易会引起一些混乱,让人们想知道两个CVE是否是重复的。基于对Microsoft的修复的上述分析,似乎可以准确的说一点,CVE-2017-9073其实是CVE-2017-0176的一个子集,前者只是ESTEEMAUDIT漏洞,而后者还包括上文中所述的第二个类似的问题,微软也进行了修补。

原文发布时间为:2017年6月22日

本文作者:Change

本文来自合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。

原文链接

时间: 2024-10-24 06:39:39

Windows远程桌面漏洞Esteemaudit(CVE-2017-9073)补丁简要分析的相关文章

讲解Windows远程桌面的那点事

  为了方便用户连接远程桌面,从Windows 2000 Server开始微软公司就为用户提供远程桌面技术,但是随着互联网科技日新月异的发展使得远程桌面连接水平不断攀升,远程控制软件也迅速进入了人们的视野,越来越多的办公人员希望利用远程技术来提高工作效率.下面系统之家就给大家讲解Windows远程桌面的那点事. 个人不喜欢服务端程序,以Windows 操作系统作为运行平台,但是,很多时候,迫于环境现状,需要让自己的程序实现跨平台. 在开发全新的金山游戏运营平台时,发现:虽然大部分游戏,服务端程序

解决Windows远程桌面连接每次都提示输入密码的问题

  Windows 远程桌面连接几乎每天都用,所以使用的方便性非常重要.如果你经常用,也许会发现在某些系统中,每次连接都需要输入密码,即使已经保存了密码,并且密码是正确的也是如此.   这个问题是策略设置的缘故. 直接看结果吧,该选项可以通过运行 gpedit.msc 打开组策略编辑器,进行设置,路径为 计算机配置 > 管理模板 > 系统 > 凭据分配 > 允许分配保存的凭据用于仅 NTLM 服务器身份验证.启用,并在 将服务器添加到列表 中添加 TERMSRV/*.保存后可以等待

Windows 远程桌面连接的复制粘贴无效怎么办

最近经常用 Windows 的远程桌面连接(RDP)来操作学校里的电脑.今天突然发现一直工作得好好的远程与本地电脑之间直接复制和粘贴功能突然失效了.重起 RDP 或本地计算机都不行(远端计算机无法通过 RDP 重起).在 superuser 上的一个回答里找到了解决办法,顺手分享一下. 首先确保 Windows 远程桌面连接的显示选项 –> 本地资源 –> 剪贴板是勾选过的. 然后连接到远程电脑.通过远程电脑里的任务管理器中的进程列表找到 rdpclip.exe,右键单击并选择结束进程. 接着

windows 远程桌面连接 RPi 2B

/************************************************************************* * windows 远程桌面连接 RPi 2B * 声明: * 本文主要记录windows下如何远程RPi 2B,通过ssh进去安装xrdp.设置USB * 无线网卡等工作. * * 2016-2-15 深圳 南山平山村 曾剑锋 ************************************************************

Windows远程桌面管理(3389)爆出严重漏洞

此安全更新可解决远程桌面协议中两个秘密报告的漏洞.如果攻击者向受影响的系统发送一系列特制 RDP 数据包,则这些漏洞中较严重的漏洞可能允许远程执行代码.默认情况下,任何 Windows 操作系统都未启用远程桌面协议 (RDP).没有启用 RDP 的系统不受威胁. 对于 Microsoft Windows 所有受支持的版本,此安全更新的等级为"严重".有关详细信息,请参阅本节中"受影响和不受影响的软件"小节. 该安全更新通过修改远程桌面协议处理内存中数据包的方式以及

XP远程桌面漏洞解决办法

  ghost xp sp3系统提供的远程桌面功能虽然能为远程维护系统带来方便,但目前已被证实该功能存在设计缺陷,可能导致攻击者得到系统远程桌面的账户信息,从而有助于进行进一步攻击.为了解决这一问题,可以不使用远程桌面功能时将其禁用,具体操作方法如下. 第1步:用鼠标右徤单击"我的电脑"图标,在弹出的快捷菜单中选择"属性"命令,打开"系统属性"对话框. 第2步:切换到"远程"选项卡,在"远程桌面"区域取消对

Windows远程桌面连接Ubuntu 14.04 (转)

由于xrdp.gnome和unity之间的兼容性问题,在Ubuntu 14.04版本中仍然无法使用xrdp登陆gnome或unity的远程桌面,现象是登录后只有黑白点为背景,无图标也无法操作.与13.10中的解决方式相同,使用xrdp只能登录xfce的远程桌面.   首先安装xfce: sudo apt-get update sudo apt-get install xfce4 如果网速较慢,这会持续一段时间. 然后安装xrdp组件和vnc服务器: sudo apt-get install xr

Linux/Windows远程桌面

WINDOWS远程连接LINUX配置(LINUX VNC Server配置): 1.查看本机是否有安装vnc(centOS5默认有安装vnc) rpm -q vnc vnc-server 如果显示结果为: package vnc is not installed vnc-server-4.1.2-14.e15_3.1 那恭喜你,机器上已经安装了vnc,如果没有,就得自己安装了,这里不说怎么安装了,很简单,在centOS的软件库中搜索,点击安装 2.把远程桌面的用户加入到配置文件中 vim /et

ubuntu连接windows远程桌面

转载请注明来自:http://blog.csdn.net/wsscy2004 简单使用 工作机换成战斗机了,改用ubuntu,原来的windows7上东西笔记多,还不想重装.用rdeasktop来远程连接windows: sudo apt-get install rdesktop rdesktop 124.42.120.174 -g 800x600 呵呵,连接成功了. 其他参数 -f 全屏 -a 16位色 默认端口是3389(linux 22 sh) 注意:windows 的服务中的 Termi