Linux主机肉鸡木马minerd导致CPU跑满

简介: Linux主机肉鸡木马minerd导致CPU跑满 【问题现象】 Linux主机CPU跑满,或者使用服务器越来越慢,以及收到报警信息提示服务器有对外恶意扫描。 【问题原因】 这种状况在出现时通过top命令可以看到有一个minerd进程占用CPU较高。

Linux主机挖矿木马minerd导致CPU跑满

【问题现象】
Linux主机CPU跑满,或者使用服务器越来越慢,以及收到报警信息提示服务器有对外恶意扫描。

这个现象的第一反应就是服务器被黑了,遇到这种情况首先要做的是对服务器进行一下数据备份,通过阿里云的快照备份功能是可以快速的实现对服务器以及系统内部数据的备份的。
【问题原因】
这种状况在出现时通过top命令可以看到有一个minerd进程占用CPU较高。
screenshot

经定位,该进程是一个挖矿程序,通过上述截图可以看到进程对应的PID为1170,根据进程ID查询一下产生进程的程序路径

执行ll /proc/$PID/exe,其中$PID为查询到的进程ID
异常程序在/opt目录下
screenshot

此程序一般是由计划任务产生的,Linux系统中默认创建了计划任务后会在/var/spool/cron目录下创建对应用户的计划任务脚本,执行ls /var/spool/cron 查询一下系统中是否有异常的计划任务脚本程序。
可以看到,在此目录下有1个root的计划任务脚本和一个异常的目录crontabs(默认情况下不会有此目录,用户创建计划任务也不会产生此目录)
screenshot

查看脚本内容,有一个每隔10分钟便会通过curl下载执行的脚本程序(crontabs目录下为同样内容的计划任务)
screenshot

手动将脚本内容下载到本地,脚本内容如下
screenshot

分析此脚本,主要进行了如下修改
1、创建了上述查看到的两个计划任务脚本
2、创建了密钥认证文件,导入到了/root/.ssh目录下(当前脚本的密钥文件名是KHK75NEOiq,此名称可能会有所变化,要根据具体情况进行核实)
3、修改ssh配置文件允许了root远程登录,允许了密钥认证,修改默认的密钥认证文件名
4、重启了sshd服务使配置生效
5、创建了伪装程序ntp,并运行了ntp程序
6、查询系统中是否有正常运行的计划任务,杀死正在运行的计划任务进程。

