登录
首页 >  文章 >  linux

Linux服务器被入侵怎么办?系统中毒排查与修复流程【全攻略】

时间:2026-05-06 09:03:55 157浏览 收藏

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《Linux服务器被入侵怎么办?系统中毒排查与修复流程【全攻略】》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!

若Linux服务器出现异常CPU占用、不明外连、日志清空或命令被替换,则极可能已被入侵;需按六步标准化流程排查:隔离取证、账户审计、进程网络分析、定时任务检查、文件扫描及日志溯源。

Linux服务器被入侵怎么办?系统中毒排查与修复流程【全攻略】

如果您的Linux服务器出现异常CPU占用、不明外连、日志被清空或关键命令被替换等现象,则极可能是已被黑客入侵。以下是系统中毒后的标准化排查与修复流程:

一、立即隔离与基础信息采集

在不中断业务前提下,优先切断攻击链路并固化现场证据。避免直接重启导致内存痕迹丢失,也避免联网更新工具引入污染。

1、执行ifconfigip route show确认当前网络接口及默认路由。

2、运行cat /etc/os-releaseuname -r记录操作系统发行版与内核版本。

3、使用md5sum /bin/ps /bin/ls /usr/bin/netstat /usr/bin/top比对关键命令哈希值,若多个命令哈希与同版本官方镜像不一致,则高度疑似rootkit已替换二进制文件

4、执行ls -la /proc/1/exe验证init进程是否被劫持,若输出非指向/lib/systemd/systemd或/sbin/init,说明系统引导层已被篡改

二、账户与登录行为审计

攻击者常创建隐藏用户、提权账户或复用弱口令账户维持持久访问。需逐层核查身份凭证有效性与权限边界。

1、运行awk -F: '$3==0 {print $1}' /etc/passwd列出所有UID为0的特权用户,除root外出现任何账户即为高危项

2、执行last -n 50lastb -n 50分别查看最近成功与失败的登录记录,重点关注非工作时段、非常用地域IP、高频重试条目

3、运行grep 'Accepted' /var/log/secure 2>/dev/null | tail -30提取SSH成功登录日志,若发现大量来自同一IP但不同用户名的Accept记录,表明存在暴力破解行为

4、检查/etc/shadow中各账户密码字段,若存在空密码(第二个字段为'')或仅含'!'、'*',需立即禁用对应账户

三、进程与网络连接深度分析

恶意程序常以伪装进程名驻留内存,并通过短连接、DNS隧道或加密协议外联C2服务器。需绕过被篡改命令获取真实状态。

1、使用lsof -i -P -n替代netstat,列出所有网络连接及对应PID,过滤出非标准端口(如8080、8443、3128)且目标IP不在白名单内的连接

2、对可疑PID执行ls -la /proc/PID/exe定位可执行文件路径,若显示“(deleted)”或路径位于/tmp、/dev/shm等临时目录,基本确认为内存马或落地木马

3、运行cat /proc/PID/cmdline | tr '\0' '\n'查看进程启动参数,若参数中包含base64字符串、curl/wget远程脚本地址或明显混淆载荷,可直接判定为恶意进程

4、使用iftop -P tcp实时监控流量TOP会话,锁定持续向境外IP(如104.31.225.6)发送HTTP POST请求的进程

四、定时任务与启动项排查

攻击者惯用crontab、systemd timer、at job或rc.local植入持久化后门。这些机制可在系统重启后自动拉起恶意程序,必须彻底清理。

1、依次执行cat /etc/crontabls /etc/cron.*cat /var/spool/cron/* 2>/dev/null查找含curl、wget、base64、sh -c等关键字的行,尤其注意以点开头的隐藏文件(如/etc/cron.d/.vuhcwazfbpmgakhhoc)

2、运行systemctl list-timers --allsystemctl list-unit-files --type=service | grep enabled识别非系统默认启用且服务名含随机字符串(如hzqzqdmatu.service)的unit

3、检查/etc/rc.local/etc/init.d/下脚本,若发现末尾追加了不可读二进制块或调用/tmp下的可执行文件,应立即删除整行

4、执行find /etc/systemd/system/ -name "*.service" -exec grep -l "ExecStart=.*sh\|curl\|wget" {} \;定位所有可能执行远程载荷的systemd服务定义

五、文件系统与可疑文件扫描

恶意软件常驻留于临时目录、隐藏路径或伪装成系统文件。需结合时间戳、权限、签名与行为多维识别。

1、运行find /tmp /var/tmp /dev/shm -type f -mtime -7 -ls 2>/dev/null重点检查7天内创建、权限为777、文件名含随机字符或无扩展名的可执行文件

2、执行find / -type f -name ".*" -size +10k -ls 2>/dev/null | head -20筛选出大于10KB的隐藏文件,此类文件极大概率是rootkit核心模块

3、使用find / -type f -perm -4000 -ls 2>/dev/null列出所有SUID文件,除/usr/bin/sudo、/usr/bin/passwd等标准路径外,其余均需人工确认合法性

4、运行clamscan -r --bell -i /(需预装ClamAV),对全盘进行病毒特征扫描,忽略/var/log等日志目录以节省时间

六、日志完整性与审计追踪

入侵者常清除/var/log/下的关键日志,但部分操作仍会残留于内核环缓冲区或审计子系统。需从多源交叉验证。

1、执行dmesg -T | tail -50查看内核日志,搜索"out of memory"、"segfault"、"module verification failed"等异常提示,可能暴露驱动级rootkit加载痕迹

2、运行ausearch -m avc -ts recent(需auditd启用),提取SELinux拒绝事件,异常的execmod、mmap_zero行为常指向恶意代码注入

3、检查/var/log/auth.log/var/log/secure文件大小,若文件尺寸远小于常规(如不足1MB且创建时间在入侵窗口期内),说明日志已被主动截断或覆盖

4、执行stat /var/log/{auth.log,secure,messages}对比文件修改时间(Modify)与变更时间(Change),若Change早于Modify,表明文件元数据曾被人为篡改

到这里,我们也就讲完了《Linux服务器被入侵怎么办?系统中毒排查与修复流程【全攻略】》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>