这是作者新开的一个专栏,主要翻译国外知名的安全厂商APT报告文章,了解它们的安全技术,学习它们溯源APT组织的方法,希望对您有所帮助。前文分享了一种新型无文件APT攻击Kraken,它会利用Windows错误报告服务逃避检测。这篇文章将介绍Turla新型水坑攻击后门(NetFlash和PyFlash),研究人员发现Turla对Armenian的知名网站发起水坑攻击,通过伪造Adobe Flash更新,欺骗受害者下载两个新型恶意软件NetFlash和PyFlash,从而实现恶意攻击,整个攻击的TTP基本没有变化 ,但Turla第一次使用了Python后门程序。
水坑攻击(Watering Hole)是黑客攻击方式之一,它是在受害者必经之路设置了一个“水坑(陷阱)”。最常见的做法是黑客分析攻击目标的上网活动规律,寻找攻击目标经常访问网站的弱点,先将此网站“攻破”并植入攻击代码,一旦攻击目标访问该网站就会“中招”。由于此种攻击借助了目标团体所信任的网站,攻击成功率很高,即便是那些对鱼叉攻击或其他形式的钓鱼攻击具有防护能力的团体,也容易受骗。
水坑攻击属于APT攻击的一种,与钓鱼攻击相比,黑客无需耗费精力制作钓鱼网站,而是利用合法网站的弱点,隐蔽性比较强。在人们安全意识不断加强的今天,黑客处心积虑地制作钓鱼网站却被有心人轻易识破,而水坑攻击则利用了被攻击者对网站的信任。水坑攻击利用网站的弱点在其中植入攻击代码,攻击代码利用浏览器的缺陷,被攻击者访问网站时终端会被植入恶意程序或者直接被盗取个人重要信息。
水坑攻击相对于通过社会工程方式引诱目标用户访问恶意网站更具欺骗性,效率也更高。水坑方法主要被用于有针对性的攻击,而Adobe Reader、Java运行时环境(JRE)、Flash和IE中的0day漏洞被用于安装恶意软件。下图展示了水坑攻击的基本流程。
水坑攻击广泛应用于APT组织发起的攻击中,比如海莲花、图拉、APT-C-01等,主要呈现出两个特征:
2012 年底,美国外交关系委员会的网站遭遇水坑攻击;2013年初,苹果、微软、纽约时报、Facebook、Twitter等知名大流量网站相继中招。国内网站也难以幸免,2013年,西藏ZF网站遭遇水坑攻击;2015年,百度、阿里等国内知名网站也因为JSONP漏洞而遭受水坑攻击。
那么,如何防御水坑攻击呢?
针对这类攻击,重要的一点也是对用户进行教育,让他们意识到这类攻击及其危害性,遇到点击链接的要求时越谨慎越好。其次企业组织本身也要提高警惕,采取更高级的手段检测并对抗攻击。同时,安装必要的安全软件能有效识别恶意伪装软件。
Turla,也称为Venomous Bear、Waterbug和Uroboros,是迄今为止最为高级的威胁组织之一,并被认为隶属于俄罗斯ZF(该组织成员均说俄语)。虽然该组织被认为至少在2007年就已经成立,但直到2014年它才被卡巴斯基实验室发现。这主要是因为,该组织被证实能够利用卫星通信中固有的安全漏洞来隐藏其C&C服务器的位置和控制中心。
我们都知道,一旦C&C服务器的位置暴露,幕后的操作者就会很容易被发现。因此,Turla组织具备的这种能力使得它能够很好地隐藏自己的位置和实施JD活动。卡巴斯基实验室在2017年进行的一项调查显示,相比于2015年,Turla组织已经将其卫星C&C注册数量增加了至少十倍。
90年代著名网络间谍组织“月光迷宫”(Moonlight Maze)就是今天Turla APT的前身,它们都具有大量相同的技术手段,且都与俄罗斯ZF黑客相关。1996年10月7日,美国科罗拉多矿业大学网络遭黑客入侵。攻击者通过Sun OS4操作系统漏洞入侵了该校布朗大楼内一台昵称为“Baby_Doe”的电脑,他们以这台电脑为中转陆续入侵了美国国家航空航天局、美国HAI军和KONG军总部及遍及全美的高校和军事机构。
在美国多部门共同调查下发现,入侵者获取了从头盔设计到大气数据等大量美国JM信息,数量打印成稿的高度可堪比华盛顿纪念碑。随着调查继续深入,最终溯源为俄罗斯TG行为,由于其入侵活动多在夜间进行,且鉴于其行为复杂性,故命名为“月光迷宫”。该网络入侵行为是历史上第一个已知的网络APT攻击。从那时起人们也意识到,网络JD和网络Z不仅只是好莱坞电影中的把戏,而是种真实存在。“月光迷宫”开启了网络JD的篇章,也成为了很多黑客书籍中的经典案例。
在网络入侵活动中,黑客一般会利用中转或跳板机作为攻击代理,防止溯源调查,而“月光迷宫”入侵者也是最早采用该技术的攻击者。他们利用很多国家的一系列大学、图书馆等存在系统漏洞的机构电脑作为中转跳板,存储攻击工具,发起网络攻击,以此迷惑调查行为。
自2007 年以来,Turla组织一直处于活跃状态,并制造了许多影响一时的大事件。比如,在2008年被指攻击了美国ZYSLB部,即Buckshot Yankee事件——通过U盘将一种名为“agent.btz”的恶意软件上传到了wu角大楼的jun事网络系统之中。另一起事件发生在2016年,也就是对瑞士JG企业RUAG集团的大规模网络攻击。在这起攻击中,Turla使用了网络JD软件Epic Turla(Turla软件家族的一个分支,被称为“史上最复杂的APT间谍软件”)、木马程序以及Rootkit恶意软件的组合。此外,被Turla攻击过的组织远不止于此,这包括乌克兰、欧盟各国政府以及各国大使馆、研究和教育组织以及制药、军工企业。
根据卡巴斯基实验室的说法,Turla这些年来主要使用了以下几种攻击工具:
从2015年起,Turla就已经开始通过多种方式利用Javascript、powershell、wsh,这包括恶意软件的下载和安装,以及完整后门的实现。在被VBA宏代码解密后,White Atlas框架通常会使用一个小型的Javascript脚本来执行恶意软件dropper有效载荷,然后再删除dropper以擦除痕迹。对于释放由Turla开发的Firefox扩展后门,White Atlas框架使用了一种更加复杂和高度混淆的Javascript脚本,该脚本仍然负责写入 extension.json 扩展配置文件,然后再删除自己。
那么,如何溯源APT组织呢?这里简单补充下。
参考文献:
此次攻击事件中,Turla至少破坏了四个Armenian的网站,其中包括两个属于ZF的网站。因此,其攻击目标可能包括政府官员和政客。以下网站遭到入侵:
ESET研究迹象表明,这些网站至少从2019年初以来就遭到了入侵。我们在发布前通知Armenian国家CERT,并与他们分享了我们的分析结果。Turla利用非法访问向网站中插入恶意JavaScript代码。 例如:
此代码从 “skategirlchina[.]com/wp-includes/data_from_db_top.php” 加载外部的JavaScript 。我们将在下一部分中分析此代码。自2019年11月底以来,我们注意到 Skategirlchina [.com] 不再传播该恶意脚本,可能是Turla黑客人员已中止了该水坑攻击作业。
访问受感染的网页后,skategirlchina [.]com 会植入第二阶段的恶意JavaScript,并为访问者的浏览器添加指纹。下图显示了此脚本的主要功能。
第一次执行脚本
如果这是用户浏览器第一次执行该脚本,它将添加一个evercookie,该cookie具有由服务器提供的随机MD5值,该值在每次执行脚本时都不同。 evercookie是基于GitHub代码实现的。它使用多个存储位置(如本地数据库、本地共享对象Flash cookie、Silverlight存储等)来存储cookie值。与常规Cookie相比,它的持久性更高,因为如果用户只是删除了浏览器的Cookie,它是不会被删除的。
第二次访问受感染网站
该evercookie将用于识别用户是否再次访问了受感染的网站。当用户第二次访问时,先前存储的MD5值可以用来识别第二次访问的行为。然后,它会收集浏览器插件列表、屏幕分辨率和各种操作系统信息,由POST发送到C&C服务器。如果有答复,则认为它是JavaScript代码,并使用eval函数执行。
如果攻击者对感染目标感兴趣,则服务器会用一段创建iframe的JavaScript代码进行答复。来自ESET研究的数据表明,此次活动中Turla只对非常有限的访问网站感兴趣。之后该iframe会向用户显示虚假的Adobe Flash更新警告,目的是诱使他们下载恶意的Flash安装程序。下图展示了伪造的Adobe Flash更新iframe。
该安全研究组没有观察到任何浏览器漏洞的利用技术,此次活动仅依靠社会工程技巧。从与iframe的JavaScript相同的服务器上下载恶意可执行文件,如果用户手动启动了该可执行文件,则会安装Turla恶意软件以及合法的Adobe Flash程序。
下图是从最初访问受感染的亚美尼亚网站后恶意负载的传输过程。整个流程比较清晰,访问受感染的网页后,skategirlchina [.]com 会植入恶意JavaScript,并为访问者的浏览器添加指纹;接着通过水坑攻击诱导受害者点击Adobe Flash更新,然后加载Turla恶意软件和合法的Flash程序,从事实施后续的攻击。
当用户执行了伪造的安装程序,它将同时执行Turla恶意软件和合法的Adobe Flash安装程序。 因此,用户可能认为更新警告是合法的。
在2019年8月结束之前,受害人将收到一个RAR-SFX存档,其中包含一个合法的Adobe Flash v14安装程序和另一个RAR-SFX存档。后者包含后门的各种组件,即Skipper。先前已归因于Turla,它是由Bitdefender的研究人员在2017年记录的,而最新版本是由Telsy在2019年5月记录的。
鉴于文档版本和最新版本之间只有很小的变化,因此我们在这里将不提供详细的分析。一个有趣的变化是,Skipper通信模块使用托管该活动的远程JavaScript和恶意二进制文件的服务器为其C&C服务器,特别是:
在2019年8月底,我们注意到skategirlchina [.com] 交付的有效负载发生了变化。
(1) NetFlash(.NET下载器)
2019年8月末发现了新的恶意负载,新的恶意负载是一个.NET程序,它在%TEMP%\ adobe.exe中删除了Adobe Flash v32的安装程序,在%TEMP%\ winhost.exe中删除了NetFlash(.NET下载程序)。根据其编译时间戳分析,该恶意样本是在2019年8月底和2019年9月初编译的,然后再上传到水坑攻击的C&C服务器。
NetFlash从硬编码URL下载其第二阶段恶意软件,并使用Windows计划任务为新后门建立持久性。下图显示了NetFlash的主要功能,该功能可下载名为PyFlash的第二阶段恶意软件。我们还发现另一个NetFlash样本,该样本可能在2019年8月底编译,具有不同的硬编码C&C服务器:
(2) PyFlash
第二阶段后门是py2exe可执行文件。py2exe是一个Python扩展,用于将Python脚本转换为独立的Windows可执行文件。据我们所知,这是Turla开发人员第一次在后门使用Python语言。
后门通过HTTP与硬编码的C&C服务器通信,在脚本的开头指定了C&C URL以及用于加密所有网络通信的其他参数(如AES密钥和IV),如下图所示,展示了PyFlash Python脚本中的全局变量。
该脚本的主要功能(如下图所示)将有关计算机的信息发送到C&C服务器,还包括与OS相关的命令(systeminfo、tasklist)和与网络相关的命令(ipconfig、getmac、arp)的输出结果。下图展示了PyFlash的主要功能。
C&C服务器还可以以JSON格式发送后门命令。在此版本的PyFlash中实现的命令是:
然后,命令的输出通过POST请求发送回操作员,并用AES加密。
Turla仍将水坑攻击作为其初始入侵目标的策略之一。此攻击依赖社交工程学技巧,利用虚假的Adobe Flash更新警告来诱使用户下载并安装恶意软件。另一方面,有效载荷发生了变化,可能是为了逃避检测,恶意负载(payload)为NetFlash,并安装名为PyFlash的后门,该后门是使用Python语言开发的。
我们将继续监视Turla的新活动,并将在我们的博客上发布相关信息。如有任何疑问,请通过threatintel [@] eset.com 与我们联系,也可以在我们的GitHub存储库中找到。
IoCs:
样本:
MITRE ATT&CK框架技术
最后希望这篇文章对您有所帮助,感觉Python后门和水坑攻击挺有意思的,后续不忙可以尝试复现相关的功能。今天是1024,还是挺喜欢一年前《我与CSDN这十年》这篇文章的,人生又有多少个十年啊!最近实验室忙疯了,今天最终于可以回家陪女神。路漫漫其修远兮,继续加油,珍惜当下,准备回家喽~这篇文章是在高铁G401上写的,加油!
前文分享:
2020年8月18新开的“娜璋AI安全之家”,主要围绕Python大数据分析、网络空间安全、逆向分析、APT分析报告、人工智能、Web渗透及攻防技术进行讲解,同时分享CCF、SCI、南核北核论文的算法实现。娜璋之家会更加系统,并重构作者的所有文章,从零讲解Python和安全,写了近十年文章,真心想把自己所学所感所做分享出来,还请各位多多指教,真诚邀请您的关注!谢谢。
(By:Eastmount 2020-10-24 星期六 晚上8点写于高铁 http://blog.csdn.net/eastmount/ )