图3:针对性攻击Dark Seoul在2013年3月达到顶峰,但其历史可以追溯到至少2009年,即木马源代码初次编译时。恶意软件的后续变种也参与了此次攻击。
迈克菲实验室已经确定,间谍活动发生于3月20日的攻击之前,最有可能是为了获得目标的情报或在其他一些方面使攻击者受益。这种间谍活动一直是隐蔽的,通过研究和协作才得以发现。我们也怀疑,在擦除系统之前,攻击者就了解了其中运行的安全软件,这是因为攻击使用的一些变种伪装为反恶意软件更新文件。
在此次攻击之前,攻击者已经利用各种自定义工具隐蔽了若干年。对Dark Seoul的调查显示,至少自2009年开始针对韩国的间谍活动就开始了。这次攻击行动基于相同的代码,试图渗透特定的韩国目标。因为“Troy”一词不断地出现于恶意软件的编译路径字符串中,我们将其称为Troy行动。此次攻击事件的主要嫌疑人是NewRomanic网军组织,该组织经常在其代码中使用罗马和古典术语。在分析攻击事件之前的恶意软件组件时,我们发现了相似和相同的属性,这使得我们将其与3月20日攻击所使用的3Rat远程管理工具客户端和追溯到2010年的样本联系起来。另外,我们发现攻击者事前访问受害者的网络,上传MBR擦除组件并加以传播。被称为“10 Daysof Rain”的活动可能就是Troy行动的副产品;分析表明,恶意软件Concealment Troy用于这些攻击中。
工具和战术NSTAR:2010-2011年
NSTAR似乎是Troy家族的第一个产品版本。该木马基于2009年初次出现的军事间谍活动的恶意软件创建,Troy家族的后续变种以与NSTAR相同的方式使用组件。它包括一个共享的DLL(bs.dll),该DLL出现于2010年和2011年的变种中。后续变种使用修改后的版本HTTPSecurityProvider.dll,它所使用的文件映射函数几乎与bs.dll相同。大多数变种都是从”Work”目录编译的,所有版本都是这样。DLL使用微软Visual C++版本6编译。这些迭代发现于2010-2011年。
NSTAR bs.dll的调用图与HTTP Troy的完全一样。它们的编译时间相隔至少一年。
图 5:HTTP Troy变种的bs.dll的调用图
该DLL被编译于2011年3月3日,包括在2010年年底编译的OCX组件。OCX使用了一个非常不同的编译路径,但后门bs.dll与后续版本的基本相同。
“Work”目录的路径如下所示,该目录也用于编译于2013年的Troy变种Concealment Troy和3Rat Client。
E:\Work\BackUp\2011\nstar_1103\BackDoor\BsDll-up\Release\BsDll.pdb
在该变种中,我们还发现了一个文件映射函数,该函数与大多数较新版本的一致。开头的独特字符串“FFFFFFF”是相同的,之后的变种也是如此。
该恶意软件创建了一个IRC通道来接收实时命令,这与军事间谍恶意软件的做法一致。
图 7:NSTAR以HTTP作为主通道与其控制服务器通信
Chang和EagleXP:2010年
2010年的另一个变种EagleXP与NSTAR和HTTP Troy紧密相关,使用和它们同样的组件。EagleXP使用下述编译路径:
D:\VMware\eaglexp(Backup)\eaglexp\vmshare\Work\BsDll-up\Release\BsDll.pdb
在2010年后的其他恶意软件中,我们也发现了“Work”目录,编译于2010年5月27日的一个变种也包含了非常相似的编译路径。我们能够从控制服务器获得一些流量。
D:\\Chang\\vmshare\\Work\\BsDll-up\\Release\\BsDll.pdb
5月27日的变种称为Chang,与其他Troy变种的运行方式相同,而且使用相同的bs.dll。一家韩国制造网站既托管控制服务器,也托管着IRC服务器。
Chang和EagleXP基于与NSTAR和后续变种相同的代码。这些相似之处说明攻击者针对韩国目标已经超过3年了。
IRC僵尸网络的结构
在调查中,我们分析了攻击者的控制僵尸网络,该僵尸网络一直使用到2013年。基础设施依赖于托管IRC服务器的受感染的韩国网站。反过来,受感染的客户端使用RSA加密YuIRCS服务器通信,并且使用从微软加密API库导入的函数。
攻击者硬编码bs.dll中的控制域,并将其置于最终编译的木马代码中。每一代木马的每个变种都包含与控制服务器有关的不同的硬编码字符串。这表明,攻击者首先感染未来的IRC服务器站点,然后编译组件并将其传播到受感染的目标中。
图 12:bs.dll中的硬编码地址
Bot的昵称可以通过出站流量和写入Windows注册表的信息来确定。2010年6月的一个变种使用的昵称是BS^000C2918AB11,密码是wodehaopeng。恶意软件加入IRC通道#god,并向可能的控制服务器发送一些私人信息以便接收命令。
PRIVMSG X^111112352643[1] :
A5TbaKuqCO641tirNl51rFLdNHeUhMbUiJ93sO5rip9X7AZG0Y8rlZVmItEEfDrmNL19OpJrv2khO5WbflTqxs7FVgzUNfdvtnjbObWeNNVPlF/yXPQIEDj/4YnidGDAqp7m8lFpnC2Pyz2+6OOooEUMqG6rKImyFQLM/V7K69E=
Http Dr0pper YN^000E0C3CB868
HTTP Troy:2011年
2011年,攻击者创建了木马HTTPTroy(根据其编译路径字符串命名);这是Troy木马家族的第一个变种。到目前为止,我们只发现了HTTP Troy的一个样本。执行时,该恶意软件会启动一个残缺的GUI(图形用户界面),允许受害者安装一个显示政治敏感图片的屏幕保护程序。我们不知道为什么开发者冒着木马可见的风险。屏幕保护程序组件(chonanship.scr)并不是恶意的,编译于2010年12月12日。它包含了与韩国军舰Cheonan沉没有关的图片。4 HTTP Troy编译于2011年3月20日,包含编译路径Z:\source\1\HttpTroy\BsDll-up\Release\BsDll.pdb。正如所见,HTTP Troy使用与NSTAR、Chang和EagleXP变种相同的DLL。该路径包含于用来创建与攻击者控制服务器通信的隐蔽IRC通道的DLL组件中。这种远程访问木马的主要投放器文件伪装成AhnLab的智能更新程序。原始文件名是SUpdate.exe。
执行后,远程访问木马与控制服务器sujewha.com连接。
图 13:HTTP Troy通过IRC与其控制服务器通信
HTTP Dr0pper:2012年
我们发现了一个第二代的木马HTTP Dr0pper,该木马基于HTTP Troy编译,其编译路径是Z:\1Mission\Team_Project\[2012.6~]\HTTPTroy\HttpDr0pper\Win32\Release。该木马是在2012年从HTTP Troy目录编译的,表明它是原始HTTP Troy的更新版本。
从此时开始,所有变种都重复使用特定的DLL。这个DLL在一些情况下被命名为HTTPSecurityProvider.dll并使用微软加密API来保护通信。我们可以通过文件映射函数来跟踪该DLL的使用。
图 14:Http Dr0pper使用相同的文件映射函数和DLL
我们可以确定另一个变种Tong(基于其被编译的目录)也重新使用该DLL,并且包含相同的函数。
图 15:Tong使用相同的文件映射函数和DLL
此外,一旦解码,编译于2013年的变种(如Concealment Troy)也包含同样的函数。而且,Concealment Troy的支撑DLL也重新使用了一些基础代码。
图 16:Concealment Troy使用相同的函数(如图所示的编码函数)
执行后,木马使用特定的参数(包括IRC昵称)与控制服务器建立连接。这种通信模式与Troy的其他变种是一致的。
Tong:2012年
Tong变种包含编译路径E:\Tong\Work\Op\1Mission\Team_Project\[2012.6~]\HTTPTrojan 2.0\HttpDr0pper\Win32\Release。它还使用相同的方法通信。该木马被编译于2012年8月28日。
表 5:Tong投放的组件
编译日期 编译路径
2012年7月4日 Z:\1Mission\Team_Project\[2012.6~]\HTTP Troy\HttpDr0pper\Win32\Release\3HttpDropper.pdb
2012年7月7日 Z:\1Mission\Team_Project\[2012.6~]\HTTPTroy\HttpDr0pper\Win32\Release\HttpSecurityProvider.pdb
2012年8月28日 Z:\1Mission\Team_Project\[2012.6~]\HTTPTroy\HttpDr0pper\Win32\Release\HttpSecurityProvider.pdb
2012年8月29日 Z:\1Mission\Team_Project\[2012.6~]\HTTPTroy\HttpDr0pper\Release\HttpSecurityProvider.pdb
TDROP:2013年
TDROP是HTTP Troy的第三代变种。TDROP使用两个DLL文件(payload32.dll和payload64.dll)的其中之一,并根据操作系统将其中之一注入svchost.exe。以前的版本使用bs.dll,其中包含与IRC僵尸网络通信的代码。TDROP拥有HTTP Troy所不具备的功能,能够在64位机器中运行,而且能够规避自动分析系统和模拟技术。
规避例程检查是否存在附加于父进程的调试器和追踪器。如果发现试图钩挂和监控API调用的仿真或沙箱系统,就会立即有效地终止父进程。
此外,TDROP使用一个DLL在Windows 7非特权帐户下运行。该变种编译于2013年1月15日,包含编译路径D:\Work\Op\Mission\TeamProject\[2012.11~12]\TDrop\Dropper32\Release\Dropper.pdb。主要的可执行文件(提取其他组件)通过路径Z:\Work\v3zip\misc.cand Z:\Work\v3unzip.c编译。这可能是一个将文件提取到桌面的压缩工具。
与HTTP Dr0ppe一样,TDROP使用伪装的投放器组件AhnlabUpdate.exe。唯一码几乎与Http Dr0pper所用的相同,只有最后两个字符不同。
图 20:TDROP重新使用http Dr0pper的代码
当主木马文件执行时,它会启动本身非恶意的RunCmd.exe。之后,RunCmd.exe根据相关RunCmd.ini文件中指定的文件名启动AhnlabUpdate.exe。这些文件在目录114719_507_AhnlabUpdateKit中创建,该目录位于桌面上的一个临时目录中。很明显,攻击者了解目标环境使用的安全产品,试图使该恶意软件尽可能地伪装为合法程序。AhnlabUpdate投放另一个可执行文件并加以运行,该文件是RAT有效载荷,能够与控制服务器建立连接。
Concealment Troy:2013年
另一个第三代Troy家族木马是Concealment Troy。该版本是从3Rat客户端的同一目录编译。Concealment Troy的某些组件表明其源代码最初编写于2010年,后来被编译并用于此次攻击事件。在受害者系统中安装后门的64位组件包含一个有趣的编译路径,该路径于2012年11月28日首次创建。
C:\test\BD_Installer_2010\x64\Release\BD_Installer_2010.pdb
32位版本于2013年1月23日编译,并包含以下编译路径:
Z:\\Work\\Make Troy\\Concealment Troy\\Exe_Concealment_Troy(Winlogon_Shell)\\SetKey_WinlogOn_Shell_Modify\\BD_Installer\\Release\\BD_Installer.pdb
表 6:Concealment Troy的编译时间线
与之前的版本不同,Concealment Troy不使用实时IRC控制(Concealment Troy是一个典型的HTTP僵尸网络)。
图 22:Concealment Troy不使用IRC实时控制,而是使用HTTP作为其主要的通道。
军事间谍恶意软件:2009-2013
迈克菲实验室发现了一个自2009年就开始运作的针对韩国的高级军事间谍网络。我们的分析表明,该网络与DarkSeoul事件有关联。此外,我们还确定了一个组织是自2009年10月以来一系列针对韩国的攻击活动的幕后黑手。攻击者设计了一个复杂的加密网络,旨在收集军事网络的情报。我们已经证实攻击者在2009年、2010年、2011年和2013年利用木马攻击军事网络。该网络利用RSA 128位加密的微软加密API来伪装受感染系统和控制服务器之间的所有通信。一旦恶意软件发现有趣的信息,就会加以提取并通过加密网络传输。特别有意思的是,在获取文件之前,攻击者利用自动侦察工具来确定内部系统包含哪些特定的军事信息。
这些攻击会发生在4个阶段:
• 初始的“水坑攻击”,这将导致内部系统的漏洞利用(2009年的案例,攻击者讲一个零日漏洞放置于军事社交网站)。之后的案例很可能利用鱼叉式网络钓鱼攻击,以便更快地获取正确的目标。
• 恶意软件在目标系统中自动执行侦察,以便寻找感兴趣的文档。恶意软件也可以获取密码、注册信息,以及有趣的文件目录列表。
• 根据发现的有趣文件的数量,攻击者可以从受感染系统请求目录下的内容。可以根据需要有选择地获取特定文件。
• 被窃取的文件通过HTTP加密通道发送到攻击者的服务器。
加密网络
攻击者的加密网络使用微软加密API库1.0版,以便加密HTTP和IRC的通信通道。加密使用128位的RSA密钥,使用的是以下代码。
该网络将HTTP和IRC作为辅助通道进行实时操作。IRC网络基于开源库libircclient5,任何通过该IRC通道发送的内容都用API加密。
以下命令由IRC支持,以便实时控制受感染的系统。这个功能使得攻击者能够按需发送和接收文件并执行远程命令。客户端和服务器之间发送的消息采用base64编码,然后用API加密;因此消息必须被解码和解密之后才可见。这种高度复杂的方法为安全的加密通道(不是SSL)提供了很大的灵活性。
• 获取bot版本和正常运行时间
• 获取目录中的文件清单(所有驱动器或特定路径的文件)
• 在一定时间内停止活动
• 下载文件
• 发送本地文件到服务器
• 执行shell命令
• 连接到IRC服务器
• 更改昵称(IRC)
• 加入通道(IRC)
• 断开IRC连接
• 从系统中删除bot
HTTP部分被设计来获取IRC僵尸网络使用的配置数据,并将窃取的文件发送给控制服务器。
加密网络扫描受感染的系统,并将包含有趣文件的系统进行分类。恶意软件不会提取每个通过驱动扫描发现的匹配文件;而是按照被感染系统包含的内容分配唯一的签名。攻击者不太可能从不那么有趣的系统中提取文件。目录内容被上传到攻击者的服务器,使得攻击者能够按照意愿获取文件,并保持较低的网络流量。
数据泄露
僵尸网络的主要目的是窃取机密信息,而且是通过磁盘扫描实现的。
磁盘扫描定位目标系统中的机密信息,并使得攻击者大致了解这些军事网络包含什么信息。恶意软件搜索根磁盘、计数有趣文件的数量,并确定系统对攻击者的重要性。搜索标准主要是文件标题中的特定文件扩展名和关键字。关键字是军事专用的,有些指的是韩国的特定军队和军事项目。此函数只能确定系统中包含的有趣文件的数量;而另一个函数则负责提取匹配这些搜索标准的文件的列表。
除了搜索英语关键字,该函数还搜索代表军事术语的韩语ASCII字符。大多数涉及韩国军事行动的关键字都是英文的,还有一组缩写。
发送给攻击者服务器的文件使用开源Zip Utils6进行压缩。组件使用密码“dkwero38oerA^t@#”。在追溯到2009年额恶意软件中,我们一直都能发现这个密码。它主要是用来压缩从受感染系统窃取的文件。
DLL的关系
在所有威胁中,我们发现攻击者一贯使用bs.dll,这是ip6ld.dll的精简版本,而ip6ld.dll也用于这次军事间谍活动中。与2009年和2010年的军事间谍事件相比,2011年至今的军事案件不仅使用类似的bs.dll函数,而且也使用类似的压缩加密密钥。
ip6ld.dll与另一个文件~81923.dll相同;两者以相同的方式运行。Bs.dll似乎主要用于IRC僵尸网络的通信。
组件bs.dll出现于很多Troy恶意软件样本中,包括Chang,EagleXP,NSTAR,Mail Attack,HTTP Troy,Tong,HTTP Dr0pper等。文件Ip6ld.dll包含了这些攻击的很多逻辑,与 bs.dll共享了许多常用函数,包括压缩加密密码。此外,两个文件的IRC和加密函数是相同的,这说明它们由同一个人或组织所创建的。这两个函数很可能是不同版本的相同源代码。它们之间的主要区别是,bs.dll不能搜索特定扩展名和术语,而Ip6ld.dll和~81923.dll则有此功能。这表明bs.dll需要另一个模块,即编译于2011年2月的Mail Attack变种,该变种包含bs.dll和payload.dll,而payload.dll则含有军事特定的搜索和提取函数。
图 34:bs.dll函数根据指定扩展名扫描所有磁盘
bs.dll的下述函数列出了指定目录中的内容,并用密码压缩这些内容。该函数不具有任何的标准,在某些情况下(例如HTTP Troy)可能被禁用, HTTP Troy通过下载有效载荷模块来搜索数据。
图 36:向远程服务发送目录内容的bs.dll函数
Payload.dll似乎将磁盘搜索和目录列表整合到一个函数中。只通过一个操作就能够将目录内容整合到单独的文件中,并准备将其发送到远程服务器。
图 37:payload.dll的磁盘搜索函数
图 38:压缩内容的函数
与http Dr0pper的关系
我们已经确定Http Dr0pper的某些变种能够执行payload32.dll,payload32.dll基本与TDROP中发现的DLL相同。该组件包含军事关键字。HttpDr0pper的一个编译于2012年8月23日的变种利用payload32.dll。TDrop版本则编译于2013年1月13日。这种一致性进一步证实,针对韩国的行动主要侧重军事情报收集,并且从2009年就开始了。
破坏目标
间谍恶意软件能够破坏系统,其方式与2013年3月20日的韩国系统攻击一样。如果对手获取情报后擦除军事网络的内容,那么这种能力可能是灾难性的。这显然与3月20日DarkSeoul事件(MBR擦除之前3Rat木马首先访问目标系统)相同。但是这至少有一个限制:我们发现2011年2月的恶意软件只有在被安全产品调试或分析时才会擦除目标。
图 39:恶意软件的擦除MBR的函数
活动
通过研究,我们发现了Troy行动的很多子行动,这些行动针对韩国军队,旨在提取机密信息。这些行动发生于2009年至2013年。最近发现的证据表明,这些行动在Dark Seoul事件之前仍在继续。通过各种技术手段,我们可以将Dark Seoul的攻击者与这些特殊的间谍活动联系起来。
• Troy时代的恶意软件基于相同的源代码,以创建这些特殊的版本(多年来共享的组件)。
• 几乎所有情况下都发现了压缩加密密码,Concealment Troy除外。
• 恶意软件编译路径中的相同术语(例如,Troy,Work等)。
• 所有变种都使用相同的IRC僵尸网络通道和加密方法。
• 2009-2013年的组件中发现了同样的军事关键字,这证实了对手的意图。
2009-2010年和2012-2013年的行动中使用了相同的字符串混淆技术。
图 40:共享的加密密码
结论
迈克菲实验室认为Dark Seoul和其他政府攻击与一个长期的秘密行动有关,这揭示了Dark Seoul攻击者的真实意图:试图刺探和破坏韩国军方和政府的活动。Troy时代的恶意软件基于同样的源代码,用于创建各个变种,而且有许多共同点,如bs.dll和payload.dll,整个家族的所有变种都是如此。自2009年以来,攻击者试图安装MBR擦除工具,以便破坏目标。通过分析,我们发现Troy行动从一开始的主要目标就是收集韩国军事目标的情报。我们还发现这些年针对韩国的一些其他攻击也与Troy行动有关,这表明幕后黑手是同一个组织。
作者简介
Ryan Sherstobitoff是迈克菲实验室威胁研究员。在此之前,他是熊猫安全公司的首席安全战略员,负责响应新兴威胁。Sherstobitoff被业界认为是一位安全和云计算专家。
Itai Liba是迈克菲实验室的高级安全研究员,是僵尸网络研究小组的成员。Itai参与过移动漏洞研究和大型逆向工程项目,以及显示驱动程序的开发工作。他拥有超过10年的逆向工程经验。
James Walter是全球威胁情报运营总监,为首席情报官办公室管理着MTIS(迈克菲威胁情报服务)。他专注于新威胁的研究,记录漏洞并开发相应的对策。Walter在迈克菲任职已经超过14年,领导着全球威胁分析团队,该团队发布安全公告、对策/检测反馈、全球威胁情报应用程序等。他经常在行业活动和会议上发言,并共同主持“AudioParasitics--迈克菲实验室的官方播客”。
关于迈克菲实验室
迈克菲实验室是迈克菲的全球研究团队。其研究涵盖所有的威胁向量:恶意软件、Web、电子邮件、网络和漏洞等。迈克菲实验室从数以百万计的传感器和基于云的服务McAfeeGlobal Threat Intelligence™收集情报。迈克菲实验室在全球30个国家拥有500位跨学科研究人员,能够实时追踪各种威胁、识别应用程序漏洞、分析和关联风险,并采用即时补救措施来保护企业和公众。
http://www.mcafee.com/labs
关于迈克菲
迈克菲是英特尔公司(NASDAQ:INTC)的全资子公司,旨在帮助企业、公共部门和家庭用户安全地体验互联网带来的好处。该公司为世界各地的系统、网络和移动设备提供主动和成熟的安全解决方案和服务。凭借其远见卓识的安全互联战略、创新的硬件安全增强方法,以及独特的全球威胁情报网络,迈克菲始终专注于保护客户的安全。
http://www.mcafee.com