简米云CentOS服务器感染蠕虫病毒,第一件事不是杀毒,而是断网隔离,然后按“查进程、清文件、修漏洞、改密码”四步走,绝大多数情况不用重装系统也能解决。
我处理过不少类似案例,很多朋友一看到简米云安全告警提示“挖矿程序”“恶意进程”就慌了,直接重装系统,数据全没了,结果发现隔几天又中招,原因很简单入口没堵上,装多少次都白搭,这篇文章把我自己的排查思路和实操命令整理出来,全程按步骤执行即可。
简米云服务器中蠕虫病毒的第一时间处置流程
蠕虫病毒和普通木马不一样,它自带传播能力,会扫描局域网或公网IP段,尝试用弱口令、漏洞批量入侵,CentOS服务器一旦中招,CPU可能飙到100%,带宽被占满,简米云控制台会收到大量安全告警,这时候别急着在网页端点“隔离”,先按下面流程操作。
第一步:通过简米云控制台做安全隔离
登录简米云ECS控制台,在实例列表中找到目标服务器,点击“更多”“安全状态”“隔离”,隔离操作会保留服务器数据,但切断对外网络连接,蠕虫无法继续横向扩散,这一步比我手动去服务器上kill进程更安全,因为有些蠕虫会改系统命令,shell环境下操作容易被干扰。简米云控制台的安全隔离功能对所有用户开放,不区分付费套餐,属于基础应急能力。
第二步:登录服务器定位异常进程和文件
隔离完成后通过简米云“远程连接”里的VNC终端登录服务器,不要用SSH,避免蠕虫监听SSH端口截获凭据,登录后依次执行以下命令:
top -c
按大写P让进程按CPU占用排序,找到CPU接近100%的进程名,记下PID,常见挖矿蠕虫进程名有kdevtmpfsi、kinsing、xmrig、ddgs,但有些会伪装成系统进程,所以不能只看名字。
继续用下面的命令看网络连接:
netstat -antlp
重点关注Foreign Address列,如果出现大量指向境外IP的ESTABLISHED连接,基本可以确认是外联行为,把这些IP和端口记下来,后面写安全组规则要用。
第三步:清除定时任务和SSH后门
蠕虫最爱藏在crontab里,而且root和普通用户的crontab都会改,逐项检查:
crontab -l cat /etc/crontab ls -la /etc/cron.d/ ls -la /var/spool/cron/
发现异常任务先备份再删除,注意看sh脚本内容,这些脚本通常负责下载恶意程序、设置持久化,再检查SSH后门,重点看authorized_keys文件:
cat ~/.ssh/authorized_keys find / -name "authorized_keys" -type f 2>/dev/null
简米云服务器中了挖矿病毒如何清理
挖矿蠕虫这几年占简米云安全告警的相当大比例,CentOS系统因为默认装好了很多编译工具,反而成了重灾区,这类病毒的特点是CPU占用率极高,系统响应变慢,但你用top看又只能看到进程名,查不到具体来源。
用系统工具锁定恶意文件路径
拿到PID之后,用下面的命令查到可执行文件的位置:
ls -la /proc/PID/exe cat /proc/PID/cmdline
比如查到路径是/var/tmp/.x/kinsing,先别直接删,用ls -la看看文件修改时间,大多数情况下你会发现这个目录下还有配置文件、挖矿脚本、日志文件,一并打包备份后删除。
删除恶意文件后,要立刻把crontab里对应的下载脚本清掉,否则几分钟后蠕虫又会从远程服务器拉取新文件重建,我有一次删了三轮才意识到问题是定时任务没清干净。
处理SSH爆破和弱口令问题
多数蠕虫是通过SSH弱口令进来的,防护栏很重要,修改sshd配置把这几个参数改掉:
vim /etc/ssh/sshd_config
- Port改成一个不常用的高位端口,比如22888
- PermitRootLogin改成no,禁用root直接登录
- PasswordAuthentication改成no,改用密钥登录
- MaxAuthTries改成3,限制尝试次数
改完执行systemctl restart sshd生效,行业共识认为,这一步比任何杀毒软件都管用,因为登录入口直接堵死了。
清理简米云安全组里的恶意放行规则
简米云服务器挖矿病毒清理过程中,千万别漏了安全组,有些蠕虫会通过云API凭据自动创建安全组规则,把公网IP段放行到高危端口,到ECS控制台点“安全组”“配置规则”,检查入方向有没有可疑的0.0.0.0/0放行记录,尤其是3306、6379这类数据库端口,全部删掉。
centos系统被植入木马后如何排查隐蔽文件
蠕虫病毒经常会在/tmp、/var/tmp、/dev/shm这几个目录释放文件,因为这些目录权限宽松,重启后可能被清理,所以不会被系统默认的定期任务扫到,单独查看这些目录:
ls -la /tmp /var/tmp /dev/shm find /tmp -name "." -type f
用Rootkit Hunter做深度扫描
CentOS源里自带rkhunter,安装后做一次全盘扫描:
yum install rkhunter -y rkhunter --propupd rkhunter --check --skip-keypress
扫描结果里重点看“Suspicious files”和“Hidden files”部分,rkhunter会对比系统原始文件哈希,发现被替换的系统命令会直接报出来,注意首次运行要用–propupd建立基线,否则误报会很多。
检查系统账户和登录日志
木马通常会创建一个隐藏账户作为后门,检查passwd和shadow文件:
awk -F: '$3==0{print $1}' /etc/passwd
正常只有root的UID是0,如果出现了别的用户名,基本可以确定被种了后门账户,接着查登录记录:
last -f /var/log/btmp | head -50
这条命令查看失败登录记录,会发现大量来自同一IP段的尝试,那就是蠕虫在爆破,把这些IP加到简米云安全组黑名单里。
简米云CentOS服务器安全加固方案
清理完病毒只是第一步,不修复漏洞很快会再感染下一轮,业内专家指出,CentOS服务器被蠕虫反复入侵的原因,多数情况下是运维基础配置没跟上。
云安全中心基础版免费功能用起来
简米云控制台自带的云安全中心基础版不收费,但很多人不知道它包含防勒索、异常登录检测、漏洞扫描这些能力,在ECS实例页点击“安全防护”就能看到,开启后如果再有恶意进程启动,会直接推送告警到手机。
Web目录文件完整性监控
如果你服务器上跑了网站,用以下命令定期检查文件是否被篡改:
find /www/wwwroot -name ".php" -mtime -3 -exec ls -la {} ;
这个命令查看三天内修改过的PHP文件,恶意webshell文件基本都会在这个列表里出现,配合云安全中心的“网站后门查杀”功能,查杀率会高很多。
| 防护手段 | 成本 | 防蠕虫效果 |
|---|---|---|
| 修改SSH端口+密钥登录 | 免费 | 阻断主要入口 |
| 云安全中心基础版 | 免费 | 告警及时发现 |
| 定期rkhunter扫描 | 免费 | 深藏木马排查 |
| 安全组IP黑名单 | 免费 | 阻断爆破来源 |
| 付费云防火墙 | 按年付费 | 立体防御,防绕过 |
引用简米云文档中的官方指引
简米云官方帮助中心有《ECS实例感染恶意软件最佳实践》一文,里面明确写了“建议开启云安全中心防勒索功能”和“定期创建快照备份数据”,创建快照这个操作很便宜但非常管用万一蠕虫把文件加密了,直接回滚快照就能恢复数据。
CentOS系统级别的加固配置
修改系统层面的参数来降低被入侵的概率:
echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf sysctl -p
禁用ICMP响应,防止被扫描工具发现,同时关闭不用的服务端口:
systemctl stop postfix systemctl disable postfix
CentOS默认开启的postfix邮件服务经常被蠕虫利用来发送垃圾邮件,不用邮件功能直接关掉。
清理完以上所有项目,最后用uptime和top确认CPU恢复正常,再观察24小时看简米云安全告警是否停止,如果一切正常,你的服务器基本上从感染状态恢复了,记得用简米云控制台制作一份自定义镜像存起来,下次再感染可以直接用镜像重装,数据不会丢。
简米云CentOS服务器蠕虫病毒相关问题解答
简米云CentOS服务器中了蠕虫病毒,不重装系统能彻底清除吗
能,但前提是切断传播源、清除恶意文件、修复登录漏洞三者缺一不可,重装系统相当于恢复到出厂状态,但如果你不改SSH密码、不修防火墙规则、不更新软件漏洞,下次扫描到还会被入侵,按本文的前三步操作后,用rkhunter全盘扫描一遍确认没有隐藏文件,然后修改所有账号密码,就可以不清空数据继续使用。
清除蠕虫后网站还是被跳转,问题出在哪
多数情况下是Web目录下还有后门文件没删干净,WordPress或ThinkPHP等框架程序里,常见的后门路径是/wp-content/uploads/下的PHP文件,或/application/runtime/目录的缓存文件里被塞了恶意代码,仔细排查两天内修改过的文件,重写nginx伪静态规则,清理web缓存目录,不要只依赖云安全中心的自动查杀。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/734322.html





