自2016年首次被发现至今,PhotoMiner木马参与门罗币挖矿的累计收入已高达8900万人民币,堪称名副其实的“黄金矿工”。近一段时间,该木马再度出现活跃迹象,正通过入侵感染FTP和SMB服务器进行大范围传播,国内外技术人员均开展了对该木马的研究。这里我们介绍一篇国外关于PhotoMiner的研究文章。
作者为以色列的安全公司GuardiCore,创立于 2013 年,总部位于以色列特拉维夫,同时在美国及加拿大设有办事处。
在过去的几个月中,我们一直在关注一款名为photominer的新型蠕虫。PhotoMiner具有独特的感染机制,通过感染托管在FTP服务器的网站感染终端用户,通过挖掘门罗币(Monero)来获益。选择汇率良好但鲜为人知的货币可以让攻击者迅速获益,而其使用的复杂的保障措施能抵御大多数中断它的手段,这可能让受害者长期处于感染状态。
我们整理了成千上万的攻击记录,发现它们来自最原始的上百个IP。它们使用不同的二进制文件进行同样的攻击。在这篇报告里面,我们将分享在PhotoMiner的时间线,感染方式、C&C服务器、检查恶意代码工具等方面的研究。
攻击描述
在2016年1月10日,GuardiCore全球传感器网络检测到向FTP主机上传可疑文件的自动攻击。通常情况下,将文件上传到易受攻击的FTP服务器在组织中不会被注意,但是我们的传感器网络确定了一种异常行为——相同的事件在全世界范围内持续发生着。
从首次释放蠕虫开始,蠕虫版本迭代迅速。直到今天,我们已经看到了PhotoMiner两种不同的变种和十几个版本,这表明PhotoMiner演变迅速。第一种类编译于2015年12月9日,包括了核心的挖矿程序(miner)和基础的传播能力;第二个种类发布于2016年1月3日,很快成为我们能在野外观察到的主要版本。
扩散和感染
随着事件推移,PhotoMiner增加了新功能,包括一个独特的多阶段感染机制。首先,世界范围内的不安全的FTP服务器被影响,然后托管于FTP上的网站被设计为利用恶意代码感染它们的访问者,最后不知情的网站访问者感染了不仅可以挖掘虚拟货币,还可以主动寻找并感染本地网络中FTP服务器和系统。
PhotoMiner有两种攻击方式。
第一种攻击方式利用了不安全的FTP服务器和一无所知的用户。由于网站通常是可以通过FTP访问的,因此PhotoMiner的运营商能轻易的从此处感染网站的源代码和无知的用户,这种方式对网站安全构成了长期的威胁。
一个简单的二段攻击:
通过暴力强制随机IP地址和使用用户/密码字典,定位和攻击弱保护的FTP服务器。
一旦尝试登录成功,恶意代码将副本上传到每一个可写的FTP服务器。此时,每个呈现给用户的文件(如HTML,PHP和aspx文件)将被写入以下代码进行感染:
一个已感染该恶意代码的网站服务
在这个阶段,渲染页面会导致一个有漏洞的浏览器将其当作为一个下载项。毫无警惕的用户会点击打开恶意代码。最近恶意代码变种更新增加了通过感染服务端的代码注入和尝试安装一个基于Linux的挖矿程序。
目标服务器IP、它的凭证、感染文件列表将被发送到恶意代码的后端服务器。根据这些信息,攻击者能够在之后登录被感染的FTP服务器感染更多文件和传染给其他的受害者。
第二种方式是基于本地局域网中的Windows终端和服务器,使用以下步骤:
PhotoMiner使用内置的Windows系统工具(如‘arp’和‘netview’)来读取ARP缓存并使用BROWSER协议扫描本地网段。
接下来,它试图暴力破解SMB进行连接。一旦连接成功,PhotoMiner尝试将自身的副本放入到每个可访问的远程启动目录。然后使用WMI脚本去执行远程副本。
PhotoMiner禁用休眠
一些变种偷偷地打开一个硬编码名为“Free_WIFI_abc12345”的公共WIFI接入点,引诱无辜的用户接入网络并感染他们。
攻击者感染通过打开可访问的无线接入点来引诱网站访问者
深入恶意代码PhotoMiner是以模块化方式组成,它创建了一个专注于门罗币挖掘的可执行文件和一个保持持久性的机制和进一步传播感染模块的包。这个包由两个主要变种和多个子版本组成:第一个变种img001.scr在使用NSIS脚本语言方面独一无二。第二个变种photo.scr是一个本地二进制文件,它在本机中实现了img001.scr功能。
使用NSIS可以简单地编写与操作系统交互的复杂脚本
这两个变种都包含从bug修复到更改感染技术的多个子版本。尽管版本众多,但它们仍遵循同样的操作。因此,我们将一起描述它们,仅当需要时提及它们之间的区别。在初始化阶段,PhotoMiner执行诸如持久化安装和下载挖矿程序(miner)的配置数据等:安装持久化机制,PhotoMienr使用以下方法注册成一个启动程序
#p#分页标题#e#HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Runﻪﻪ%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Startup\ﻪﻪ%HOMEPATH%\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\
尽管基础,但这个技术仍然起作用,并且现在并会因此将这个程序标记为“恶意程序”。 配置数据是通过脚本的HTTP协议与预置的主机名列表进行通信获取到的,所有的主机名都是为了下载配置文件。获取到的配置文件是一个门罗币矿池列表和恶意代码随机挑选的钱包地址。这个配置文件使用了反向字典进行感染。这意味着对于每个干扰字符,都会从硬编码字典中检索匹配字符,而无干扰的字符就安全地跳过。
配置文件:干扰字符与无干扰字符对比
在这个阶段,关于计算机的基本信息如操作系统版本和IP都将被发送回C&C服务器。PhotoMiner与C&C服务器连接通信告知进度,而不是接受“命令”,并且事实上,样本中并不包括任何远程访问功能。攻击者已经建立了一个弹性后端,分布在多个域名并且使用跨不同托管服务提供商的VPS服务器。但是由于攻击者犯了一些错误,例如重用服务器和IP地址,不同的活动通过共享服务连接在一起。
初始化后,恶意软件将挖矿程序作为一个单独的进程分离并继续进行自我复制传播。这种方式大大地减少了防病毒程序对挖矿程序的本身造成威胁。挖掘模块本身是“BitMonero”打包的一个版本,“BitMonero”是实现Monero挖掘的核心程序,这是个合法程序,避免吸引不必要的注意。
检测和预防PhotoMiner攻击
无论FTP服务器采用了哪种托管软件,PhotoMiner都有可能感染它,并且使用受感染的Windows机器的所有计算能力。
对于终端设备,实施推荐的安全策略很容易预防攻击,诸如应用程序白名单和阻断内外连接的终端设备防火墙。如果这些选项都不采用,那么更新浏览器预防像此处所使用的驱动下载。
通过锁定允许的IP地址,FTP服务器不应允许未授权连接;和使用复杂度较强的用户/密码组合。
如果检测到一个感染的服务器,请确认代码文件已经被清理过,并且在服务器上删除所有恶意软件副本。
服务器安全狗可以默认拦截