Cortana主要清静误差清静通告
宣布时间 2018-06-15误差编号
CVE-2018-8140
误差级别
主要 CVSS分值:官方未评定
影响规模
受影响系统:
Microsoft Windows 10
误差形貌
相信许多用户对微软的语音助手Cortana(小娜)都很熟悉了,甚至于对PC端的许多操作都寄托给了Cortana,但最近有研究职员发明,Cortana也是保存清静隐患的,可以资助攻击者解锁你的系统密码。
最糟糕的情景是,若是用户在目的系统上提升了语音助手权限的话,攻击者甚至完全有能力实现对电脑的完全会见,同时还可以修改上岸密码等。而这种情形爆发的概率很高,由于为了优化体验,用户许多时间都会把语音助手的权限提得很高。
微软已经将该误差标识为“主要”误差,由于想要乐成使用该误差的话,攻击者需要对目的系统举行物理或控制台会见,并且还需要目的系统启用了Cortana服务才华实现。
使用“你好小娜”语音下令检索敏感信息
若是你一经和Cortana对话过,那么可能已经注重到“她”能很是完善地执行一些简朴的使命,例如查找某个单词的寄义、查找某个公司的相关信息、搜索某部影戏、某个演员或者某位运发动。甚至,她还可以完成数学运算。在最新版本的Windows 10系统中,我们注重到默认是在锁定屏幕中启用“Hey Cortana(你好,小娜)”语音下令功效的,这一功效允许任何人在锁屏时与虚拟助理举行交互,导致了一些有趣征象的爆发,最终导致了恣意代码执行误差。
我们首先要剖析一下Windows索引。若是各人一经翻开过Windows索引控制面板中的高级视图,就会看到“文件类型”选项卡,其中有一长串文件扩展名。针对其中的每一个扩展名,我们都能审查到索引历程中所使用的关联过滤器的详细信息。其中包括文件属性过滤器和其他一些过滤器,我们可以将其归纳综合为“文件属性和文件内容过滤器”。
这也就意味着,索引历程会翻开文件并对其内容举行查找,包括文档中的特定字符串。我们首先要相识这一点,然后再继续研究。
借助已有的这些信息,我们想要在锁定的装备上实验,是否能泛起与未锁定装备相同的Cortana搜索效果。
实验的效果让我们感应惊讶,这也是此次误差的焦点所在。在锁定的装备上,我们只要向Cortana说出要害词,就会泛起一个Windows的相关文件列表,如下图所示。
在解锁的盘算机上,向Cortana搜索框中键入“pas”的效果:
在锁定的盘算机上,喊出“Hey Cortana,P——A——S”的效果:
在前面的例子中,我们询问Cortana的词语是“pas”,只是纯粹说出了三个英文字母。那我们为什么不说“pass”呢?缘故原由在于,Cortana关于说出来的词语很是挑剔,在她的字典中没有与“pass”相对应的操作,因此会要求用户解锁装备然后使用Edge搜索该词语。另一种方法,我们也可以不必说出上述内容,而是点击“Tap and Say”(点击并说出)按钮,然后输入此文本。
现在,我们能获得一个要害词相关文件的列表,可以显示在锁定的Windows 10装备上。
由于Cortana提供的所有用果都来自于索引文件和应用程序,并且针对某些应用程序,其文件的内容也被收入到索引之中。因此,我们现在可以将鼠标悬停在任何相关的匹配效果上。若是是凭证文件名匹配的,那么此时可以看到文件的完整路径;若是是凭证文件内容匹配的,那么可能会看到文件中的内容。
在这里需要注重的是,整个用户文件夹也被收入索引,其中包括大大都文档的默认位置,OneDrive等映射也包括在内。
使用Cortana语音下令检索敏感信息:
在掌握了这些原理之后,攻击者就能够施展自己的想象力,从锁定装备中网络到特定的神秘要害字。
在Windows屏幕锁定情形下执行代码
接下来,我们爆发了这样一个疑问:是否可以进一步以授权用户的身份来执行特定代码?请各人记着,我们这个时间只能使用语音下令,并配合鼠标、触控板、触摸屏等装备来会见Cortana给出的搜索效果列表。我们视察到,只需将鼠标悬停在文件上,就会显示出文件的完整路径或内容。那么若是我们点击文件会爆发什么呢?这着实取决于文件的类型,若是文件是应用程序或可执行文件,那么该文件将运行,并且只有用户准确登录后才可以会见。若是文件是文档、剧本或文本文件,那么该文件将会被响应的编辑器翻开,而不可被执行。
基于此,我们可以执行种种预加载的Windows适用程序(例如盘算器),可是我们不可将任何参数转达到下令行。我们可以翻开包括PowerShell在内的剧本,但不会被执行,这些剧本将在文本编辑器(记事本)中翻开。我们现在遇到的逆境就是缺少参数,攻击者只能使用本机现有的内容来实现恶意目的。然而,纵然有上述限制,攻击者仍然可以执行大宗的恶意运动。举例来说,许多卸载程序都可以直接卸载软件,而不需要任何参数。
让我们回归到一最先的目的:在锁定屏幕执行代码。要想让某个内容在搜索效果列表中显示,唯一要求就是让该文件包括在索引规模中。
关于未经身份验证的攻击者来说,有多种方法可以获得想要的索引效果。其中一种要领是依赖于OneDrive。由于OneDrive目录结构的根目录位于用户文件夹内,因此默认情形下会对OneDrive的所有内容举行索引。若是用户一经共享过一个具有“编辑”权限的文件夹,那么共享的职员以及任何其他通过转发的链接会见的用户都可以将一个文件放入被索引的目录下。通过索引的文件,我们能实现多种类型的攻击。
计划1:投放可执行文件
此要领假定攻击者可以将可执行文件写入磁盘,但不需要执行。通过网络垂纶攻击或者其他误差,攻击者可以投放一个后门(例如Cobalt Strike Beacon或Meterpreter),并最先后续的恶意运动。若是需要以管理员身份执行Payload,攻击者可以右键点击(或触摸屏上长按)该文件,并选择“以管理员身份运行”。
当攻击者试图运行一个没有自动提升权限的应用程序时,将会触发用户账户控制(UAC)提醒,并且系统将不会执行任何操作。然而,由于用户很少会耐心阅读提醒的内容,通�;嵯肮咝缘慊髦已远曰翱蛑械脑蕹砂磁�,因此这同样可能导致有用的攻击。其详细方法是,攻击者首先执行该程序,然后正当期待用户登录并点击忠言对话框中按钮后实现恶意代码的执行。若是该应用程序能够自动提升权限,则不会再泛起UAC的忠言,会直接执行该应用程序。
这是一个很是有趣的行为,但可能不会作为一个攻击者常用的攻击场景,以是让我们继续研究其他的计划。此时,我们思量到既然能够对装备举行物理接触,为什么不使用USB Key来投放Payload呢?USB Key的内容没有加入到索引之中,因此不会作为搜索盘问的效果泛起出来。(后文中尚有其他USB装备的使用计划,请继续阅读)
计划2:投放一个非PE的Payload
只管可移植可执行(PE)后门很棒,但我们在思量,是否还可以通过非PE的Payload(例如PowerShell剧本)来实现代码执行?我们可以使用相同的右键功效来辅助完成,只需要稍作调解即可。纵然是针对特定的文件类型,它们的右键菜单也不总是相同的。
当我们向Cortana询问“PS1”时,可以看到索引中泛起PowerShell剧本。通过右键点击,我们能够“翻开文件所在位置”或“复制完整路径”,但不可执行该剧本。
正如前文所形貌过的,若是我们单击该文件,该文件将以编辑模式翻开。希奇的是,系统并不会选择PowerShell剧本的默认编辑器(PowerShell ISE),而会在记事本中翻开剧本。我们明确为这是一种清静步伐,与PowerShell ISE差别,记事本不可执行剧本,更具有清静性。
我们上文中提到,Cortana会凭证用户的输入盘问来修改效果。当用户登录后,若是以逐个单词的方法询问Cortana“txt”,将会显示出文本文档、记事本和最近由记事本翻开的文档。然而,针对“最近使用的文件”种别和“文档”种别中的文件,其右键单击后泛起的菜单是纷歧样的。
“最近”种别中文件的右键菜单:
“文档”种别中文件的右键菜单:
基于此,我们的办法如下:
1、将一个PowerShell剧本放在会被索引的位置,例如公用文件夹、公用共享或OneDrive。
2、执行搜索操作,并点击搜索到的剧本:
(1) 说出“Hey Cortana, PS1”;
(2) 选择刚刚安排的PowerShell剧本,并且左键单击;
(3) PowerShell剧本会在记事本中翻开。
3、执行最近使用的文本文档的搜索操作,右键单击,然后启动:
(1) 使用Cortana,搜索要害词“txt”;
(2) 在“最近使用的文件”选项卡中,找到该PowerShell剧本,并右键点击;
(3) 选择“使用PowerShell运行”。
现在,我们使用该Payload来实现外地代码执行。在最新版本的Windows 10系统上,纵然已经锁定,该代码也能乐成执行。
我们刚刚举行的剖析历程,有助于我们明确Windows在锁定息争锁的系统中,针对应用程序、文档等差别扩展,具有差别的处置惩罚方法。然而,由于其中包括用户交互历程,因此这种计划可能不切合真实天下中的攻击场景。我们的实验还没有竣事。
无用户交互登录到锁定装备
现在,我们已经可以举行外地代码执行,但这一历程尚有一些限制。首先,我们需要让Payload加入到索引中,同时,我们无法转达下令行参数。这可能是在PowerShell举行攻击历程中的一个限制因素,由于响应的执行战略可能会阻止它的执行,并且在没有下令行参数的条件下,我们无法举行“-ExecutionPolicy Bypass”(或其他类似气概的攻击)。现在,我们必需找到一种要领在用户的主机上安排PS1剧本,并且可以远程会见物理主机或举行登录。
回首刚刚的实验,我们使用键盘输入,在锁定屏幕上触发了搜索要害词菜单。任何按键都能在Cortana收听用户语音指令的历程中触发这一菜单。在此时,我们可以按空格键,其缘故原由在于我们此时无法使用退格键,并且Windows会自动忽略掉文本效果中的空格。若是我们在Cortana收听前按键,或在早于挪用键盘输入的时间按键,系统都会提醒我们输入密码。若是按键的时间太晚,Cortana可能又会进入到休眠模式(不侦听语音指令),或者返回不含要害词菜单的正常效果。
除了语音指令外,使用键盘的方法可能不是太直观,但若是触发了Cortana的侦听,就可以凭证在解锁后Windows中的方法来输入搜索内容。
下面的截图中展示了如下办法:
1、通过“Tap and Say”或“Hey Cortana”触发Cortana的侦听;
2、问一个问题,例如:“现在几点”;
3、按下空格键,泛起要害词菜单;
4、按下ESC键,菜单消逝;
5、再次按下空格键,泛起要害词菜单,但此时没有要害词,以是盘问效果是空的;
6、最先输入,注重在输入历程中不可使用退格键Backspace;
7、在输入下令后,单击“下令”种别中的条目(只有当输入被识别成下令后,才会显示这一种别);
8、我们可以点击右键,选择“以管理员身份运行”(但需要注重,必需在用户登录后才华关闭UAC防护机制)。
我们可以使用下面示例中的简朴PowerShell下令来举行实验,该试验在锁定的Windows上执行。
至此,我们就可以举行任何想要的操作了。demo(https://players.brightcove.net/21478975001/rJsQG2JOl_default/index.html?videoId=5796435398001)中展示了怎样借助此手艺在Windows 10操作系统上实现密码重置及登录。
解决步伐
在受误差影响且未修复的主机上,最简朴的缓解要领是关闭“锁定屏幕上启用Cortana”功效。Microsoft已经为此宣布了一个清静通告以及响应补�。�
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2018-8140
参考资料
https://securingtomorrow.mcafee.com/mcafee-labs/want-to-break-into-a-locked-windows-10-device-ask-cortana-cve-2018-8140


京公网安备11010802024551号