Python是最强语言?看看俄罗斯Turla黑客开发的Python恶意软件
大家好,我是零日情报局。
本文首发于公众号 零日情报局,微信ID:lingriqingbaoju
只要开发快,溯源就没法找到我。——Turla
Turla,一个圈内人尽皆知的俄罗斯背景APT间谍组织。这次这只毒蛇开发了一种新型恶意软件,盯上亚美尼亚开启了持续性攻击,领事馆网站、能源部无一幸免。
值得说道的,这次攻击中,Turla在惯用的Adobe Flash更新诱饵中,一次性增加了两个从未被记录的恶意组件NetFlash和PyFlash,甚至还第一次出现了使用Python语言的情况。
你没看错,一次性增加了两个从未被记录的新恶意组件,还启用了Turla几乎未涉及的编程语言。对此,零日不得不猜测,Turla工具库可能又要扩大了。
为新恶意组件铺路的Turla水坑攻击
甭管安装执行什么恶意软件,入侵都是第一步,所以在聊新增恶意组件前,都得知道Turla是怎么入侵的。
首先,Turla在目标网站暗中植入恶意代码JavaScript。拿mnp.nkr [.] am来说,Turla就在常见的JavaScript库 jquery-migrate.min.js 末尾,附加了一段混淆代码。
有了这串不起眼的代码,就能在skategirlchina [.] com / wp-includes /data_from_db_top.php 加载外部JavaScript。
一旦有人访问受感染网站,skategirlchina.com就会释放恶意JavaScript,并在访问者浏览器上添加指纹。
就像这样
接下来上演的就是大家都熟悉的,指纹识别和恶意软件交付危险行为。有意思的是,Turla会筛选用户价值,分别处理。
比如说,你是第一次执行脚本的低价值目标,就会在浏览器上添加一个由服务器提供的随机MD5值evercookie。
这样这个值在后续的每一次执行脚本中都不同,进而长期持续的跟踪用户,甚至你直接删除浏览器cookie,也无法停止evercookie的运行。
而当你是潜在的高价值目标时,Turla的服务器则会给你展示一个创建iframe的JavaScript代码,开始对你下套。
你看到的界面,就会变成这种诱导更新的画面。
这时回过头梳理Turla的整个攻击过程,会发现从最初访问受感染网站到恶意负载的传递,是这样一个过程:
也是完成了上述流程,Turla才真正开始执行恶意软件,也就是零日开篇提到新增的两种恶意软件。
新增恶势力:NetFlash和PyFlash
如果分阶段的话,前面说的其实是Turla攻击的入侵阶段,后面的则是Turla部署的新恶意软件了。
恶意组件1:NetFlash(.NET下载器)
这个新发现的有效载荷NetFlash是一个. NET应用程序。
它在%TEMP%\adobe.exe中删除了一个Adobe Flash v32安装程序,并在%TEMP%\winhost.exe中删除了一个. NET下载程序。
从ESET捕获的恶意样本来看,2019年8月底和2019年9月初被编译后,NetFlash才被上传到水坑攻击的C&C服务器。
NetFlash会从硬编码URL下载其第二阶段恶意软件,并使用Windows计划任务保持新后门的持久性,以便于后续攻击。
通过NetFlash,可下载名为PyFlash的第二阶段恶意软件。
恶意组件2:PyFlash
第二个新发现的恶意软件,其实是一个py2exe可执行文件。
所谓的py2exe,指的是一个Python扩展,主要功能是将Python脚本转换为独立的Windows可执行文件。
PyFlash通过HTTP与硬编码的C&C服务器通信,在脚本的开头指定了C&C URL以及用于加密所有网络通信的其他参数(例如AES密钥和IV)。
通过脚本的指定,直接让这个脚本能够把相关计算机信息反馈给C&C服务器。
值得一提的是,C&C服务器还能以JSON格式发送后门命令,进行特定操作。 在目前新发现的PyFlash中,能进行的命令主要有这几种: