揭秘Turla APT的转世前身

AlexFrankly 2017-4-17 安全界 0 0

000001.jpg

在近期的卡巴斯基安全分析师峰会(SAS)上,来自伦敦国王学院的Thomas Rid通过分析研究,揭露了一个最新发现:90年代著名网络间谍组织“月光迷宫”(Moonlight Maze)已经演变成了今天的Turla APT,它们都具有或多或少相同的技术手段,且共同背景就是:与俄罗斯政府黑客相关。此文阐述了卡巴斯基分析报告中Thomas Rid和相关安全人员对两个攻击组织的关联性分析,详细技术证据请参见报告附录A/B。(文末附伦敦国王学院Thomas Rid教授中文版《追踪网络攻击》)

“月光迷宫”(MOONLIT MAZE)网络攻击

1996年10月7日,美国科罗拉多矿业大学网络遭黑客入侵。攻击者通过Sun OS4操作系统漏洞入侵了该校布朗大楼内一台昵称为“Baby_Doe”的电脑,他们以这台电脑为中转陆续入侵了美国国家航空航天局、美国海军和空军总部及遍及全美的高校和军事机构。

2017-04-10_150832.jpg

在美国联邦调查局(FBI)和国防部的共同调查下发现,入侵者窃取了从头盔设计到大气数据等大量美国机密信息,数量打印成稿的高度可堪比华盛顿纪念碑。随着调查继续深入,最终溯源为俄罗斯特工行为,由于其入侵活动多在夜间进行,且鉴于其行为复杂性,故命名为“月光迷宫”。该网络入侵行为是历史上第一个已知的网络APT攻击。从那时起人们也意识到,网络间谍和网络战不仅只是好莱坞电影中的把戏,而是种真实存在。“月光迷宫”开启了网络间谍的篇章,也成为了很多黑客书籍中的经典案例。

关联性分析

与Agent.BTZ的关系

2015年的VirusBulletin会议上,卡巴斯基研究人员Kurt Baumgartner表示,Turla APT和早期的蠕虫病毒Agent.BTZ高度相关,并且Agent.BTZ样本文件包含了对卫星基础设施的劫持攻击,与后期的Turla极为相似。“Turla日志会生成与Agent.btz相同的文件名(mswmpdat.tlb、winview.ocx和wmcache.nld)并保存在被入侵的系统中。Turla还使用了和Agent.btz如出一辙的XOR密匙为其日志文件加密。”

早在2008年,Agent.BTZ就把魔爪成功伸向了美国中央司令部在中东地区的网络系统。此事在当时即被称为“史上最严重的美国军用计算机泄密事件”。为此,美国五角大楼的安全专家们耗时14个月才将其彻底清除。也正是该事件,促使美国网络司令部成立。这种被认为于2007年左右开发的Agent.BTZ蠕虫病毒能够扫描出计算机上的敏感信息,并向远程命令控制服务器发送数据。

ddddd.jpg

fffff.jpg

与Linux后门LOKI2的关系

