找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3355

积分

1

好友

462

主题
发表于 14 小时前 | 查看: 3| 回复: 0

当一台 Linux 服务器的响应速度突然变慢,或是出现异常的网络连接,有经验的管理员首先会怀疑:是不是被入侵了?面对潜在的安全威胁,如何快速、系统地进行排查,而不是盲目地敲几个命令?本文将详细介绍一款实用的开源脚本 Linux_checklist.sh,它能帮你完成一次全面的安全检查。

工具简介

Linux_checklist.sh 是一个用于快速检查 Linux 系统常见安全与运行状况的 Bash 脚本。它通过一系列自动化检查,帮助你发现系统中可能存在的恶意活动痕迹与配置风险。

主要检查项目

脚本聚焦于几个关键的安全风险点,能够快速揭示常见的攻击手法:

  1. 检查网卡是否处于混杂模式:这是攻击者嗅探内网流量(例如密码)的典型迹象。
  2. 检查“无文件”进程:寻找内存中正在运行,但其对应的磁盘可执行文件已被删除的进程(显示为 /proc/*/exe -> (deleted))。这是挖矿木马和 Rootkit 偏爱的“无文件攻击”手段。
  3. 校验系统命令完整性:通过 rpm -V 等命令检查 ls, ps, netstat 等核心命令是否被恶意替换(攻击者常通过修改这些命令来隐藏自己的活动)。
  4. 扫描 SSH 授权密钥:遍历所有用户的 .ssh/authorized_keys 文件,检查是否被植入了未授权的免密登录公钥。
  5. 审查定时任务:检查系统及用户的定时任务中,是否隐藏了包含 bash -i, nc, curl 等用于连接外网控制服务器的恶意命令。

详细检查清单

以下为脚本执行的完整检查项,覆盖了从资源、网络到文件、日志的多个维度。

1. 系统资源(排查挖矿等资源消耗型攻击)

  • CPU/内存占用:列出资源占用 Top 5 的进程,帮助判断是否存在异常的高资源消耗程序(如挖矿程序)。
  • 磁盘空间:检查磁盘使用率,避免因日志爆破或垃圾文件堆积导致服务不可用。

2. 网络连接(排查后门与非法外联)

  • 网卡混杂模式:检测是否有网卡被设置为监听模式。
  • DNS/Hosts配置:检查 DNS 设置是否被劫持,以及 /etc/hosts 文件是否存在恶意的重定向条目。
  • 监听端口:列出所有开放端口,便于快速识别不应开放的高位端口。
  • 外部连接统计:汇总服务器当前正在连接的外部 IP(Top 10),用于发现可能存在的向C2(命令与控制)服务器的回连行为。

3. 进程分析(定位恶意程序)

  • 内存中已删除文件:再次重点筛查,捕捉利用内存执行的无文件落地木马。
  • 高资源占用进程详情:展示 CPU 和内存占用最高的 5 个进程的详细信息。

4. 账号与权限(检查未授权访问)

  • 特权用户:检查除了 root 以外,是否还存在其他 UID=0 的“超级用户”。
  • 影子文件分析:检查 /etc/shadow,确认哪些账户配置为可登录状态。
  • Sudo 权限审计:检查哪些用户被授予了 ALL=(ALL) 的超级管理员权限。
  • SSH 公钥审计:遍历 /root/home 下所有用户的 SSH 公钥文件。
  • SSH 环境劫持:检查是否存在 sshrc 等文件(此类文件可在用户登录时自动执行恶意脚本)。

5. 持久化与启动项(防止恶意程序复活)

  • 定时任务审查
    • 检查 /etc/crontab/etc/cron.d/ 目录下的任务。
    • 遍历所有用户的个人 crontab 任务。
    • 特征匹配:自动扫描任务内容中是否包含 wget, curl, nc 等常用于下载或建立连接的敏感命令。
  • 开机启动项审查
    • 检查 Systemd 中已启用的服务。
    • 检查 /etc/rc.local 文件中是否藏有恶意启动脚本。

6. 文件完整性(排查 Rootkit 与文件篡改)

  • 二进制文件校验:利用系统包管理器(如 RPM)校验 ls, ps, top, login, sshd 等核心命令的哈希值,判断是否被替换。
  • SUID 特权文件扫描:扫描系统中具有 SUID 权限的异常文件(普通用户运行此类文件时可获得 root 权限)。
  • 临时目录扫描:检查 /tmp/var/tmp 目录下是否有 .sh, .py, .elf 等可疑的可执行文件(攻击者常在此存放工具)。
  • 文件属性检查:检查关键系统文件是否被 chattr +i 命令锁定(导致无法正常修改或删除)。

7. 日志与痕迹(分析攻击者行为)

  • 暴力破解分析:统计 /var/log/secureauth.log 中登录失败次数最多的源 IP 地址。
  • 成功登录记录:查看最近成功的登录记录及其来源 IP。
  • 账号变更记录:查看系统日志中是否有新建用户 (useradd) 或删除用户 (userdel) 的操作记录。
  • 命令历史审查:扫描 root 用户的 .bash_history 文件,查找是否存在 wget(下载木马)、tar(打包窃取数据)、passwd(修改密码)等敏感操作记录。

安全与使用注意事项

  • 该脚本运行时会收集并输出系统的敏感信息(如用户列表、网络连接、进程详情等)。请务必仅在您拥有管理权限的受信环境中运行,并妥善保管生成的输出文件,防止信息泄露。
  • 脚本提供的是一种“快照式”检查,对于持续性的高级威胁,可能需要结合 更深入的日志分析 和实时监控手段。

项目获取

Linux_checklist.sh 是一个开源项目,你可以在 GitHub 上找到它并参与改进:
项目地址:https://github.com/HuyaThomas/Linux_checklist

希望这个工具能成为你网络与系统安全工具箱中的一个实用组件。如果你在排查中发现了其他有趣的技巧或疑问,欢迎在技术社区进行交流。




上一篇:深入解析蓝绿发布、灰度发布、滚动发布的原理、对比与选型指南
下一篇:破阵阁网安淬锋公开赛决赛WP:RIPS代码审计与SM3哈希逆向实战解析
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-10 19:30 , Processed in 0.304012 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表