【处理方法】
根据以上分析,提供以下处理方法
1、删除计划任务脚本中异常配置项,如果当前系统之前并未配置过计划任务,可以直接执行rm -rf /var/spool/cron/* 情况计划脚本目录即可。
2、删除黑客创建的密钥认证文件,如果当前系统之前并未配置过密钥认证,可以直接执行rm -rf /root/.ssh/* 清空认证存放目录即可。如果有配置过密钥认证,需要删除指定的黑客创建的认证文件即可,当前脚本的密钥文件名是KHK75NEOiq,此名称可能会有所变化,要根据具体情况进行核实。
3、修复ssh配置项,根据个人需求进行修改,一般默认脚本中进行修改的PermitRootLogin、RSAAuthentication、PubkeyAuthentication为开启状态,需要修改的是密钥认证文件名,建议修改成默认值AuthorizedKeysFile .ssh/authorized_keys即可。修改完成后重启sshd服务,使配置生效即可。
screenshot

4、删除黑客创建的伪装程序ntp
执行ls /etc/init.d/可以看到系统中是由对应的伪装程序的
注意:这里一定要谨慎操作,系统本身是有一个ntpd的服务,操作是千万不要把系统本身的ntpd服务给删掉了
screenshot

通过chkconfig --list ntp 可以看到此程序默认设置的是开机自动启动
screenshot

如果此程序不进行清除,即使删除了minerd程序并且杀死了对应的进程,过一会系统还会重新创建minerd程序,并产生新的进程
查询一下当前系统中是否有ntp进程,可以看到ntp进程是通过/usr/sbin/ntp程序产生,因此需要把对应的执行程序也进行删除
screenshot

总结一下删除伪装程序的操作步骤
kill -9 $PID 杀死查询到的ntp进程
rm -rf /etc/init.d/ntp
rm -rf /usr/sbin/ntp (此路径要根据具体的查询数据确定,实际情况可能会有所变化)
5、根据之前的查询minerd程序所在路径为/opt,在执行的脚本中同时也在/opt目录下创建了一个KHK75NEOiq33的程序文件,因此要删除这两个文件,执行rm -rf KHK75NEOiq33 minerd 即可
screenshot

6、使用kill命令杀死minerd进程
通过ps命令查询一下minerd对应的进程详细情况
screenshot

kill -9 $PID 杀死对应的进程ID
备注:根据ps查询结果显示minerd有向域名xmr.crypto-pool.fr进行数据通信,通过ping测试域名解析核实此域名对应的IP地址,然后在ip.taobao.com进行查询显示IP为法国的IP,然后通过iftop -i eth1 -PB命令对流量进行了监控,确实存在向法国的IP发送数据的情况,为了避免再次被入侵,可以通过iptables屏蔽对应的异常IP(具体的IP和域名要根据实际查询的情况而定,可能会有所不同)
screenshot

以上修复完成后可以等待一会再次进行一下观察,看看是否还会在/opt目录下创建新的minerd程序,以及是否还有新的minerd进程产生。

最后,建议平时增强服务器的安全维护,比如服务器远程严格控制访问,只允许特定的地址对服务器进行连接,这一点可以通过安全组和防火墙来进行实现。或者设置ssh秘钥连接,修改默认的远程端口等提升远程服务的安全性。

优化代码,及时修复服务器和程序漏洞,阿里云的安骑士是有提供系统和应用的漏洞检测功能的,可以经常关注一下安骑士的漏洞检测状态,有漏洞提醒时及时进行补丁和漏洞修复。

相关文章
|
10天前
|
Linux
Linux rsyslog占用内存CPU过高解决办法
该文档描述了`rsyslog`占用内存过高的问题及其解决方案。
34 4
|
1月前
|
存储 缓存 固态存储
深度解析linux主机:从应用到硬盘,玩转系统I/O性能优化攻略!
深度解析linux主机:从应用到硬盘,玩转系统I/O性能优化攻略!
|
1月前
|
移动开发 运维 监控
掌握Linux运维利器:查看CPU和内存占用,轻松解决性能问题!
掌握Linux运维利器:查看CPU和内存占用,轻松解决性能问题!
|
1月前
|
Linux
如何在linux中查看cpu信息、机器硬件型号
如何在linux中查看cpu信息、机器硬件型号
|
1月前
|
移动开发 Linux
Linux下如何查看哪些进程占用的CPU内存资源最多
Linux下如何查看哪些进程占用的CPU内存资源最多
|
15天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
13天前
|
网络协议 Linux 程序员
【Linux】虚拟机ipv4地址消失,主机ping不通
【Linux】虚拟机ipv4地址消失,主机ping不通
28 0
|
13天前
|
运维 网络协议 Linux
Linux(28) Linux双网卡配置为连接到Linux主机的PC提供外网访问
Linux(28) Linux双网卡配置为连接到Linux主机的PC提供外网访问
48 1
|
24天前
|
Linux
如何在Linux系统上查看CPU使用率?
以上命令可以帮助你监视和分析Linux系统中的CPU使用率,可以根据需要选择合适的命令进行查看。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
14 0
|
27天前
|
Linux
Linux操作系统调优相关工具(一)查看CPU负载相关工具 找出系统中使用CPU最多的进程?
Linux操作系统调优相关工具(一)查看CPU负载相关工具 找出系统中使用CPU最多的进程?
19 0