微软字体解析服务远程代码执行漏洞分析

3月23日,微软公司发布了一份编号ADV200006的紧急漏洞通告,通告表示有在野攻击行动使用了位于Adobe Type Manager Library中的两个远程代码执行0Day漏洞,由于漏洞严重,发布该通告指导用户在补丁发布前规避风险。 4月15日的补丁日中,微软发布了针对此风险通告的补丁外,还对一个字体库漏洞CVE-2020-0687进行修复,诺亚实验室第一时间对补丁进行了比对分析,并确认了漏洞的利用性,两个漏洞均属于高危远程代码执行漏洞,由于CVE-2020-0938/CVE2020-1020已有安全团队验证并形成POC,本文将会着笔于vincss报告的CVE-2020-0687进行简要技术分析。 根本原因漏洞产生于字体处理库fontsub.dll的ReadTableIntoStructure中,由于循环逻辑中读取数据赋值检查不严格,在数据拷贝到目的堆后超过原申请的堆内存大小,形成堆溢出漏洞。 补丁细节分析通过补丁比对,我们很快确认了问题函数 __int64 __fastcall ReadTableIntoStructure(__int16 *a1, _WORD *a2, unsigned __int16 *a3) 通过前后差异判别,可以看出补丁代码将while循环的一个返回条件放到了循环入口处,其目的是为了防止当变量v5中的变量大于v3[4]中保存的的变量时,会执行一次while循环的第一句赋值代码。 故原始漏洞代码中存在判断不严谨的情况,将会导致ReadGeneric中读取到的4字节数据,放入至一个结构体数组中: 通过跟踪v3和v5返回上层调用函数可知,v3在上层函数MergeEblcEbdtTables中,是作为一个从新申请的堆内存的大小参数进行传递的;而v5则是作为ReadTableIntoStructure中第三个参数,可以理解为一个类似Table大小的变量。 而此处的堆空间大小则是由v92来决定,根据跟踪的情况,…

HackingTeam新活动,Scout/Soldier重回视野

背景HackingTeam是全世界知名的网络军火商,在2015年遭遇攻击后近400G的内部数据和工程化武器几乎被完全公开,在此之后一家名为Tablem的公司并购了"被破产"的HackingTeam,此后HackingTeam陷入沉寂。 360安全大脑在2018年"刻赤海峡"事件中捕获的一起针对俄罗斯的APT事件中,使用的后门疑似来自HackingTeam,在2019年一起影响中亚地区的APT事件中,同样发现了HackingTeam后门的身影,诸多信息表明HackingTeam依旧在全球恶意网络活动中活跃。 2020年1月,360安全大脑下诺亚实验室在日常的狩猎运营工作中,发现了一例高度模块化的RAT,并认定为HackingTeam RCS框架中的Soldier木马程序,在3月前夕,我们再次关联到该次活动使用Soldier的前置片段,并将其认定为HackingTeam RCS框架中的Scout木马程序,自此形成较为完整的活动拼图。 攻击流程及特点从目前掌握的情况,本次HackingTeam RCS重现主要分为两个阶段 第一阶段 通过伪装网络电视软件LiveNetTV,释放RCS框架中的Scout木马,进行系统基础信息收集,并具有一定ANTI机制第二阶段 通过伪装Java程序并执行RCS框架中Soldier木马,进行系统信息获取并窃取浏览器密码和cookie,窃取Facebook,Gmail,Twitter等信息两个阶段的木马程序均使用了VMProtect加壳,通过历史HackingTeam泄露资料研究可知,两个木马具备创建共享内存空间联动的特性,这也是二者经常伴生出现的原因。 在本次捕获的样本中,我们发现样本具备以下特点: 使用了此前未知的有效证书签名与此前泄露的RCS相比,现活跃的攻击样本均做了一定程度订制和变种活动集中出现于2019年10月-2020年3月依旧使用VMP壳保护Unpack VMP此处我们用到两种脱壳VMP的方式,一种用于提取关键信息,另一种则是进行完全脱壳。 方法一 通过运行样本,当样本开始解包自身时可以进行内存dump,一些关键信息可以在这个阶段dump拿到,…

基于AppleScript的利用技术

背景在恶意网络活动研究领域,针对个人终端的攻击Windows总是独占鳌头,但近年来MacOS的终端数上涨,让很多攻击团伙也开始聚焦针对MacOS的恶意软件利用,但即便针对MacOS的攻击,对手也倾向使用python/shell类脚本,恶意文档扩展一类的控制方案或入口利用。而AppleScript这一MacOS的内置脚本语言至今已沿用接近27年,却在安全研究领域鲜有人提及。我们在日常的研究工作中对基于AppleScript的恶意软件利用技术进行了适当总结和狩猎回顾,并提出一个依托AppleScript独有特性的攻击方法。 AppleScript特点AppleScript是MacOS的特有脚本语言,甚至在iOS或者iPadOS上都不能使用,且作为一门脚本语言AppleScript花里胡哨的"自然语言"古怪设计思路也常被开发者诟病,AppleScript试图以humanized的方式书写但又强硬规定了语法,导致代码及其冗长且背离自然语言书写思路。 如在当前目录下创建文件test,AppleScript基础语法书写应为: tell application "Finder" set selection to make new file at (get insertion location) with properties {name:"test"} end tell此外,由于AppleScript底层需要通过事件管理器(Apple Event Manager)进行构造和发送Apple事件,他的执行效率也极低,所以在实际场景中无论是用户还是管理员,都极少使用AppleScript。 从AppleScript调用Apple Event…