服务器挖矿病毒处理
前言
在某天早晨日常检查服务器状态时发现CPU负载一直徘徊在50%左右居高不下,使用top命令发现陌生进程占用高额CPU,从而初步判定服务器被植入“挖坑病毒”,服务器被当“肉鸡”了
什么是挖坑病毒
简单来说它是一种恶意程序,利用高性能计算机进行虚拟货币的挖矿活动。这种病毒会伪装成正常文件进入受害者的电脑,利用主机或操作系统的高危漏洞,结合高级攻击技术在局域网内传播,控制电脑进行大量的计算机运算以获取虚拟货币,如比特币,这些虚拟货币可以通过交易平台进行出售,从而转化为实际的经济利益(截止目前:1 比特币 约等于 62119 美元🫡)
挖矿概念(以比特币为例):比特币系统每隔一段时间就会在节点上生成一个 “随机代码”,互联网中的所有设备都可以寻找这个代码,谁先找到就能获得奖励,“寻找代码” 的过程,就是挖矿
挖矿病毒特点:CPU占用高,服务器上的业务响应变得异常缓慢(设备通过计算来筛选符合条件的随机代码,每找到一个随机代码往往需要上万亿次的哈希运算,故而设备CPU通常会被顶满。所以为了降低成本,黑客往往都会通过入侵设备的方式,控制别人的计算机来帮自己“挖矿”)
中病毒后如何处理?
使用top命令查询cpu高占用进程
1
top
尝试杀死进程
1
kill -9 {挖矿进程Id}
一般情况下在kill当前进程后过段时间又会进行重启生成另一个进程Id,从而出现无论如何都杀不掉当前进程的情况。通常遇到这种情况一般为存在父进程,需先找寻父进程,如下:
1
2
3
4
5
6
7
8进入进程号启动目录
cd /proc/{进程Id}
查看当前进程状态信息,并找到父进程Id => PPId
cat status
先杀掉父进程
kill -9 {父进程Id}
再杀掉子进程
kill -9 {进程Id}然而在找寻父进程Id时,可能发现病毒程序父进程Id为1(进程号为1的进程通常称为init,它是用户空间中的第一个进程,也是系统启动后第一个被创建的进程。它负责初始化系统,并启动其他进程),这种情况下病毒可能通过定时任务执行,故而需进行后续文件清理工作
后续文件清理
清理定时任务
1
2
3
4
5
6查询定时任务列表(查看是否有陌生任务运行)
crontab -l
进入定时任务管理文件下
cd /var/spool/cron
进入定时任务文件删除陌生任务并保存
vim {文件}攻击者在权限足够的情况下,往往都会写多个定时任务,达到持续执行挖矿脚本的目的
清理病毒程序
1
2
3
4
5
6找寻病毒程序启动所在位置
ls -l /proc/{病毒PID}/exe
清理目录
rm -rf {文件上一级目录}
杀死病毒线程
kill -9 {进程Id}清理病毒程序相关文件,一是防止有任务调度再次运行程序,二是优化空间
取消tmp目录的可执行权限
1
2chattr -R -ai /tmp/ /var/tmp/ /dev/shm/
chmod -R -x /tmp/ /var/tmp/ /dev/shm/攻击者往往会把运行脚本隐藏在tmp(临时文件)目录下,统一取消tmp目录下所有文件的可执行权限
清理服务器陌生密钥认证文件
1
rm -rf /root/.ssh/
如果自己没有配置的话清空整个目录即可,防止攻击者在此目录下配置了秘钥
后续防范
- 定期更改服务器或服务器上软件密码,密码⻓度不⼩于8位并且使⽤⼤写字⺟/⼩写字⺟/数字/特殊字符组合;
- 更改远程登录端⼝并开启防⽕墙限制允许登录的IP,防⽕墙配置只开放特定的服务端⼝并对FTP、数据库等这些不需要对所有⽤户开放的服务进⾏源IP访问控制;
- 检查是否开放了未授权的端⼝,陌生端口及时关闭
- 对服务器进⾏日常全盘病毒扫描和查杀;
- 对于服务器上软件程序进⾏定期漏洞排查以及升级
- 定期备份和灾难恢复定期备份服务器数据,并将备份文件存储在离线和安全的位置,以便在受到挖矿攻击后能够快速恢复。





