这是作者新开的一个专栏,主要翻译国外知名的安全厂商APT报告文章,了解它们的安全技术,学习它们溯源APT组织的方法,希望对您有所帮助。前文分享了一种新型无文件APT攻击Kraken,它会利用Windows错误报告服务逃避检测。这篇文章将介绍Turla新型水坑攻击后门(NetFlash和PyFlash),研究人员发现Turla对Armenian的知名网站发起水坑攻击,通过伪造Adobe Flash更新,欺骗受害者下载两个新型恶意软件NetFlash和PyFlash,从而实现恶意攻击,整个攻击的TTP基本没有变化 ,但Turla第一次使用了Python后门程序。

  • 原文标题:Tracking Turla: New backdoor delivered via Armenian watering holes
  • 原文链接:https://www.welivesecurity.com/2020/03/12/tracking-turla-new-backdoor-armenian-watering-holes/
  • 文章作者: Matthieu Faou
  • 发布时间:2020年3月12日
  • 文章来源:Welivesecurity.com
  • 推荐文章:https://www.freebuf.com/articles/network/230436.html

文章目录

  • 一.什么是水坑攻击
  • 二.Turla组织
  • 三.目标网站
  • 四.指纹识别和传播链
  • 五.恶意软件
    • 1.2019年9月之前:Skipper
    • 2.从2019年9月开始:NetFlash和PyFlash
  • 六.结论

一.什么是水坑攻击

水坑攻击(Watering Hole)是黑客攻击方式之一,它是在受害者必经之路设置了一个“水坑(陷阱)”。最常见的做法是黑客分析攻击目标的上网活动规律,寻找攻击目标经常访问网站的弱点,先将此网站“攻破”并植入攻击代码,一旦攻击目标访问该网站就会“中招”。由于此种攻击借助了目标团体所信任的网站,攻击成功率很高,即便是那些对鱼叉攻击或其他形式的钓鱼攻击具有防护能力的团体,也容易受骗。

水坑攻击属于APT攻击的一种,与钓鱼攻击相比,黑客无需耗费精力制作钓鱼网站,而是利用合法网站的弱点,隐蔽性比较强。在人们安全意识不断加强的今天,黑客处心积虑地制作钓鱼网站却被有心人轻易识破,而水坑攻击则利用了被攻击者对网站的信任。水坑攻击利用网站的弱点在其中植入攻击代码,攻击代码利用浏览器的缺陷,被攻击者访问网站时终端会被植入恶意程序或者直接被盗取个人重要信息。

水坑攻击相对于通过社会工程方式引诱目标用户访问恶意网站更具欺骗性,效率也更高。水坑方法主要被用于有针对性的攻击,而Adobe Reader、Java运行时环境(JRE)、Flash和IE中的0day漏洞被用于安装恶意软件。下图展示了水坑攻击的基本流程。

水坑攻击广泛应用于APT组织发起的攻击中,比如海莲花、图拉、APT-C-01等,主要呈现出两个特征:

  • 多属于 APT 攻击,目标多为是大型、重要企业的员工或网站
  • 多利用 0-day 漏洞,如Adobe Flash高危漏洞CVE-2018-4878

2012 年底,美国外交关系委员会的网站遭遇水坑攻击;2013年初,苹果、微软、纽约时报、Facebook、Twitter等知名大流量网站相继中招。国内网站也难以幸免,2013年,西藏ZF网站遭遇水坑攻击;2015年,百度、阿里等国内知名网站也因为JSONP漏洞而遭受水坑攻击。

  • 推荐文章:APT之水坑攻击 - 洛米唯熊

那么,如何防御水坑攻击呢?
针对这类攻击,重要的一点也是对用户进行教育,让他们意识到这类攻击及其危害性,遇到点击链接的要求时越谨慎越好。其次企业组织本身也要提高警惕,采取更高级的手段检测并对抗攻击。同时,安装必要的安全软件能有效识别恶意伪装软件。


二.Turla组织

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这些年来主要使用了以下几种攻击工具:

  • IcedCoffeer和KopiLuwak
  • Carbon
  • Mosquito
  • WhiteBear
  • LightNeuron