早期的“月光迷宫”针对大多Solaris/*nix-based的UNIX 系统,而今天的Turla APT目标则是Windows系统。2014 年卡巴斯基宣布发现了Penquin Turla(第一代),这是一个包含了劫持卫星IP进行数据窃取的Linux后门,经过调查分析发现,它可能基于开源后门LOKI2。由此,我们假设攻击者通过放弃了早期的*nix系统,而把目标大量转向了今天的Windows系统。但是,没有确切的“月光迷宫”攻击样本,我们无法证实。另外,据FBI公开文件显示,一些必要的取证数据已经被销毁。我们的调查也一度陷入僵局。

003.jpg

柳暗花明

在网络入侵活动中,黑客一般会利用中转或跳板机作为攻击代理,防止溯源调查,而“月光迷宫”入侵者也是最早采用该技术的攻击者。他们利用很多国家的一系列大学、图书馆等存在系统漏洞的机构电脑作为中转跳板,存储攻击工具,发起网络攻击,以此迷惑调查行为。

004.jpg

而我们也费尽心思找到了当时“月光迷宫”的一台跳板机–英国一家公司的服务器(HRTest),当时,该公司系统管理员Hedges与FBI和伦敦警方合作,记录保存了该服务器中大量的证据日志、数据包和入侵者名为”it”的系统用户行为。

005.jpg

通过联系到了半退休状态的Hedges,我们在仍然可以正常运行的HRtest服务器中发现了54个“月光迷宫”攻击样本文件,其中包含了28个 SunOS SPARC程序、17个IRIX MIPS程序和9个脚本文件(参见附录B),另外Hedges还向我们提供了由EtherPeek和攻击者生成的大量系统日志(参见附录A)。在这些“宝藏”面前,我们花了好几个月进行文件分析。

log.jpg

走进“月光迷宫”

CGI漏洞

我们从FBI文件记录中的攻击者构造的CGI漏洞说起,这是一个经典的CGI漏洞,被“月光迷宫”攻击者用于对美国军事系统开展入侵,漏洞利用了一些老旧Web服务器中捆绑了HTTP守护进程的phf程序。在1996年早期,此类漏洞攻击大量出现,http://insecure.org/sploits/phf-cgi.html,可以通过以下方式执行服务器命令,获取root权限:

http:///cgi-bin/phf?Qalias=%ff/bin/cat%20/etc/passwd

“普遍撒网”的漏洞利用工具包

早期的“月光迷宫”采用了一种不断尝试攻击反复试错的入侵手段,攻击者每当遇到目标服务器时,都会上传使用一个广谱黑客工具TAR压缩包,通过该压缩包中大量漏洞利用程序、捆绑文件、特定或开源工具、自动脚本进行尝试攻击,而其中的漏洞利用工具几乎来自于开源代码整编。攻击者以这种“普遍撒网”的方式大范围对目标开展入侵尝试,如果目标存在漏洞,进而进一步掌握控制。

可以说,“月光迷宫”攻击者使用的大部分工具都模仿或来源于安全论坛和一些安全通知邮件列表,在恶意软件混淆或伪装时代之前,这些都算是一些直截了当和目标明确的黑客工具,这种相对务实的功能实用性在现代恶意软件中很少见。

一种改进的Linux网络监听工具“solsniffer”

攻击者利用整合了tcpdump和libpcap两种功能模式的类似于solsniffer的网络协议监听工具,对受害者网络系统进行混杂模式监听,同时产生了诸如telnet、pop3、ftp、rlogin等系统连接日志(参见附录A)。

LOKI2后门-黑客的隐蔽通信信道

007.jpg

我们发现“月光迷宫”攻击者非常青睐使用LOKI2,该小巧精悍的Linux后门发布于90年代后期的Phrack网络杂志。它利用ICMP 协议,把信息隐藏在ICMP报文包内进行发送。攻击者一开始对LOKI2程序的编译名为lc,之后又编写了内部称为spy_cli.c的客户端程序,随着攻击活动的不断演变,攻击者对LOKI2也进行了不断的改进,开始加入了一些定制化的功能特性,如绕过FTP文件移动操作直接进行批量put/get的功能,而这也意味着我们无法发现其中一些隐蔽通信证据。HRtest服务器上,LOKI2在的演变名称为lopg,并且与名为slok的程序共同发挥协同作用,slok程序是一个命令行方式的隐蔽邮件客户端应用。在利用LOKI2后门的基础上,攻击者还开发了一个utmp日志清扫工具对一些入侵行为动作进行扫尾。这足以说明LOKI2后门在攻击活动中的显著作用,同时也是我们调查取证的关键一环。

其它工具

根据受害者的不同系统,攻击者还开发了针对诸如SunOS SPARC和IRIX MIPS的不同黑客工具,这些工具以字母”i”结尾,估计是为了便于归档和内部识别。另外,IRIX工具集与SPARC工具集一样工具繁多,但根据我们的调查发现,攻击者更倾向以SunOS为目标。攻击者对这些工具的开发是双向的,如果在一个系统平台可用,那么就继续移植到另一个系统平台进行开发。

漏洞利用工具包explois的说明

攻击者使用的漏洞利用工具大部分都是以系统提权为目的,通常在对目标服务器发起攻击之前 ,攻击者都会使用不同的漏洞利用工具进行尝试,如果其中一个漏洞可以成功利用,他们就会对同一网络系统的大量服务器进行入侵尝试,或继续尝试其它不同各类的黑客工具,这完全与现代APT的精准策划精准攻击不同,但基于“月光迷宫”很高的成功率,这也仅只是我们的一种主观判断。

那个时代与现在快速及时的漏洞披露策略不同,值得注意的是“月光迷宫”攻击者使用了大量漏洞利用工具成功进行了数据窃取,并且这些exploits都不是攻击者自行开发,而完全来源于公开安全社区。这些exploits大部分PoC代码由一些善意的系统管理员开发,以提醒其它使用此类系统的管理员为目的。这也主要有两方面的原因:

90年代中期的软件厂商和维护人员对安全补丁都不太重视,据调查发现,有一些漏洞在通知厂商之后的半年到一年之间都未完全修补,如硅谷图形公司IRIX系统漏洞;

为了解漏洞情况,一些系统管理员倾向于自己开发补丁和解决方案。

“月光迷宫”攻击者通过简单的复制粘贴方式,充分利用了这些漏洞PoC代码进行武器化封装,进而达到了有效的入侵攻击目的。

伪自动化实现

在我们的调查取证中可以发现,一些最先进的网络间谍活动往往都基于一些复杂和大量的开发工作,而最终又交由一些操作不太熟练的攻击者进行部署使用,所以这些攻击使用工具难免会出现键盘乱码、拼写错误或反复重试等迹象。

然而据我们发现,“月光迷宫”攻击者似乎对*nix系统非常熟悉,他们使用的都是一些开源的黑客工具集,通过把这些工具捆绑嵌入一些程序或脚本,入侵控制了大量网络系统,这种攻击手段既不像现在的C&C方式,也不依赖复杂的恶意程序,比较精明和务实。

008.jpg

根据不同的入侵任务,攻击者开发了不同类型的恶意程序组件脚本,这些恶意脚本驻留在/var/tmp/目录下,等待攻击者进一步发起的执行和配置命令,后期,攻击者还会通过这些恶意脚本连接到受控服务器,进行文件上传替换或其它操作。同样,在信息回传窃取中,攻击者一样使用了大量脚本文件进行组合操作,最终实现有效窃取数据信息目的。

009.jpg

样本文件中的俄罗斯线索

“月光迷宫”攻击者由于其低级的英语水平和俄语倾向,仍然犯了一些细微的错误,比如在一个程序的逆向过程中,我们发现了其PDB程序路径中包含了可能是攻击程序开发成员的Max、Iron和Rinat。尽管这些程序有可能是在受害者机器上进行编译开发的,但这三个名字还在/myprg/、/mytdn/和/exploits/路径下都存在。其中值得注意的是,名为Iron的成员涉及开发了LOKI2后门早期的客户端程序cli:

010.jpg

另外,在一个两次调用的进程PID信息中可以发现一个名为“grandchild”或“grandson”的俄语单词“vnuk”

011.jpg

并且,攻击程序开发者的英语水平也确实不敢恭维,如其中一个程序包含了一些明显的英语错误和不当表达:“Hiding complit…n”、“receving message”、”Error in parametrs”、“ERROR: Can not open socket….”、”open file for read”、”Connect successful….”、 “ERROR: Not connect…”等等。012.jpg

回顾Turla APT第一代Penquin Turla

2014 年12月,卡巴斯基宣布发现了Turla APT第一代Penquin Turla,当时攻击者结合域名news-bbc.podzone[.]org,频繁利用了开源Linux后门LOKI2, 而当时还未有类似的野生攻击。自那时起,卡巴研究人员又陆续发现了与此攻击相关的另外5个木马变异样本,其中有两个样本指向Turla利用的黎巴嫩卫星提供商IP 82.146.175[.]43。

追溯Penquin Turla的不同源代码

大部分Penquin Turla样本中都未出现特别的调试符号或信息,这些样本几乎是Linux系统下静态编译的ELF程序,大多与Linux内核版本2.2.0和2.2.5适配,而与这些样本相关的开源库文件还包括从1999到2004年的不同版本libpcap和OpenSSL:

013.jpg

Turla APT针对瑞士军工集团RUAG的攻击

2016年5月,瑞士计算机应急响应组织Swiss CERT发布报告称,攻击者使用Turla APT的变异程序Epic Turla入侵了其军工集团RUAG网络系统,而报告中也提到了攻击者使用的Linux后门LOKI2。

攻击者似乎觉察到用来隐蔽通信的LOKI2其实并不安全,可以被受害方系统进行查杀,因此,他们计划把LOKI2作为加载的内核模块或通过其它后门程序部署到目标系统。变异改装后的攻击程序利用了Liunx系统源码,并添加了一个ntpd守护进程和网络嗅探器变体。

样本比较

通过我们掌握的样本分析,可以清晰知晓“月光迷宫”和Turla APT攻击者都热衷使用LOKI2。“月光迷宫”攻击者在后期,在LOKI2中加入了一些通用或定制化工具,而随着我们的调查发现,这两组攻击者使用的LOKI2后门都遵循相同的线性发展趋势:

014.jpg

在Turla APT的整个发展演变过程中,唯一缺少证据的就是1999年到2000年之间的Storm Cloud,下一步,我们会把重点放在对这个阶段的发现研究之上,争取把整个Turla APT的演化过程梳理成一条可供参考研究的脉络。

文末彩蛋伦敦国王学院Thomas Rid教授中文版《追踪网络攻击》

*参考来源:securelist,freebuf小编clouds编译,转载请注明来自Freebuf.com

转载请注明来自华盟网,本文标题:《揭秘Turla APT的转世前身》

喜欢 (0) 发布评论