接好文《怎么根据搜索故意开发者的思路来找寻漏洞(上)》
CVE-2015-2546
归类:一日漏洞;
基本上叙述:xxxSendMessage(tagPOPUPMENU)中的Use-After-Free;
零日漏洞经销商汇报:FireEye;
在下列恶意程序示例中发觉:Ursnif,Buhtrap;
科学研究员工的利用样版应用了一种有别于最开始汇报中表述的运行内存成形技术性(运行内存成形技术性):喷漆Windows而不是AcceleratorTable。除此之外,科学研究工作人员最开始和最主要的利用示例包括下列PDB途径,这说明开发者早已了解此漏洞的CVE-ID:“C:\…\volodimir_8\c2\CVE-2015-2546_VS2012\x64\Release\CmdTest.pdb”。
CVE-2016-0040
归类:一日漏洞
基本上叙述:WMIDataDeviceIOControl中未复位的核心表针;
零日漏洞经销商汇报:沒有,由于科学研究工作人员从没在野外发觉这一零日漏洞;
在下列恶意程序示例中发觉:Ursnif;
该漏洞已在一个样版中被应用,该样版还包括以前叙述的CVE-2015-2546的漏洞。假如目的是比Windows8早的Windows版本号,则会挑选此漏洞。不然,应用CVE-2015-2546。
CVE-2016-0167
归类:零日漏洞
基本上叙述:Win32k!xxxMNDestroyHandler中的Use-After-Free;
零日漏洞经销商汇报:FireEye;
在下列恶意程序示例中发觉:PUNCHBUGGY;
科学研究员工的漏洞利用示例与相关郊外漏洞利用的技术报告彻底符合。
CVE-2016-0165
归类:一日漏洞;
基本上叙述:Win32k!xxxMNDestroyHandler中的Use-After-Free;
零日漏洞经销商汇报:由诺顿杀毒软件寻找,但对外公布公布一切汇报;
在下列恶意程序示例中发觉:Ursnif;
CVE-2016-0165是一个非常典型的整数金额上溢漏洞,因为在 win32k!RGNMEMOBJ::vCreate 函数公式中分派核心池运行内存块前沒有对测算的运行内存块尺寸主要参数开展外溢校检,造成函数公式有分派到远低于所期待尺寸的运行内存块的概率。而函数公式自身没有对分派的运行内存块尺寸开展需要的校检,在后面根据该运行内存块做为缓冲区域储存信息时,可能开启跨站脚本攻击浏览的OOB问题,比较严重状况将可能会导致BSOD的产生。这是一个有意思的示例,科学研究员工的网络攻击的零日漏洞(CVE-2016-0167)已于2016年4月由微软公司修补。同一修复程序流程也修补了CVE-2016-0165,该漏洞也在野外被应用。为了更好地找寻新的漏洞进行利用,科学研究员工的网络攻击很有可能对微软公司的修补程序流程开展了修补程序流程修补,并看到了一个她们以为是零日漏洞修补的漏洞。此漏洞来源于其此前漏洞:Win32k!xxxMNDestroyHandler中采用的修补函数公式。
从她们的漏洞利用示例中有众多征兆说明,漏洞利用者或是最少她们的顾客确认她们已销售了对于CVE-2016-0165的漏洞。
当在Cutter所显示的那般,调节字符串数组表明了CVE-2016-0165的错乱梯度下降法
导致这类错乱的因素可能是微软公司推送了处理好几个漏洞的单独修补程序流程,而且他们是唯一在每一个编码修补程序流程与因此公布的CVE中间具备详细投射的修补程序流程。
CVE-2016-7255
归类:零日漏洞;
基本上叙述:NtUserSetWindowLongPtr中的运行内存毁坏;
零日漏洞经销商汇报:由Google报告,由趋势科技给予技术报告;
在下列恶意程序示例中发觉:来源于APT28(别名FancyBear,Sednit),之后被Ursnif,Dreambot,GandCrab,Cerber,Maze应用;
科学研究员工的漏洞利用示例与相关郊外漏洞利用的技术报告彻底符合,之后,这类勒索病毒被不一样的勒索病毒网络攻击普遍应用。除此之外,科学研究工作人员还看到了对于此特殊漏洞的别的进攻,他们也以一日漏洞的价钱售卖给别的勒索病毒网络攻击。
有多种多样间接证据说明,这一零日漏洞是BuggiCorp在2016年5月公布到exploit[.]的知名广告宣传中提及的那一天。
CVE-2017-0001
归类:一日漏洞;
基本上叙述:RemoveFontResourceExW中的Use-After-Free;
零日漏洞经销商汇报:沒有,由于学者从没在野外发觉这一零日漏洞;
在下列恶意程序示例中寻找:来源于Turla,之后被Ursnif应用;
来自于Turla(FireEye)的实际操作中被作为一日漏洞。
CVE-2017-0263
归类:零日漏洞;
基本上表明:win32k!xxxDestroyWindow中的Use-After-Free;
零日漏洞经销商汇报:ESET;
在下列恶意程序示例中发觉:来自于APT28(别名FancyBear,Sednit);
科学研究员工的漏洞利用示例与相关郊外漏洞利用的技术报告彻底符合。
CVE-2018-8641
归类:一日漏洞;
基本上叙述:win32k!xxxTrackPopupMenuEx中的DoubleFree,doublefree的基本原理实际上和堆外溢的工作原理类似,全是根据unlink这一双向链表删掉的宏来利用的。仅仅doublefree必须由自己来仿冒全部chunk而且蒙骗电脑操作系统。
零日漏洞经销商汇报:沒有,科学研究工作人员从没在野外被算作零日漏洞;
在下列恶意程序示例中发觉:Magniber;
鉴别应用过的一日漏洞通常比鉴别零日漏洞艰难,此次,科学研究工作人员找不着其他很有可能暗示着该网络攻击觉得它们已经利用的漏洞是啥的示例。
科学研究工作人员明确此特殊漏洞是由微软公司在2018年12月修补的,在扫描仪了此修补系统中处理的漏洞目录以后,科学研究工作人员可以明确微软公司将其标注为CVE-2018-8641,但实际缘故科学研究工作人员并非很清晰。
2020年6月24日,诺顿杀毒软件在其blog中公布了根据Magnitude漏洞利用工具箱散播的漏洞利用剖析。诺顿杀毒软件在许多人的网络文章中剖析了Magniber应用的LPE漏洞,并觉得其来自于Volodya,并可能可能是CVE-2018-8641。
CVE-2019-0859
归类:零日漏洞;
基本上叙述:CreateWindowEx中的Use-After-Free;
零日漏洞经销商汇报:诺顿杀毒软件;
在下列恶意程序示例中寻找:作为要引入或载入的单独部件,科学研究工作人员没法将其分类到一切特殊的APT/恶意程序。
科学研究员工的漏洞利用示例与相关郊外漏洞利用的技术报告彻底符合,这一科学研究起源于在顾客互联网中发觉的这类漏洞利用的单独示例。在稍候发觉的在其中一个示例中,科学研究工作人员能够看见下列清楚的PDB字符串数组:“X:\tools\0day\09-08-2018\x64\Release\RunPS”,与科研工作人员原始示例中的pdb字符串数组反过来:“S:\Work\Inject\cve-2019-0859\Release\CmdTest.pdb”。
CVE-2019-1132
归类:零日漏洞;
基本上表明:在win32k!xxxMNOpenHierarchy(tagPOPUPMENU)处撤销对NULL指针的引用;
零日漏洞经销商汇报:ESET;
在下列恶意程序示例中寻找:来自于Buhtrap;
科学研究工作人员有好几个原因觉得这也是Volodya产品研发的另一个零日漏洞,由于汇报中的好几个关键技术与许多人的典型性漏洞利用方式相符合。除此之外,该漏洞汇报之中置入了下列PDB途径:“C:\work\volodimir_65\…pdb”。可是,这也是科学研究工作人员目录中唯一并未寻找示例的漏洞利用程序流程,因而科学研究工作人员还没法对该漏洞利用方法开展分类。
CVE-2019-1458
归类:一日漏洞;
基本上叙述:对话框转换中的运行内存毁坏;
零日漏洞经销商汇报:诺顿杀毒软件(原始汇报,详尽汇报);
在下列恶意程序示例中寻找:来自于WizardOpium;
科学研究员工的漏洞利用方式与相关郊外漏洞利用的技术报告不符合。除此之外,诺顿杀毒软件在详尽汇报中强调:“有意思的是,在修补程序流程公布仅一周后,科学研究工作人员又看到了该漏洞的另一个一日漏洞,这说明利用此漏洞比较简单。”事实上,科学研究员工的示例追朔到诺顿杀毒软件第一次汇报后的6天。
下表汇总了科研工作人员列举的漏洞:
开发者留有的案件线索如今,科学研究工作人员发觉了来源于Volodya的10各种不同的进攻,科学研究工作人员可以对它进行更详尽的核查,并了解网络攻击的运作习惯性。从一开始就很清晰,科学研究工作人员要研究的进攻程序流程很有可能有一个简便的模版,他们为不一样的进攻布署了这一模版,由于每一个进攻的函数公式流,乃至不一样函数公式的次序,在大部分进攻中间是分享的。
在这节中,研究人员叙述了一组重要特点,这种特点体现了Volodya在建立利用模板时需做出的不一样完成挑选。研究人员将两者的完成与另一个称之为PlayBit的系统漏洞撰写器的完成开展较为。根据这类较为,研究人员的目地是简述在开发设计的每一个部份中产生的各种各样完成选择项,使每一个开发人员的一组完成挑选变成她们思索和工作方式的与众不同“标示”。
PlayBit(别名luxor2008)
应用研究人员用于找寻Volodya系统漏洞的同样技术性,研究人员想方设法找到5个由PlayBit撰写的WindowsLPE1-Day系统漏洞,及其开发人员很多年来售卖的别的专用工具。研究人员从一个由REvil勒索病毒应用的CVE-2018-8453实例逐渐,并应用PlayBits的与众不同案件线索找寻到了大量系统漏洞。
研究人员发觉下列WindowsLPE系统漏洞被恶意程序开发人员开发设计为一日系统漏洞:
- CVE-2013-3660;
- CVE-2015-0057;
- CVE-2015-1701;
- CVE-2016-7255(这也是Volodya开发设计的一个零日系统漏洞);
- CVE-2018-8453;
在技术上讲,PlayBit还售卖了对于CVE-2019-1069(一个SandboxEscaper系统漏洞)和CVE-2020-0787的2个系统漏洞。可是,研究人员忽视这种系统漏洞,由于他们并不是运行内存毁坏系统漏洞,反而是不一样服务项目中的系统漏洞,因而具备不一样的构造。
Volodya的全部利用实例中的API自始至终同样。无论该缺陷是置入在恶意程序实例中或是单独的POC,该系统漏洞利用都具备下列签字的单独API函数:
启用elevate(target_pid)函数公式,可以在Cutter中见到
这一系统漏洞自身并不包括一切将shell编码引入到另一个过程或一切相近的函数公式,它将系统软件权利授于需要的过程,只应用它的PID做为主要参数。
Sleep(200)
在恶意程序启用elevate()函数公式后,它要做的第一件事便是在200ms的固定不动时间段内进到Sleep()。
根据启用Sleep(200)运行系统漏洞利用程序流程,可以在Cutter中见到
如今还不彻底清晰为何Sleep(200)会产生在进攻模板中,研究人员猜疑这也是为了防止很多不必要的不稳定,尤其是由于这种利用绝大多数是根据時间(UAF,races)。因而,稍等一下以便与I/O和运行内存浏览有关的抽奖活动,可以提升可靠性。因为该系统漏洞利用程序流程是恶意程序的一部分,因而在实行系统漏洞利用程序流程以前,全部与恶意程序有关的编码都是会造成CPU/disk/RAM短暂性上升,因而在持续开展具体系统漏洞利用以前让状况有些减轻可能是更有意义的。针对短期内最高值负载(在运行新过程,从硬盘载入/写入文档等时当然会产生),,等候200ms就充足了。
虽然研究人员在近期的实例中留意到了这类方式的转变,但仍可以在研究人员发觉的9种利用中寻找该函数公式。
与PlayBit的较为:PlayBit在其利用中没有该类函数公式。
电脑操作系统案件线索鉴别
该系统漏洞利用程序流程从其美睡眠质量中醒来时后,便会马上鉴别并校正总体目标Windows的版本号,便于为尽量多的系统版本号给予适用。从研究人员的实例中,开发人员应用了二种技术性来查看电脑操作系统:
分析ntdll.dll的标头
这也是最经常使用的技术性,ntdll.dll中的句柄用以搜索IMAGE_NT_HEADERS中的偏移,从该偏移量中可以分析MajorOperatingSystemVersion和MinorOperatingSystemVersion字段名。
GetVersionEx()
该技术性通常与之前的工艺一起应用,而且仅在2016年至2017年初的实例中应用。这可能是因为该API如今已落伍。
启用GetVersionExW()来得到Windows的版本号,当在Cutter中所显示
这2种技术性的目标是要查看电脑操作系统的关键版本号和主次版本号,并相对地配备系统漏洞利用程序流程的局部变量。
虽然大部分系统漏洞利用程序流程都适用普遍的Windows版本号,但Volodya好像从来不关注总体目标的特殊ServicePack,也无须关注它是不是Windows网络服务器。除开对仅用以CVE-2019-1458的系统漏洞的特殊Windows10搭建版本号有兴趣以外,研究人员跟踪的网络攻击仅应用关键版本号和主次版本号,我不相信爱情。
与PlayBit的较为:再度应用GetVersionEx(),通常稍候在全过程自然环境块(PEB)自身中额外分析关键和主次号,如下图7所显示。ntdll.dll,PlayBit还会继续从GetVersionEx()輸出中获取更多信息,例如电子计算机的ServicePack,乃至查验总体目标电子计算机是不是应用网络服务器电脑操作系统。
从PEB中获取关键版本号和主次版本号,如Cutter所显示
这也是2个网络攻击在犯案技巧上的显著差别,他们不但以不一样的形式获取同样的信息内容,并且Volodya对信息内容的兴趣爱好比不上PlayBit,即使他们都利用同样的系统漏洞(CVE-2016-7255)。
通常,2个网络攻击都有着详尽的相应于版本号的配备,一旦明确了电脑操作系统版本号,他们便会从这当中载入有关信息。彼此之间的关键差别取决于,Volodya系统漏洞利用程序流程中的编码流非常少取决于电脑操作系统版本号,而PlayBit则应用多种多样取决于电脑操作系统版本号的if-check来结合多种多样变换。相反,这会危害她们对准确版本号详细资料的不一样兴趣爱好。
文中翻譯自:https://research.checkpoint.com/2020/graphology-of-an-exploit-volodya/