Linux服务器被入侵怎么办?系统中毒排查与修复流程【全攻略】
时间:2026-05-06 09:03:55 157浏览 收藏
偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《Linux服务器被入侵怎么办?系统中毒排查与修复流程【全攻略】》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!
若Linux服务器出现异常CPU占用、不明外连、日志清空或命令被替换,则极可能已被入侵;需按六步标准化流程排查:隔离取证、账户审计、进程网络分析、定时任务检查、文件扫描及日志溯源。

如果您的Linux服务器出现异常CPU占用、不明外连、日志被清空或关键命令被替换等现象,则极可能是已被黑客入侵。以下是系统中毒后的标准化排查与修复流程:
一、立即隔离与基础信息采集
在不中断业务前提下,优先切断攻击链路并固化现场证据。避免直接重启导致内存痕迹丢失,也避免联网更新工具引入污染。
1、执行ifconfig与ip route show确认当前网络接口及默认路由。
2、运行cat /etc/os-release和uname -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 50与lastb -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/crontab、ls /etc/cron.*、cat /var/spool/cron/* 2>/dev/null,查找含curl、wget、base64、sh -c等关键字的行,尤其注意以点开头的隐藏文件(如/etc/cron.d/.vuhcwazfbpmgakhhoc)。
2、运行systemctl list-timers --all与systemctl 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学习网公众号,带你了解更多关于的知识点!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
207 收藏
-
310 收藏
-
328 收藏
-
165 收藏
-
157 收藏
-
439 收藏
-
173 收藏
-
126 收藏
-
362 收藏
-
434 收藏
-
193 收藏
-
165 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习