linux挖矿处置

时间:2022-12-22 13:08:15

挖矿的类型

  1. 主动挖矿:用户在个人电脑或服务器使用挖矿程序进行CPU,GPU计算,获取虚拟货币。
  2. 被动挖矿:挖矿病毒通过系统漏洞,恶意程序,弱口令等方式入侵服务器,设备感染挖矿病毒后会开始挖掘虚拟货币。
  3. 前端挖矿:JS挖矿,挖矿病毒嵌入到网页的javascript中,用户访问网页时浏览器执行挖矿命令,现在比较少。不稳定,用户关闭浏览器挖矿程序可能就停止运行了。

常见挖矿事件的行为

  1. 访问恶意域名
  2. CPU GPU占用率高
  3. 端口扫描行为

挖矿的排查思路

总体思路就是:隔离被感染主机   进程确认和系统排查   清除挖矿木马  加固与防范

一:初步判断:是否遭受挖矿攻击,攻击时间,传播范围,网络环境等。

二:异常进程与文件:隔离被感染的主机后,就要确定挖矿的恶意进程及其关联的恶意样本,以便后续进行清楚工作。

三:系统排查:挖矿木马会创建恶意的进程连接矿池,利用计算机CPU,GPU资源来挖矿。同时会利用系统的功能来实现持久化,例如创建用户,计划任务,启动项,注册表等。

四:日志排查:登录日志,服务器日志,安全设备日志,做一下根因分析,避免加固后再次出现同类问题。

 

具体的排查操作

  • 异常进程与文件
  1. 使用top 命令查看占用CPU最高的进程

      2.ps命令也可以定位高CPU占用的进程。

  ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head -n 5    cpu占用前5的信息

  •  网络连接排查 netstart

netstart -anltp  查看到可疑ip可以到威胁情报上去确认是否为矿池域名或恶意地址

  • 查看可疑的进程文件

经过上面排查,基本获取到进程的pid,可以依据pid去查找相关恶意文件

lsof -p pid

ls -al /proc/[pid]/exe   定位程序的实际路径

  •  结束进程清除文件

kill -9 pid

  • rm 删除可疑的程序文件

rm -rf 文件路径

  • 有些时候无法通过上述排查定位pid,可能是将/proc/pid进行了隐藏,可以通过以下方式隐藏

mkdir .hidden

mount -o bind .hidden /proc/pid

这种情况可以使用  cat /proc/$$/mountinfo

 

恶意程序为了持久化驻留,还会创建计划任务 ,启动项,用户账号等

计划任务排查

1.使用计划任务命令查询   crontab -u root -l 查看root用户计划任务

2.查看/etc下计划任务文件

ls /etc/cron*  查看/etc目录下所有计划任务文件

常见的定时任务文件

/var/spool/cron/*    #centos的

/var/spool/cron/crontabs/*    #ubantu的

/etc/anacrontab*   异步定时

/etc/cron.hourly/*

/etc/cron.daily/*

/etc/cron.weekly/*

/etc/cron.monthly/*

  • 启动项排查

chkconfig    查看开机启动项目

cat /etc/init.d/rc.loacal  查看init.d文件夹下的rc.local文件内容

cat /etc/rc.local    查看rc.local文件内容

ls -alt /etc/init.d  查看init.d文件夹下所有文件的详细信息

不同的linux发行版查看开机启动项的文件不大相同,Debian系linux一般查看/etc/init.d目录最近有无修改和异常的开机启动项;Redhat系一般查看/etc/rc.d/init.d或者/etc/syetemd/syetem等目录。

  • 可疑账号排查

查找可登录账号:  cat /etc/passwd | grep -E "/bin/bash$" | awk -F: '{print $1}'

查找超级用户:  awk -F: '$3==0 {print $1}' /etc/passwd

查找公钥文件

  cat /root/.ssh/*.pub

  cat /root/.ssh/authorized_keys

  • 日志排查

登录成功  more /var/log/secure* | grep "Accepted password"

登录失败 more /var/log/secure* | grep "Failed password"

空口令登录  more /var/log/secure* | grep "Accepted none"

新增用户  more /var/log/secure* | grep "new user"

历史命令   history        cat /root/.bash_history

系统日志排查无果的话,可以排查其他服务的日志,如web 中间件等

  • Linux的库文件劫持

  排查时命令如果无法正常显示效果,可能是文件被劫持或做了替换,这种情况可以使用busybox来查看