快捷搜索:  网络  后门  扫描  渗透  CVE  木马  黑客  as

一次Linux遭入侵,挖矿进程被隐躲案例阐发

1、违景

云鼎实验室曾阐发不少入侵挖矿案例,研究发现入侵挖矿举动都比较粗暴简单,通过 top 等命令可以直接看到恶意进程,挖矿进程不会被刻意隐躲;而现在,我们发现黑客最先不断使用一些隐躲手段去隐躲挖矿进程而使它获得更久存活,今天阐发的内容是我们过去一个月内拿获的一块儿入侵挖矿事故。

二、入侵阐发

本次拿获案例的入侵流程与以往相比,没有特殊之处,也是行使通用漏洞入侵服务器并获得相干权限,从而植入挖矿程序再进行隐躲。

通过对几个案例的阐发,我们发现黑客主若是行使 Redis 未授权走访问题进行入侵,对于该问题的说明可以参考我们过去做的一些阐发:

https://mp.weixin.qq.com/s/inazTPN5mHJYnt2QDliv8w

在服务器被入侵后,起首可以显然感觉到服务器的资源被占用而导致的操作迟缓等问题,通过一些常规手段可以发现一些异常信息,但又看不到进程信息:

一次Linux遭入侵,挖矿进程被隐藏案例分析通过 top 命令,可以看到显示的 CPU 使用率较低,但 ni 值为 100 ;同时通过 /proc/stat 计算 CPU 使用率又基本是 100% 。 

一次Linux遭入侵,挖矿进程被隐藏案例分析通过 netstat 查看端口监听情形,也能够看到异常的连接。

一次Linux遭入侵,挖矿进程被隐藏案例分析

通过在 Virustotal 查询 IP,可以看到 DNS 指向为矿池域名。

通过 find 命令查找入侵时间范围内变更的文件,对变更文件的排查,同时对相干文件进行阐发,基本可以确认黑客使用的进程隐躲伎俩。

一次Linux遭入侵,挖矿进程被隐藏案例分析一次Linux遭入侵,挖矿进程被隐藏案例分析

在变更文件里可以看到一些挖矿程序,同时 /etc/ld.so.preload 文件的变更需要引起注意,这里触及到 Linux 动态链接库预加载机制,是一种经常使用的进程隐躲要领,而 top 等命令都是受这个机制影响的。

在 Linux 操作体系的动态链接库加载过程中,动态链接器会读取 LD_PRELOAD 环境变量的值以及默认设置文件 /etc/ld.so.preload 的文件内容,并将读取到的动态链接库进行预加载,黑客技术,即使程序不依靠这些动态链接库,LD_PRELOAD 环境变量以及 /etc/ld.so.preload 设置文件中指定的动态链接库依然会被装载,它们的优先级比 LD_LIBRARY_PATH 环境变量所定义的链接库查找路径的文件优先级要高,所以能够提前于用户调用的动态库载入。

——段落引自《警惕行使 Linux 预加载型恶意动态链接库的后门

通过查看文件内容,可以看到加载一个 .so 文件:/usr/local/lib/libjdk.so

一次Linux遭入侵,挖矿进程被隐藏案例分析

而这个文件也在文件变更列表里。

我们通过查看启动的相干进程的 maps 信息,也能够看到相干预加载的内容:

一次Linux遭入侵,挖矿进程被隐藏案例分析

通过对 libjdk.so 的逆向阐发,我们可以确认其首要功能就是过滤了挖矿进程,详细可见下文阐发。

在知道了黑客使用的隐躲伎俩后,直接编辑 /etc/ld.so.preload 文件去掉相干内容,然后再通过 top 命令即可看到挖矿进程:

一次Linux遭入侵,挖矿进程被隐藏案例分析一次Linux遭入侵,挖矿进程被隐藏案例分析通过查看 /proc/ 下进程信息可以找到地位,看到相干文件,直接进行清理即可: 

一次Linux遭入侵,挖矿进程被隐藏案例分析一次Linux遭入侵,挖矿进程被隐藏案例分析继续阐发变更的文件,还能看到相干文件也被变更 ,譬如黑客通过修改 /etc/rc.d/init.d/network 文件来进行启动:

一次Linux遭入侵,挖矿进程被隐藏案例分析同时修改 /etc/resolv.conf : 

一次Linux遭入侵,挖矿进程被隐藏案例分析还修改了 HOSTS 文件,猜测是屏蔽其他挖矿程序以及黑客入侵: 

一次Linux遭入侵,挖矿进程被隐藏案例分析同时增添了防火墙规则: 

查询 IP 可以看到是一个国外 IP : 

一次Linux遭入侵,挖矿进程被隐藏案例分析

3、样本阐发

通过对样本逆向阐发,发现样本 libjdk.so 主若是 Hook 了 readdir 以及 readdir64 两个函数:

一次Linux遭入侵,挖矿进程被隐藏案例分析对应修改后的 readdir 函数结构以下(readdir64 函数也是类似的): 
一次Linux遭入侵,挖矿进程被隐藏案例分析get_dir_name 函数结构:

一次Linux遭入侵,挖矿进程被隐藏案例分析get_proces_name 函数结构: 

一次Linux遭入侵,挖矿进程被隐藏案例分析process_to_filter 常量定义以下:

一次Linux遭入侵,挖矿进程被隐藏案例分析

全部函数功能结合来看就是判定要是读取目录为 /proc,那么遍历的过程中要是进程名为 x7,则过滤,而 x7 就是挖矿进程名。

而类似于 top、ps 等命令在显示进程列表的时辰就是调用的 readdir 要领遍历 /proc 目录,因而挖矿进程 x7 就被过滤而没有出现在进程列表里。

4、附录

IOCs:

样本

1. 4000dc2d00cb1d74a1666a2add2d9502

2. 8bd15b2d48a051d6b39d4c1ffaa25026

3. e2a72c601ad1df9475e75720ed1cf6bf

4. d6cee2c684ff49f7cc9d0a0162b67a8d

矿池地址

1. xmr-asia1.nanopool.org:14433

2. 123.56.154.87:14444

钱包地址

42im1KxfTw2Sxa716eKkQAcJpS6cwqkGaHHGnnUAcdDhG2NJhqEF1nNRwjkBsYDJQtDkLCTPehfDC4zjMy5hefT81Xk2h7V.v7

相干链接:

1.https://mp.weixin.qq.com/s/inazTPN5mHJYnt2QDliv8w

2.https://cloud.tencent.com/product/hs

*

您可能还会对下面的文章感兴趣: