利用ngrok传播样本挖矿

概述

"链治百病,药不能停"。时下各种挖矿软件如雨后春笋层出不穷,想把他们都灭了,那是不可能的,这辈子都不可能的。通常我们都忽略他们。但这个利用ngrok生成大量随机域名作为Downloader和Report域名,对抗安全设施阻断其域名,隐藏真实服务器地址的挖矿恶意样本成功的引起了我们的注意。

该恶意样本的主要特点是:

使用ngrok定期更换的随机域名作为Downloader和Report域名。

利用redis,docker,jenkins,drupal,modx,CouchDB漏洞植入xmr挖矿程序挖矿。

企图扫描以太坊客户端,盗取以太币,当前未实际启用。

企图感染目标设备上的js文件,植入CoinHive挖矿脚本浏览器挖矿。

动态生成挖矿脚本和扫描脚本。

该挖矿样本主要模块由Scanner脚本,Miner脚本,Loader构成。Scanner模块负责扫描和上报漏洞信息给Loader。Loader负责给存在漏洞的设备植入Scanner和Miner。Miner负责挖矿。

Ngrok

ngrok是一个反向代理,其核心概念是作为一个转发服务器,将公网请求转发到内网指定的端口上,让内网资源得以在公网上访问。其工作原理如下图:

ngrok使用方式:先去ngrok.io注册一个服务,然后在本地启动ngrok client,把流量转到内网端口,ngrok client端会获得服务端随机分配的ngrok子域名,通过这些子域名就可以从外网访问内网资源了。免费模式下ngrok client可以有一个进程,一个进程可以有4个tunnel,每个tunnel会获得一个子域名,并且每次重启client重新获得每个tunnel对应的子域名。

域名存活周期

为了方便直观展示其所用域名的存活周期,我们绘制了该挖矿样本最近48小时所使用的各个域名我们能成功从该域名上下回来样本的次数的Heatmap。从图上可以看出该样本周期性更换其使用的域名,所使用的域名存活时间不超过12小时。实际上从我们的数据看该挖矿样本最早出现在6月下旬,域名切换规律一直如此。

Scanner

由Loader植入,植入时生成待扫描IP范围,Report以及Downloader域名硬编码在Scanner脚本中。具体执行流程:

下载扫描过程使用工具zmap,zgrab,jq

下载以太坊客户端geth扫描payload

漏洞扫描,使用zmap扫描端口开放,然后用zgrab做应用层扫描,当前该恶意样本扫描6379/2375/80/8080/5984端口,查找 redis,docker,jenkins,drupal,modx,couchdb服务

上传扫描结果

删除痕迹退出

Miner

Loader植入阶段生成Report,Downloader域名硬编码在Miner脚本中:

执行流程:

下载运行fc,是个全局标记,用来区分感染状态的,如果样本成功运行,说明感染成功。如果运行失败,记录错误信息,用来上报给Report。

杀死竞争对手

生成旧版本的自己的Report信息,包括进程名称,矿机MD5,矿机文件路径。用来上报给Report。

杀死旧版本的自己

下载daemon(进程管理工具),nginx(矿机)运行。

查找/etc/hosts中是否有其他矿工域名,如果有,将"127.0.0.1 localhost"写入/etc/hosts,用来清空其他矿工快速域名解析记录

清除非自己的crontab任务

在当前目录下的js脚本中插入CoinHive挖矿脚本, 感染肉鸡上的js文件。或许这是个bug,因为当前目录是其工作目录,下并没有js文件。

上报矿机运行信息

矿机运行成功,报告矿机进程ID,感染设备IP ID,CPU数量,感染设备所用漏洞,当前用户名。

矿机运行失败,报告错误信息, 包括感染结果,旧版本矿机运行信息(进程名称,矿机MD5,运行文件路径), crontab错误信息等

挖矿配置如下:

IoC

MD5

曾经使用过的Loader IP

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180912B0QO0F00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券