导语:F5的威胁研究人员发现一种新型的Linux加密货币挖矿机僵尸网络——PyCryptoMiner,这种僵尸网络是通过SSH协议进行传播的。
F5的威胁研究人员发现一种新型的Linux加密货币挖矿机僵尸网络——PyCryptoMiner,这种僵尸网络是通过SSH协议进行传播的。
PyCryptoMiner的特征
基于python脚本语言,使它很难被检测到; 如果原来的C&C服务器不可达,会用Pastebin.com (用户名WHATHAPPEN)来接受新的C&C任务信息; 注册者关联了超过3.6万个域名,其中一些域名已经证明是提供赌博、诈骗和成人服务的; 挖矿机挖的是Monero(门罗币),一种网络犯罪分子非常喜欢的匿名性很高的加密货币。截至2017年12月,该僵尸网络挖矿总价值约为4.6万美元(约30万人民币); 12月中旬加入了利用CVE-2017-12149漏洞的扫描器功能。
随着IoT设备的增多,基于Linux系统构建僵尸网络是一种常见的攻击方式。PyCryptoMiner僵尸网络是基于python脚本语言编写的,可以静默传播;而且很难被检测到,因为用脚本语言编写的恶意软件可以很容易被混淆。同样,脚本是通过合法的二进制文件触发执行的,可以是Linux和Windows版本的PERL/Python/Bash/Go/Powershell中的一种。
Botnet僵尸网络运作原理
一旦扫描僵尸机成功猜到目标Linux机器的SSH登录凭证,就会用一个简单的base64编码的python脚本连接到C&C服务器,目的是获取和执行另外的python代码。
图1: 混淆后python脚本
但是,僵尸的创建者还用了其他的手段。大多数的恶意软件是C&C服务器地址是硬编码的,这种情况下,攻击者无法告诉僵尸网络去转换C&C服务器。PyCryptoMiner僵尸网络中,如果原来的C&C服务器不可达,攻击者会用Pastebin.com来发布备用的C&C服务器地址。
图2: Pastebin.com上备用的C&C服务器地址
攻击者需要解决的一个大问题是如果确保C&C服务器不被企业安全解决方案纳入黑名单中,或者被ISP中断服务。所以攻击者用bullet-proof的主机服务,攻击者也在使用Dropbox.com和Pastebin.com这样的公共文件主机服务,因为这种一般不会被加入黑名单。攻击者可以随时更新C&C服务器的地址。
该攻击活动应该是从2017年8月之前开始的,因为Pastebin.com上用户名为WHATHAPPEN的用户在2017年8月21日发布了一条信息,因为浏览次数为177987次,,而且每天的浏览量大约增加1000次所以我们可以估算出出该僵尸网络的数量。
图3: Pastebin.com资源数据
通过深入分析,我们发现了同一用户名(WHATHAPPEN)创建的更多相关信息,而且好像是同样的python脚本,主要的区别是他们是与两个不同的C&C服务器通信的。
图4: Pastebin.com上的相关资源
通过查询C&C服务器的域名zsw8.cc,我们发现注册名是xinqian Rhys。
图5: C&C 域名的注册数据
该注册者有235个关联的邮箱地址和36000个域名,而这些大多是与诈骗、赌博和成人服务相关的。
图6: 上万个有关联的域名
感染流Infection Flow
该僵尸网络的应用过程是分阶段的。
Python脚本执行后,会从C&C服务器取回一个base64编码的python脚本,而这就是被感染机器的主控制器。
图7: Python脚本
该控制器脚本会在受感染的机器上注册一个定时任务,这样就可以长期留在感染设备中。最初的那个名为httpsd的脚本含有一个base64编码的python脚本,每6小时执行一次。
图8: 在crontab中加入spearhead脚本
然后从受感染的设备上收集下面的信息:
Host/DNS name主机、DNS名 OS name and its architecture 操作系统和架构 Number of CPUs CPU数量 CPU usage CPU利用率
收集的信息暗示了僵尸网络背后的商业模型应该是加密货币挖矿机。
僵尸主机同时会检查设备有没有被恶意软件感染,如果被感染,就检查受感染主机的当前状态(目的、意图)。检查是通过搜索预先定义的恶意软件名来完成的。同时,僵尸主机可以以挖矿节点(httpsd进程或minerd进程)或者扫描节点(webnode进程或safenode进程)的形式出现。
图9: 僵尸节点的类型
收集的信息会发送给C&C服务器,C&C服务器会以python词典的形式将任务详情发回给僵尸主机。
图10: 受感染主机发送收集的信息给C&C
任务(task)包括:
Cmd 任意代码以隔离的进程的形式执行 Client_version 如果当前僵尸的版本与从服务器端接收的版本信息不同,等待cron任务来执行spearhead脚本来进行升级 Task_hash task的唯一识别号,这样C&C服务器就可以同步僵尸网络的结果,因为每个命令的执行时间是不同的 Conn_cycler 选择C&C服务器的时间间隔,这是由bot master控制的,可能是为了平衡C&C服务器的负载,默认为15秒
一旦任务执行,僵尸主机就会发送命令执行的结果给C&C服务器,包括 task_hash和bot identifiers。
图11: 客户端执行任务并发送结果给C&C
在研究中,僵尸的目的是加密货币挖矿机,可以感染名wipefs的二进制可执行文件,这是2017年8月之后检测到的恶意变种。
图12: 来自VirusTotal 的恶意软件信息
可执行文件是基于xmrminer的,是进行Monero挖矿的,这种加密货币的匿名性非常好,非常适合网络犯罪。
利用JBoss Deserialization (CVE-2017-12149)漏洞
研究人员发现,该僵尸网络也是在不断发展的,12月中旬的时候,WHATHAPPEN帐号发布了一个名为jboss的资源。
图13: 僵尸网络在不断发展
Jboss的内容是一个base64编码的python代码。
图14: jboss是base64编码的python代码
代码是一个寻找Jboss服务器的扫描功能,僵尸主机会尝试寻找CVE-2017-12149的漏洞,而该漏洞公布的时间并不长。僵尸主机会通过JBoss使用的7个TCP端口来发送请求给 /invoker/readonly。如果服务器响应含有Jboss字符串的错误(如500状态代码),就会把目标的URL报告给C&C服务器。
图15: 扫描JBoss服务器的漏洞
要扫描的目标列表是由C&C服务器控制的,而僵尸有一个单独的进程可以向C&C服务器报告新的目标,服务器会响应一个要扫描的C类IP地址的范围,而不是提供一个单独的IP地址。
图16: 从C&C服务器获取要扫描的目标
经济利益
僵尸网络所用的两个地址支付了94和64门罗币,因为价值是变动的,158门罗币的价值约为6万美元(约40万人民币)。
图17: 第一个挖矿地址挖到的门罗币
图18: 第二个挖矿地址挖到的门罗币
IOCs
Hash
d47d2aa3c640e1563ba294a140ab3ccd22f987d5c5794c223ca8557b68c25e0d
C&C
http://pastebin.com/raw/yDnzKz72 http://pastebin.com/raw/rWjyEGDq http://k.zsw8.cc:8080 (104.223.37.150) http://i.zsw8.cc:8080 (103.96.75.115) http://208.92.90.51 http://208.92.90.51:443 http://104.223.37.150:8090
Infected Machine
/tmp/VWTFEdbwdaEjduiWar3adW /bin/httpsd /bin/wipefs /bin/wipefse /bin/minerd /bin/webnode /bin/safenode /tmp/tmplog