从2015年起,Turla就已经开始通过多种方式利用Javascript、powershell、wsh,这包括恶意软件的下载和安装,以及完整后门的实现。在被VBA宏代码解密后,White Atlas框架通常会使用一个小型的Javascript脚本来执行恶意软件dropper有效载荷,然后再删除dropper以擦除痕迹。对于释放由Turla开发的Firefox扩展后门,White Atlas框架使用了一种更加复杂和高度混淆的Javascript脚本,该脚本仍然负责写入 extension.json 扩展配置文件,然后再删除自己。

那么,如何溯源APT组织呢?这里简单补充下。

  • Turla 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密匙为其日志文件加密。”
  • 这篇文章的水坑攻击与过去几年Turla的水坑攻击非常相似
    尤其是操作方式类似于在2017年发现的一个攻击事件,那里使用的各种JavaScript片段几乎与此攻击中的相同,但目标和有效负载不同。
  • KopiLuwak脚本通过宏代码进行解码,这与IcedCoffee非常相似。
    在2016年11月,卡巴斯基实验室观察到了新一轮的武器化宏文档。这些宏文档释放了一个新的、高度混淆的Javascript 有效载荷,即KopiLuwak。这种新的攻击工具所针对的目标与Turla之前所针对的目标是一致的(即针对欧洲各国ZF),但它的部署比IcedCoffee更具针对性。
  • “月光迷宫”攻击者由于其低级的英语水平和俄语倾向
    攻击者犯了一些细微的错误,比如在一个程序的逆向过程中,发现了其PDB程序路径中包含了可能是攻击程序开发成员的Max、Iron和Rinat。尽管这些程序有可能是在受害者机器上进行编译开发的,但这三个名字还在/myprg/、/mytdn/和/exploits/路径下都存在。其中值得注意的是,名为Iron的成员涉及开发了LOKI2后门早期的客户端程序cli。另外,在一个两次调用的进程PID信息中可以发现一个名为“grandchild”或“grandson”的俄语单词“vnuk”。

参考文献:

  • 卡巴斯基:深度揭露俄罗斯APT组织Turla
  • 卡巴斯基:揭秘Turla APT的转世前身

三.目标网站

此次攻击事件中,Turla至少破坏了四个Armenian的网站,其中包括两个属于ZF的网站。因此,其攻击目标可能包括政府官员和政客。以下网站遭到入侵:

  • armconsul [.] ru:俄罗斯亚美尼亚大S馆领事处
  • mnp.nkr [.] am:Artsakh自然保护和自然资源部
  • aiisa [.] am:亚美尼亚国际和安全事务研究所
  • adgf [.] am:亚美尼亚存款担保基金

ESET研究迹象表明,这些网站至少从2019年初以来就遭到了入侵。我们在发布前通知Armenian国家CERT,并与他们分享了我们的分析结果。Turla利用非法访问向网站中插入恶意JavaScript代码。 例如:

  • 对于mnp.nkr [.] am,在jquery-migrate.min.js(常见的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安装程序。 因此,用户可能认为更新警告是合法的。

1.2019年9月之前:Skipper

在2019年8月结束之前,受害人将收到一个RAR-SFX存档,其中包含一个合法的Adobe Flash v14安装程序和另一个RAR-SFX存档。后者包含后门的各种组件,即Skipper。先前已归因于Turla,它是由Bitdefender的研究人员在2017年记录的,而最新版本是由Telsy在2019年5月记录的。

鉴于文档版本和最新版本之间只有很小的变化,因此我们在这里将不提供详细的分析。一个有趣的变化是,Skipper通信模块使用托管该活动的远程JavaScript和恶意二进制文件的服务器为其C&C服务器,特别是:

  • Skategirlchina [.com / wp-includes / ms-locale.php

2.从2019年9月开始:NetFlash和PyFlash

在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服务器:

  • 134.209.222 [.] 206:15363

(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中实现的命令是:

  • 从给定的HTTP(S)链接下载其他文件。
  • 使用Python函数subprocess32.Popen执行Windows命令。
  • 更改执行延迟:定期修改(每X分钟;默认为5分钟)启动恶意软件的Windows任务。
  • 卸载恶意软件。为了确认该指令,恶意软件使用以下字符串将POST请求发送到C&C服务器。

然后,命令的输出通过POST请求发送回操作员,并用AES加密。


六.结论

Turla仍将水坑攻击作为其初始入侵目标的策略之一。此攻击依赖社交工程学技巧,利用虚假的Adobe Flash更新警告来诱使用户下载并安装恶意软件。另一方面,有效载荷发生了变化,可能是为了逃避检测,恶意负载(payload)为NetFlash,并安装名为PyFlash的后门,该后门是使用Python语言开发的。

我们将继续监视Turla的新活动,并将在我们的博客上发布相关信息。如有任何疑问,请通过threatintel [@] eset.com 与我们联系,也可以在我们的GitHub存储库中找到。

IoCs:

  • 遭到破坏的网站

  • C&C服务器

样本:

MITRE ATT&CK框架技术

  • 后续作者会分享一篇文章详细介绍ATT&CK框架在APT组织中的应用

最后希望这篇文章对您有所帮助,感觉Python后门和水坑攻击挺有意思的,后续不忙可以尝试复现相关的功能。今天是1024,还是挺喜欢一年前《我与CSDN这十年》这篇文章的,人生又有多少个十年啊!最近实验室忙疯了,今天最终于可以回家陪女神。路漫漫其修远兮,继续加油,珍惜当下,准备回家喽~这篇文章是在高铁G401上写的,加油!

前文分享:

  • [译] APT分析报告:01.Linux系统下针对性的APT攻击概述
  • [译] APT分析报告:02.钓鱼邮件网址混淆URL逃避检测
  • [译] APT分析报告:03.OpBlueRaven揭露APT组织Fin7/Carbanak(上)Tirion恶意软件
  • [译] APT分析报告:04.Kraken - 新型无文件APT攻击利用Windows错误报告服务逃避检测
  • [译] APT分析报告:05.Turla新型水坑攻击后门(NetFlash和PyFlash)

2020年8月18新开的“娜璋AI安全之家”,主要围绕Python大数据分析、网络空间安全、逆向分析、APT分析报告、人工智能、Web渗透及攻防技术进行讲解,同时分享CCF、SCI、南核北核论文的算法实现。娜璋之家会更加系统,并重构作者的所有文章,从零讲解Python和安全,写了近十年文章,真心想把自己所学所感所做分享出来,还请各位多多指教,真诚邀请您的关注!谢谢。

(By:Eastmount 2020-10-24 星期六 晚上8点写于高铁 http://blog.csdn.net/eastmount/ )

[译] APT分析报告:05.Turla新型水坑攻击后门(NetFlash和PyFlash)相关推荐

  1. [译] APT分析报告:11.深入了解Zebrocy的Dropper文档(APT28)

    这是作者新开的一个专栏,主要翻译国外知名安全厂商的APT报告,了解它们的安全技术,学习它们溯源APT组织和恶意代码分析的方法,希望对您有所帮助.当然,由于作者英语有限,会借助机翻进行校验,还请包涵! ...

  2. [译] APT分析报告:10.Lazarus以ThreatNeedle家族攻击工业事件还原(BMP图片隐藏RAT)

    这是作者新开的一个专栏,主要翻译国外知名安全厂商的APT报告,了解它们的安全技术,学习它们溯源APT组织和恶意代码分析的方法,希望对您有所帮助.当然,由于作者英语有限,会借助机翻进行校验,还请包涵!前 ...

  3. [译] APT分析报告:09.伊朗APT34更新武器库——SideTwist变体

    这是作者新开的一个专栏,主要翻译国外知名安全厂商的APT报告,了解它们的安全技术,学习它们溯源APT组织和恶意代码分析的方法,希望对您有所帮助.当然,由于作者英语有限,会借助机翻进行校验,还请包涵!前 ...

  4. [译] APT分析报告:08.漏洞利用图谱–通过查找作者的指纹来寻找漏洞

    这是作者新开的一个专栏,主要翻译国外知名安全厂商的APT报告,了解它们的安全技术,学习它们溯源APT组织和恶意代码分析的方法,希望对您有所帮助.当然,由于作者英语有限,会借助机翻进行校验,还请包涵!前 ...

  5. [译] APT分析报告:04.Kraken - 新型无文件APT攻击利用Windows错误报告服务逃避检测

    这是作者新开的一个专栏,主要翻译国外知名的安全厂商APT报告文章,了解它们的安全技术,学习它们溯源APT组织的方法,希望对您有所帮助.前文分享了APT组织Fin7 / Carbanak的Tirion恶 ...

  6. [译] APT分析报告:03.OpBlueRaven揭露APT组织Fin7/Carbanak(上)Tirion恶意软件

    这是作者新开的一个专栏,主要翻译国外知名的安全厂商APT报告文章,了解它们的安全技术,学习它们溯源APT组织的方法,希望对您有所帮助.前文分享了钓鱼邮件网址混淆URL逃避检测,这篇文章将介绍APT组织 ...

  7. [译] APT分析报告:01.Linux系统下针对性的APT攻击概述

    这是作者新开的一个专栏,主要翻译国外知名的安全厂商APT报告文章,了解它们的安全技术,学习它们溯源APT组织的方法,希望对您有所帮助.第一篇文章主要分享Linux系统下针对性的APT攻击及技术要点,并 ...

  8. APT 分析报告:钓鱼邮件网址如何混淆 URL 逃避检测?

    作者 | 杨秀璋 责编 | 夕颜 图源 | 视觉中国 出品 | CSDN(ID:CSDNnews) 这是作者新开的一个专栏,主要翻译国外知名的安全厂商APT报告文章,了解它们的安全技术,学习它们溯源A ...

  9. 中国新型储能市场技术进展与投资经营模式建议分析报告2022-2028年版

    中国新型储能市场技术进展与投资经营模式建议分析报告2022-2028年版   第一章 2019-2021年中国新型储能行业发展环境分析 第二章 2019-2021年中国新型储能产业发展分析 2.1 中 ...

  10. 2022-2028年中国新型农业机械行业市场前瞻与投资战略规划分析报告

    [报告类型]产业研究 [报告价格]¥4500 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国新型农业机械行业市场行业相关概述.中国中 ...

最新文章

  1. laravel框架内置的各种路径帮助函数
  2. python用途与前景-java和Python的前景谁更好
  3. apt包管理 Android,apt软件包管理学习(示例代码)
  4. 骚操作!昨晚停网,我写了一段Python代码破解了隔壁小姐姐的wifi密码...
  5. 第5章 Python 数字图像处理(DIP) - 图像复原与重建4 - 指数噪声
  6. 汇编语言:实验10 根据材料编程—3.数值显示,编程,将data段中的数据以十进制形式显示出来
  7. 内存占用少,计算速度快!华为诺亚方舟Lab开源即插即用的多用卷积核(NeurIPS 2018)...
  8. python 清空文件夹_python读写文件
  9. git pull的理解 以及 git conflict的解决
  10. ajax方法参数详解
  11. TrueCrypt使用方法及详细教程介绍
  12. python调用图灵机器人实现微信公众号的自动回复功能(下)
  13. 实现px和vw的转换
  14. python如何用opencv把一个视频按每10秒一小段切割
  15. vue.js中修饰符.stop的用法。
  16. 项目管理要分解目标,明确每个人的任务
  17. 用平均的方法去除噪声
  18. 爬取某视频网站电影,仅参考学习
  19. 路何去何从-第三方Oracle服务商
  20. 自定义 behavior - 完美仿 QQ 浏览器首页,美团商家详情页

热门文章

  1. 面试题:怎么以最快速度计算8*4:
  2. python 清空文件_python:文件的读取、创建、追加、删除、清空
  3. MyBatis(一)------目录
  4. 利用Windbg深入理解变量的存储模型
  5. ScriptManager的EnablePageMethods
  6. 通过Visual C#创建一个Windows组件,然后把其接口以COM形式发布即可(转贴)
  7. python发展至今有哪些版本_Python发展至今有哪些版本,各版本有什么区别?
  8. C++实现binary文件读取(可对‘bil‘,‘bsq‘ float32,double,unchar,unit16,unit8等格式进行读取)
  9. 数字信号处理教程matlab释义与实现,数字信号处理教程 MATLAB释义与实现 陈怀琛编...
  10. zblog php获取文章的第一张图片,zblog 获取文章图片作缩略图的几种方式