[译] APT分析报告:05.Turla新型水坑攻击后门(NetFlash和PyFlash)-程序员宅基地

技术标签: Turla  APT攻击  安全攻防进阶篇  1024程序员节  水坑攻击  网络安全  安全报告翻译  

这是作者新开的一个专栏,主要翻译国外知名的安全厂商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等,主要呈现出两个特征:

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

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

在这里插入图片描述

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



二.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上写的,加油!

在这里插入图片描述

前文分享:

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

在这里插入图片描述

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Eastmount/article/details/109248019

智能推荐

Hexo博客主题安装和优化(二)_hexo matery设置雪花飘落-程序员宅基地

文章浏览阅读1.4k次,点赞2次,收藏14次。一、Hexo自定义 —晚枫博客—1. 动态标题打开博客主题文件夹,路径:themes/matery/layout/layout.ejs,在对应位置添加如下代码:<script type="text/javascript"> var OriginTitile = document.title, st; document.addEventLis..._hexo matery设置雪花飘落

tomcat session管理_tomcat session管理页面-程序员宅基地

文章浏览阅读248次。最近有空看了一下tomcat 6源码里面对session管理的实现,现在写下来,以供后考,也希望能对对此感兴趣的朋友有所提示。 闲话少说,先贴一下tomcat6的component层次图(此图来自tomcat doc) Server 就是一个servlet container _tomcat session管理页面

FPGA小白的第一篇博客-程序员宅基地

文章浏览阅读410次。今天是2015年9月22日,我得记住这一天,从今天开始,笔者正式开始FPGA的板级学习,希望早日成为熟练的设计开发者_fpga小白

小经验_chmod: 无法创建符号链接-程序员宅基地

文章浏览阅读4.5k次。1.一个文件夹删不掉,是权限问题,chmod 777 xxx。类似的,根目录下的root文件夹不能访问,也是权限问题。2.serial port terminal(linux下串口终端) CompizConfig(花样)3.source insight安装,得先装wine.4.删除非空文件夹,rm -rf xxx5.arm-linux-gcc -v查看arn-_chmod: 无法创建符号链接

OC----synthesize 关键字_oc synthesize-程序员宅基地

文章浏览阅读998次。@synthesize 关键字6.1 问题: setter, getter的实现也是没有什么任何技术含量6.2 作用: 自动生成getter、setter方法的实现.6.3 语法: @synthesize @property名称; 如: @interface Person : NSObject{ int _age; } @property int age;..._oc synthesize

LWN:Fedora里的fstrim-程序员宅基地

文章浏览阅读827次。关注了就能看到更多这么棒的文章哦~Fedora and fstrimByJake EdgeDecember 31, 2019原文来自:https://lwn.net/Articles/..._fstrim 服务

随便推点

day14_Python基础内容—数据持久化、文件操作、数据持久化方法_每次运行程序输入一个学生的信息怎么回事-程序员宅基地

文章浏览阅读365次。Python学习第14天。学习内容:数据持久化、文件操作、数据持久化方法。一、数据持久化问题1:什么是数据持久化?为什么要持久化?计算机存储空间分为:运行内存和磁盘两种。程序中产生的数据默认都是保存在运行内存中,存储在运行内存中的数据在程序结束后会自动销毁。如果将数据存储到磁盘中,那么数据除非手动删除或者磁盘损坏,否则会一直存在,实现了数据的持久保存,存储在磁盘中的数据可以反复使用。磁盘存储数据的基本单位是文件。数据持久化指的就是将程序中的数据以文件的形式保存到磁盘中。为什么要持久化? _每次运行程序输入一个学生的信息怎么回事

linux安装maven-程序员宅基地

文章浏览阅读76次。1、下载maven包apache-maven-3.3.9-bin.tar.gz2、创建目录mkdir -p/usr/local/maven3、拷贝安装包到指定路径cpapache-maven-3.3.9-bin.tar.gz/usr/local/maven4、解压tar -zxvf apache-maven-3.2.5-bin.tar.gzmv apach..._linux安装maven 3.2.5

机器学习应用之WebShell检测_webshell-master-程序员宅基地

文章浏览阅读6.4k次。本文主要参考自兜哥的《Web安全之机器学习入门》前段时间在研究WebShell的检测查杀,然后看到兜哥的著作中提到的几个机器学习算法中也有实现WebShell检测的,主要有朴素贝叶斯分类、K邻近算法、图算法、循环神经网络算法等等,就一一试试看效果吧。Python中的几个机器学习的库1、numpy:安装:pip install --user numpy2、SciPy:_webshell-master

MySQL调优之索引匹配方式及索引种类_索引包含( )模式匹配的查询-程序员宅基地

文章浏览阅读1.3k次。索引匹配方式下面举例皆在索引 idx(name,age,pos)建立前提下全值匹配全值匹配指的是和索引中的所有列进行匹配匹配最左前缀只匹配前面的几列匹配列前缀可以匹配某一列的值的开头部分比如:select * from staffs where name like ‘J%’;这个语句可以利用到用name建立的索引进行查找。但是如果是 select * from staffs where name like ‘%J%’;就无法用到。匹配范围值可以查找某一个范围的数据比如:explain_索引包含( )模式匹配的查询

Unity给力插件之ShaderForge(一)-程序员宅基地

文章浏览阅读597次。这是一个用来制作shader的插件,也是一个很好的学习shader的工具。这个插件上手很容易,但是要用它来制作理想的Shader,需要下点功夫。这儿先列举出基础知识,以及我的一些实践。以后我还会继续学习并记录更多的内容。一、基本操作:    1)、截断连线:按住alt并右键   2)、框选:按住alt键并框选   3)、对于不认识的节点,右键选择what,出现API官网,可选..._shaderforge遮罩

长东应用 - 流程标题的高级定制、应用换肤与应用预览_流程标题是什么意思-程序员宅基地

文章浏览阅读122次。长东应用拟定在今年12月份发布,这是一款完全免费的高度自由定制的个人单机软件。本文主要介绍流程标题的高级定制、应用自由换肤以及应用发布前的预览功能。目录应用换肤与预览流程标题应用换肤与预览在自定义应用中,右键待发布的app,选择个性化设置。新建个性化设置,系统默认提供六种默认样式,分别为:暗夜精灵、挪威森林、铁血丹心、紫气东来、粉色回忆、酒醉探戈。也可以根据选项自由定制应用内的背景色、字体颜色,可点击上方预览按钮,查看效果。(1)预览 - 暗夜精灵效果(2_流程标题是什么意思

推荐文章

热门文章

相关标签