1. 介绍
Turla,又名Snake,是一个间谍组织,因在2008年入侵一些受到严密保护的网络,比如美国中央司令部,而臭名昭著[1]。从那以后,他们一直忙于攻击世界各地的外交官和军事目标。其中,最引人注目的受害者是2013年的芬兰外交部[2],2014年至2016年间的瑞士军工公司RUAG[3] 以及最近在2017年底或2018年初的德国政府[4]。
后来,几家报纸迅速公布了攻击者使用的一些手段[5]:他们使用电子邮件附件来控制恶意软件,并从系统中转移被盗数据。然而,没有关于这个后门公开的技术信息。在此,我们发布我们对这个通过电子邮件发送的PDF附件控制的Turla后门深入分析。
据媒体报道[6],德国外交部的几台电脑被这个后门感染。此次攻击显然始于2016年,并于2017年底被德国安全部门发现。攻击者首先感染了联邦管理大学联邦公共管理学院(Hochschule des Bundes),并通过其网络移动,直到2017年3月能够访问外交部网络。因此,Turla攻击者可以访问一些高度敏感的信息(例如德国外交部工作人员发送的电子邮件)将近一年。
我们的调查还显示,针对微软Outlook的恶意软件曾被用于攻击各种政治和军事组织。我们确定了另外两家欧洲政府和一家大型防务承包商的外国办事处受到了威胁。我们的调查还发现了数十个由Turla攻击者注册的电子邮件地址,这些地址被用于接收受害者的泄漏数据。
2. 摘要
Turla Outlook后门有两个有趣的功能。
首先,它通过将所有发出的电子邮件转发给攻击者来窃取电子邮件。它主要针对被广泛使用的邮件客户端Microsoft Outlook First,但是同时也针对一款在东欧很受欢迎的邮件客户端——The Bat![7]。
其次,它使用电子邮件消息作为其命令和控制(C&C)协议的传输层。数据,比如通过后门命令请求的文件,会被附在电子邮件上的特殊PDF文档窃取,命令也会在PDF附件中收到。因此,它的行为特别隐秘。需要注意的是,无论是PDF阅读器还是Outlook中都没有使用漏洞。实际上,恶意软件能够从PDF文档中解码数据,并将其解释为后门命令。
目标与传统的Turla操作一致。我们确定了几家欧洲政府和防务公司与这个后门有牵连。因此,攻击者似乎使用它来在最受限制的网络中保持持久性,在这些网络中,配置良好的防火墙或其他网络安全系统可以有效地通过HTTP(S)阻止传统的C&C通信。图1显示了恶意软件中的字符串包括一些政府相关的顶级域。MFA代表外交部,.gouv是法国政府使用的子域名(.gouv.fr),ocse是欧洲安全与合作组织。
图 1 // 在恶意软件字符串中发现的政府相关域名根据我们的研究和遥测技术,我们确定这个后门至少从2013年就已经在野外了。与往常一样,Turla不可能依赖编译时间戳识别,因为它们通常是伪造的。然而,我们相信第一个版本的编译时间早于2013年,因为2013年发布的版本已经相当先进。然后我们找到了一个更基础的版本,它的编译时间戳是2009年,但是我们无法以合理的准确性确定它的发布日期。
图2所示是基于我们的遥测技术和公开可用信息的时间轴。
图 2 // Turla Outlook后门时间线3. 整体结构
在最近的版本中,后门是一个独立的动态链接库(DLL),它有安装自己和与Outlook和The Bat! 邮件客户端交互的代码,尽管只有Outlook的安装功能被实现。因此,它可以被任何其他能够执行附加进程的Turla组件轻易删除。
在本节中,我们的分析基于2017年前6个月发布的样本。还可能包括一些关于较旧或较新样本的特定信息。
3.1 安装
为了安装后门,攻击者执行名为Install的动态链接库去导出或使用regsvr32.exe去注册它。参数为目标邮件客户端。图3显示了不同的可能值。然而,在最近的版本中,只有Outlook的安装功能被实现了。
图 3 // 安装的可能参数没有硬编码路径,所以动态链接库文件可能位于磁盘上的任何位置。
又一次,Turla开发者依赖于COM对象劫持来建立他们的恶意软件的持久性。这是一种在野外使用多年的著名技术,尤其是在Turla小组中[8]。它包括通过修改Windows注册表中相应的CLSID条目来重定向目标应用程序使用的COM对象。
既然是这样,在Windows注册表中进行以下修改:
{84DA0A92-25E0-11D3-B9F7-00C04F4C8F5D} 是被劫持的CLSID。它对应于“Outlook协议管理器”,并从理论上加载合法的Outlook动态链接库OLMAPI32.DLL。
{49CBB1C7-97D1-485A-9EC1-A26065633066} 与任何已知的软件无关。这个CLSID值是任意的,仅用作COM重定向的占位符。
一旦进行了修改,每次Outlook加载这个COM对象时都会加载后门动态链接库。根据我们的观察,这似乎发生在Outlook启动时。
这个COM重定向不需要管理特权,因为它只适用于当前用户。存在一些保护措施来防止这种恶意重定向。参考MSDN[9]:
然而,Outlook进程运行在中等完整性级别,如图4所示。
因此,它不受每个用户COM重定向的保护。
图 4 // Outlook进程的完整性级别最后,使用COM劫持允许后门保持隐身,作为后门的路径, C:\Users\User\Documents\mapid.tlb
在这个例子中,没有显示在插件列表里,如图5所示。
图5 // Outlook 插件列表—— mapid.tlb未显示即使恶意软件没有显示在Add-Ins列表中,它也使用了标准的Microsoft API,简称 MAPI(消息应用程序编程接口),与Outlook交互。
正如在第2节的时间线中解释一样,最近版本的后门不再包含注册The Bat!插件的代码。然而,管理邮箱和电子邮件的所有代码仍然存在。 因此,如果需要的话,可以自行设置。
为了注册为The Bat!的插件,恶意软件正在修改%appdata%\The Bat!\Mail\TBPlugin.INI文件。 这是为The Bat!注册插件的合法方法,因为反垃圾邮件插件等一些插件也依赖于它。
注册后,每次The Bat!启动时,都会调用后门动态链接库。图6显示了动态链接库实现一些插件所需的导出。
图 6 // The Bat! 插件的标准导出3.2 与邮件客户端交互
与邮件客户端的交互根据目标客户端的不同而不同。
微软维护着一个API,消息应用程序编程接口(MAPI),允许应用程序与Outlook交互[10]。这个Turla后门利用这个API访问和管理使用受控系统的人的邮箱。
首先,它使用MAPILogonEx连接到消息传递系统,如图7所示。
图 7 // MAPIlogon第二个参数(lpszProfileName)为空,且MAPI_USE_DEFAULT 值已设置。根据文档:
相反,MAPI_NEW_SESSION 值没有设置。根据文档:
我们相信Outlook会用MAPI_ALLOW_OTHERS这个标志打开默认会话。因此,后门将使用这个先前打开的会话来访问默认的邮箱配置文件。所以为什么在后门插件初始化时没有提示输入配置文件名称和密码就说得通了。
这样,它就可以访问完整的邮箱,并且可以使用其他MAPI函数轻松地管理它。它将遍历各种消息存储,解析电子邮件,并在收件箱和发件箱上添加回调。日志文件总结了这个过程:
图 8 // 日志文件(未经修改的用户名和电子邮件地址)它使用HrAllocAdviseSink函数为每个收件箱和发件箱文件夹设置回调,如图9所示。
图 9 // 发件箱文件夹上的回调注册收件箱的回调
收件箱回调首先记录关于传入电子邮件的元数据。 这包括发送方、接收方、主题和附件名称。下面是一个示例:
图 10 // 记录新收到的电子邮件 (英文拼写错误属于开发者的错误)然后它解析电子邮件及其附件,以检查它们是否包含来自攻击者的命令。这个功能将在3.3节中详细研究。
最后,它通过检查传入的电子邮件是否包含攻击者的邮箱地址来截获未发送报告(NDR)电子邮件。因此,任何包含攻击者邮箱地址的电子邮件也将被丢弃。
如果受害者变得怀疑,并联系他们的IT支持,这可能就会造成一个问题,因为受害者将无法看到答复。
发件箱回调
与收件箱回调类似,发件箱回调将记录每个发出电子邮件的元数据。它会生成相同的日志:
图 11 // 记录发送出去的邮件。攻击者的邮箱地址部分被编辑过。但是,你可能会注意到,它还会将每个发出的电子邮件转发给攻击者的邮箱地址[redacted]@gmx[.]com。GMX是一种受欢迎的免费电子邮件服务。这两个特征解释了为什么攻击者选择在那里注册电子邮件,因为一个组织通常不会阻止gmx.com域名。
这个电子邮件地址在我们研究的示例中是硬编码的,如图12所示,但是它可以通过一个后门函数进行更新。他们似乎采用firstname.lastname@gmx[.]com的格式模仿真正雇员的名字为每个目标组织注册至少一个电子邮件地址。由于很难将非法地址与受害者的真实私人邮箱地址区分开来,这样的做法保持了秘密性。另外,我们在2018年6月分析样本时,已经无法联系到该地址了。
图 12 // 攻击者的硬编码邮箱地址后门会定期向攻击者的电子邮件地址发送报告。它包含一些惟一的标识符,如MAC地址、完整的日志文件和命令结果(如果有的话)。然后,它使用3.3.2.2节后面所述的MISTY1对数据进行加密,并构造包含加密内容的有效PDF。
在加密的数据块之前,文档中包含一个白色的,尺寸为1x1像素的 jpeg图像,该图像被硬编码在恶意软件中。它允许他们创建一个有效的PDF文档,打开后仅显示一个空白页。
最后,它附加PDF并将电子邮件发送到攻击者的地址。 图13是后门创建的PDF示例。
图 13 // 由后门生成的PDF文件开头,用于窃取目的此报告由发件箱回调函数发送,这意味着电子邮件将在用户发送合法电子邮件的同时发送。 通过这种方式,它可以防止后门在不寻常的时间发送过滤邮件,从而便于检测。这是一种非常隐秘的命令和控制机制,很难在野外捕捉到。
由于后门在用户使用电脑和Outlook的同时工作,所以不得不想办法隐藏可能出现在屏幕上的各种恶意行为,比如攻击者发来的电子邮件。
首先,后门总是删除所有发送到攻击者或接收到攻击者的电子邮件。 如图14所示,可以在几秒钟内看到一个新消息到达,但它没有显示在邮箱中。
图 14// 未读邮件其次,它钩起CreateWindowsEx函数,如图15和图16所示。它防止创建NetUIHWND类型的窗口,这种类型是Outlook在屏幕右下角显示的通知所使用的窗口类型。
图 15// 设置CreateWindowsEx钩子 图 16// CreateWindowsEx 钩子图17是NetUIHWND窗口的一个示例,当接收到新消息时,Outlook通常会触发这个窗口。由于CreateWindowEx钩子,当攻击者向后门发送电子邮件时,不会向用户显示任何通知。
图 17 // 新消息通知尽管不再存在为The Bat!注册插件的安装函数,但仍有一些遗留代码实现了与Outlook相同的功能,但使用的是The Bat! API。
如图18所示,它使用管道与The Bat!通信,以获取用户信息、读取和发送电子邮件。然而,所有剩余的函数,例如用于记录电子邮件或执行命令的函数,都与Outlook完全相同。
图 18 // The Bat! 管道3.3 后门
如前一节所述,这种恶意软件能够操纵和窃取电子邮件。 这也是一个通过电子邮件控制的全功能后门,可以独立于任何其他Turla组件工作。因此,后门不需要完全互联网连接,可以在任何能够发送外部电子邮件的电脑上工作。这在严格控制的环境中非常有用,例如,高度过滤的互联网连接。不仅如此,即使攻击者的电子邮件地址被禁用,他们仍然可以通过从另一个地址发送命令重新夺回控制权。这封电子邮件也将对用户隐藏,因为它包含了由后门执行的命令。因此,这种恶意软件几乎和检查传入网络流量的rootkit一样有弹性。
PDF格式
早在2018年初,多家媒体声称Turla攻击者使用邮件附件来控制受感染的机器。
事实证明这些信息是准确的。深入分析Turla Outlook后门使我们能够确定这些命令是如何被恶意软件发送和执行的。
这些命令通过电子邮件发送,与精心制作的PDF附件一起。我们无法捕获包含命令的任何实际PDF示例,但它们可能是有效的PDF文档,就像后门生成的用于窃取目的的PDF文档一样。
从PDF文档中,后门能够恢复攻击者在日志中所称的容器。这是一个二进制blob,具有特殊格式,包含用于后门的加密命令。图19显示了负责提取此容器的程序。从技术层面来讲,附件不一定得是有效的PDF文档。唯一的要求是它包含了正确格式的容器。
图 19 // 从PDF中提取命令容器该容器有一个非常复杂的结构,有许多不同的检查。虽然它的设计初衷是为了防止通信错误,但我们认为这种结构主要是为了阻碍逆向工程过程。图20为容器结构的总结。
图 20 // 命令容器的结构在初始化向量之前,有一个指令描述符列表。下表描述了不同的ID值:
ID为2和4的描述符用于检索加密和解压函数,如图21所示。然而,只有一种加密算法和一种压缩算法在恶意软件中实现。因此,这些字段的唯一目标是使后门分析复杂化。
图 21 // 解压缩和解密函数偏移量命令位于结构的最后一部分。它们使用MISTY1加密,用bzip2压缩。在同一个PDF中,可以包含许多不同的命令,每个命令可以有多个参数。
这里我们描述了使用的加密算法。
异或加密
容器的一部分(从第一个CRC32开始)与自定义函数生成的字节流进行异或。它需要一个种子来传递给srand,通过调用rand来生成第二个种子。第二个种子在函数中使用,如图22所示,作为参数与异或的数据一起使用:
图22 // 异或流函数(HexRay反编译输出)MISTY1
Turla开发者喜欢在他们的后门中使用不太常见或经过修改的加密算法:
• 对于Carbon和 Snake,他们使用CAST-128 [11]
• 对于Gazer,他们使用RSA的自定义实现 [12]
• 对于Mosquito,他们使用Blum Blum Shub作为异或字节流的随机数生成器[13]
• 对于Uroburos rootkit,他们使用了ThreeFish的修改版[14]
在Outlook后门中,他们使用了MISTY1 [15] ,这是一种对称加密算法,由三菱电机的密码学家在1995年创建。 其具有以下性质:
• 对称
• 128位密钥
• 使用两个预计算表:s7(128字节)和s9(2048字节)
• 使用3个函数:FL,FO,FI
• FL在输入字节和扩展键之间执行一些异或操作
• FO 也在条目和扩展键之间执行异或操作,但也使用FI
• FI 使用s7和s9执行非线性替换
• 在64位区块上操作
• 执行8个循环(循环是对FO函数的调用)
• 使用一个Feistel密码
图23 // MISTY1 图 24 // 对区块进行8次循环加密然而,Turla开发者对算法做了稍微修改:
• 他们在FI函数中添加了两个异或操作,如图25所示
• 128位密钥是由两个硬编码的1024位密钥加上一个2048位初始化向量生成的。
• 他们修改了s7和s9表。这击败了所有基于s表值识别加密算法的工具。修改后的s表和原来的s表都包含相同的值。
他们被简单地打乱了。
图 25 // FI函数的比较(上:原始的,下:Turla实现)后门执行了许多不同的命令,从文件发送到命令执行。表2显示了不同的功能:
对于0x29函数,Turla开发者从Empire 项目中的PSInject[16]复制了代码。它允许他们在一个名为PowerShell Runner的特殊可执行文件中运行PowerShell代码,而不需要调用PowerShell.exe。主要的优点是恶意软件仍然能够执行PowerShell命令,即使PowerShell.exe在受控计算机上被禁止了。
在对恶意软件进行了全面分析之后,我们制作了一个PDF,可以通过后门成功执行。 图26显示了Outlook收到包含该PDF文档的电子邮件后,消息框的执行和计算器(calc.exe)的启动。它展示了这个后门,显然是为了通过PDF电子邮件附件接收命令而设计的,它是起作用的,可以由任何理解其自定义格式的人控制。
图 26 // 执行PDF文档中指定的命令3.4更多功能
除了其后门功能实现作为一个电子邮件客户端插件,该恶意软件有两个功能值得进一步描述。
该恶意软件不使用任何配置文件,但在windows注册表键值HKCU\Software\Microsoft\Windows\CurrentVersion\Settings\ZonePolicy\下维护着一个小型虚拟文件系统。其他Turla后门,如Gazer [12],也在Windows注册表中保留着一个虚拟文件系统。
我们能够理解一些注册表值的含义,如表3所示。
正如前面提到的,该程序维护着一个日志,通过电子邮件消息附件中的PDF文档,该日志被定期地泄漏给骇客。它被存储在%appdata%/Microsoft/Windows/scawrdot.db这个位置,且使用硬编码的512字节异或密钥进行加密。每次将其发送给攻击者时都会被立刻清除。因此,在进行取证分析时,可能无法看到后门的所有历史活动,而只能看到近期的。
日志特别详细,可能允许Turla攻击者详细监视后门的活动。图27是解密日志的示例。
图 27 // 解密后的日志文件4. 结论
本报告显示,Turla的开发者在开发秘密后门的时候,从来都不缺乏创意。据我们所知,Turla是目前唯一一个完全用电子邮件(更确切地说是通过PDF附件)来控制后门的间谍组织。
虽然Turla 后门并不是第一个使用受害者真实邮箱接收命令和窃取数据的后门,但它是第一个使用标准API(MAPI)与Microsoft Outlook进行通信的公开后门。 与我们分析[17]过的使用Outlook Express的老式邮件控制后门进行邮件读取和内容写入相比,这是一个很大的改进。
相比之下,Turla后门甚至可以与Outlook的最新版本兼容。
由于它能够通过与受感染机器之间看似合法的通信进行控制,并且不依赖于任何特定的电子邮件地址,Turla后门具有极高的隐蔽性和弹性。从这个意义上说,Outlook后门程序类似于rootkit,比如Uroburos就是从传入的网络流量接收命令。
我们的研究表明,受到威胁的组织不止面临着被设置后门的Turla小组监视的风险。后门只执行它接收到的命令,但不能够识别攻击者。因此,很有可能其他的攻击者已经对后门进行了逆向工程,并找到了控制它的方法,同时也在利用后门对受害者进行监视。
考虑到这种威胁的严重性,我们决定用PDF格式的文档来控制Turla后门,以帮助防御者理解、监视和减少其活动。
ESET的研究人员将持续监测Turla的发展,以帮助防御者保护他们的网络。
后门样本可以在GitHub上找到。如有疑问,或想提交与本主题相关的样本,请联系我们: threatintel@eset.com.
参考
1 B. KNOWLTON, “Military Computer AttackConfirmed,” New York Times, 25 08 2010. [Online]. Available:
https://www.nytimes.com/2010/08/26/technology/26cyber.html?_r=1&ref=technology. [Accessed 09 04 2018].
2 “Russian group behind2013Foreign Ministry hack,” YLE, 13 01 2016. [Online]. Available:
https://yle.f i/uutiset/osasto/news/russian_group_behind_2013_foreign_ministry_hack/8591548.
3 MELANI, “Technical Report about the Malware usedin the Cyberespionage againstRUAG,” 23 05 2016.[Online]. Available: https://www.melani.admin.ch/melani/en/home/dokumentation/reports/technical-reports/technical- report_apt_case_ruag.html.
4 P. Oltermann, “German government intranetunder ‘ongoingattack’,” The Guardian, 01 03 2018. [Online].
Available: https://www.theguardian.com/world/2018/mar/01/german-government-intranet-under-ongoing-attack.
5 M. Schlee, “Hackers used Outlook for cyberattack on German government: report,” Politico, 06 03 2018. [Online]. Available: https://www.politico.eu/article/ report-hackers-used-outlook-for-cyberattack-on-german-government/.
6 R. Pinkert and H. Tanriverdi, “Hackerangriffgegen Regierung war Teil weltweiter Spähaktion,”Süddeutsche Zeitung,02 03 2018. [Online]. Available: http://www.sueddeutsche.de/digital/
it-sicherheit-hackerangriff-gegen-regierung-war-teil-weltweiter-spaehaktion-1.3890332.
7 “The Bat!,” Ritlabs,[Online]. Available: https://www.ritlabs.com/en/products/thebat/.
8 P. Rascagneres, “COM Object hijacking: the discreet way of persistence,” 30 10 2014. [Online]. Available:
https://www.gdatasoftware.com/blog/2014/10/23941-com-object-hijacking-the-discreet-way-of-persistence.
9 “ApplicationCompatibility: UAC: COM Per-UserConfiguration,” Microsoft, [Online]. Available:
https://msdn.microsoft.com/en-us/library/bb756926.aspx.
10 “Outlook MAPI Reference,” Microsoft, 04 04 2016. [Online]. Available:
https://docs.microsoft.com/en-us/off ice/client-developer/outlook/mapi/outlook-mapi-reference.
11 ESET Research, “Carbon Paper: Peeringinto Turla’s second stage backdoor,” ESET, 30 03 2017. [Online].
Available: https://www.welivesecurity.com/2017/03/30/carbon-paper-peering-turlas-second-stage-backdoor/.
12 ESETResearch, “Gazing at Gazer - Turla’s new second stage backdoor,” ESET, 08 2017. [Online]. Available:
https://www.welivesecurity.com/wp-content/uploads/2017/08/eset-gazer.pdf.
13 ESET Research, “Diplomats in Eastern Europe bitten by a Turla mosquito,” ESET, 01 2018. [Online]. Available:
https://www.welivesecurity.com/wp-content/uploads/2018/01/ESET_Turla_Mosquito.pdf.
14 S. L.Berre, “Hey Uroburos!What’s up ?,” [Online]. Available: https://exatrack.com/public/Uroburos_EN.pdf.
15 M. Matsui, “New block encryption algorithm MISTY,”in Fast SoftwareEncryption, 1997.
16 “ Inject PowerShell into any process,”EmpireProject, [Online]. Available: https://github.com/EmpireProject/PSInject.
17 T. Gardoň, “Espionage toolkit targetingCentral and Eastern Europe uncovered,” 01 072016. [Online]. Available:
https://www.welivesecurity.com/2016/07/01/espionage-toolkit-targeting-central-eastern-europe-uncovered/.
这里提供一些后门样本的哈希值,通过文件名,或者根据注册表键值。
5.1 哈希
5.2 文件名
• %appdata%/Microsoft/Windows/scawrdot.db
• %appdata%/Microsoft/Windows/flobcsnd.dat
• mapid.tlb
5.3 注册表键值
• HKCU\Software\Microsoft\Windows\CurrentVersion\Settings\ZonePolicy\
• HKCU\Software\Classes\CLSID\{49CBB1C7-97D1-485A-9EC1-A26065633066}
• HKCU\Software\Classes\CLSID\{84DA0A92-25E0-11D3-B9F7-00C04F4C8F5D}
译者:cnRay
时间:2018年8月23日星期四
白皮书PDF版下载链接:
网友评论