内网主机频繁出现异常性能过高问题案例分析 – 作者:abtnetworks2018

简介:为您完整复盘挖矿病毒的查杀过程。

1、问题描述

合作伙伴频繁出现内网主机异常性能过高的问题,对日常办公造成了不良影响。

为定位问题,部署了下一代防火墙(NGFW)、安全分析平台产品,并开启威胁情报服务进行观察。

2、处理过程

产品部署后,在NGFW日志中发现一台内网服务器(X.X.X.49)访问了外网地址(91.121.140.167),并被入侵防御系统(IPS)规则识别为矿机外联行为,随即对其进行阻断。

1)了解网络情况

合作伙伴反馈,该主机所在网段内均为内网业务服务器与主机,承载内网和分支机构的业务访问功能,不会主动访问公网,故判定该主机行为异常,需要进一步排查。

2)确认挖矿行为

远程登录(SSH)可疑主机(X.X.X.49),使用netstat-anop查看该主机的连接情况,发现它与一个与外网地址相连,且该地址与防火墙日志上的目的地址(91.121.140.167)相同,同时该连接没有PID与Program name相关信息,情况明显异常。

TipsPID (process identification)代表进程标识号,在大多数操作系统内核(如Linux、Unix、macOS 和 Windows)中使用,它是在操作系统中创建进程时,自动分配的唯一标识号。一个进程即一个正在运行的程序实例。

1.jpg

威胁情报服务同样监控到了这个IP地址,发现它关联了5条反向DNS信息,其中4个域名都与supportxmr.com有关。

2.jpg

在网上查找域名supportxmr.com,该域名对应的是一个矿池。

3.jpg

至此可以初步确认,内网服务器(X.X.X.49)与外部矿池supportxmr.com有连接,存在挖矿行为。

3)查找挖矿程序

挖矿程序一般会占用大量系统资源,最直接的表现就是CPU占用很高,因此从CPU使用情况入手排查。

在问题主机上通过top命令查看CPU占用进程,发现各进程的CPU占用率都很正常,没有特别高的情况;但是用户态(us)占用率很高,达到了90.2%。这种情况,很有可能是系统top命令输出被篡改了。

5.jpg

根据以往的运维经验,判断系统被修改了/etc/ld.so.preload,从而影响了top命令输出使用的 find /etc -mtime1 |grep ld.so.preload。

事实证明该文件的确被修改过。通过ls–la /etc/ld.so.preload命令查看文件的修改时间,可以看到在5月23日22点19分被修改。

6.jpg

通过cat/etc/ld.so.preload命令进一步查看文件内容,可以看到该文件加载了一个so文件 libprocesshider.so,so文件是二进制文本类型。

7.jpg

将/etc/ld.so.preload的内容删除,再通过top命令查看CPU占用情况。这次显示了一个CPU占用很高的程序,程序名称为.sh,PID为10273,基本可以断定.sh就是挖矿程序。

8.jpg

4)删除挖矿程序

根据挖矿程序的PID查看进程文件,可以看到在/usr/lib/mysql目录下有一个名为.sh的可疑文件。

9.jpg

查看该文件的MD5值为“6a034a7041f30688086080a1c922e60”。

10.jpg

在/etc/目录下查找是否还有/tmp/.sh文件,发现名为/bin/shh的可疑文件。

11.jpg

该文件的MD5值同样为“6a034a7041f30688086080a1c922e60”。

查看/etc/profile.d/php.sh文件,发现是一个先复制并执行脚本,而后删除脚本的文件。

12.jpg

在/etc/profile.d/目录下,根据文件修改时间这一特征,还发现了一个名为supervisor.sh的可疑文件。

13.jpg

文件supervisor.sh是以supervisord起的一个守护进程,相关配置放在文件/etc/.supervisor/supervisord.conf中。

14.jpg

查看supervisord.conf文件 ,找到配置文件是在conf.d目录下任意后缀为.conf的文件

15.jpg16.jpg

查看conf.d目录,发现名为123.conf的文件。

17.jpg 

通过文件123.conf,可以定位到.sh的再上层路径/etc/spts,以及输出文件位置。

18.jpg

查看/etc/spts的MD5值,发现其MD5值依然为“6a034a7041f30688086080a1c922e60”。

19.jpg

另外,查看定时任务时,发现系统会定时将/etc/.sh复制到/tmp/下执行再删除,达到隐藏自身的目的。

20.jpg

查看/etc下文件,发现名为.sh的脚本。

21.jpg

该文件的MD5值为“6a034a7041f30688086080a1c922e60”,与/usr/lib/mysql/.sh的MD5一致,说明两个文件是相同的。

至此,挖矿程序已定位确认,将对应的恶意文件和进程及守护程序和进程删除即可初步解决问题。为了避免系统中其他位置还隐藏了该恶意文件,通过find /etc -type f -print0 |xargs -0 md5sum|grep “6a034a7041f306880886080a1c922e60″命令,使用MD5特征找出系统中所有的恶意文件并删除。

3、后续安全加固

解决单点问题后,为了避免同类问题在内网中大量复制,应用安全分析平台与防火墙进行安全加固。

1)缩小攻击面

通过安全分析平台查看该服务器的开放端口, 发现主机存在未对外开放的3306与22端口,需要禁止外部访问。

22.jpg

在NGFW上禁止其它网络访问此服务器的3306和22端口,并加入服务对象“风险端口”中。

23.jpg

将服务器IP加入到地址对象“server”中。

24.jpg

配置IPv4控制策略并将策略优先级调到最高,阻断所有访问3306和22端口的流量。

25.jpg

2)清除横向扩散威胁

通过安全分析平台的天眼功能查询矿池域名pool.supportxmr.com的访问记录,确认只有服务器(X.X.X.49)访问过该矿池,基本确认其他主机没有感染挖矿病毒。

26.jpg

通过安全分析平台查询服务器(X.X.X.49)的行为记录,发现它并没有扫描内部主机,结合天眼功能查询域名的结果,基本确认暂不存在横向扩散风险。假设该服务器作为跳板对其它主机进行访问,将被安全分析平台记录并告警。

27.jpg

通过查看该服务器的访问关系,发现它可能被X.X.X.59和X.X.X.20扫描过,这两台主机可能已经被感染或控制。

28.jpg

其中X.X.X.59为外网IP,确认该IP与业务无关,加入防火墙黑名单。

29.jpg

X.X.X.20为内网办公PC,使用主机安全工具对它及同类主机进行了风险分析与加固。

3)加固系统

通过NGFW产品资产安全分析模块,发现内网有较多存在安全风险的主机,通过主机安全解决方案进行系统加固和风险清除,提升内网资产的安全系数。

30.jpg31.jpg32.jpg

4)升级NGFW特征库阻断威胁

在查杀挖矿病毒的过程中,获取到这个病毒的特征,随即加入到NGFW病毒特征库中,用户直接在线升级即可获得最新的病毒库版本,防止再次受到此病毒的攻击。

另外,将IP地址91.121.140.167、域名supportxmr.com及MD5值6a034a7041f30688086080a1c922e60更新到威胁情报中,为更的用户提供该病毒情报,阻止此威胁在其他网络扩散。

4、总结复盘

复盘此次挖矿病毒的查杀过程:

l  首先,了解网络情况,根据实际情况确定排查思路和方法。

l  其次,通过查看防火墙日志,协同威胁情报平台,确认挖矿行为的存在。

l  之后,通过挖矿程序占用CPU这个特征,找到对应的挖矿程序。

l  完成定位后,查找并删除系统中所有的挖矿程序。

l  最后,对网络进行安全加固,包括病毒查杀、加固系统、升级防火墙特征库、针对性配置安全防护策略等。

来源:freebuf.com 2020-06-10 16:52:43 by: abtnetworks2018

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论