分析 Linux 中的持久化机制
概述
攻击者通过 crontab 作业、systemd 服务/定时器单元、LD_PRELOAD 库注入、Shell 配置文件修改(.bashrc、.profile)、SSH authorized_keys 后门以及 init 脚本操纵来在 Linux 系统上建立持久化。该技能扫描所有已知的持久化向量,检查文件时间戳和完整性,并将发现与 auditd 日志关联,以构建持久化安装的时间线。
使用时机
- 当调查安全事件需要分析 Linux 中的持久化机制时
- 当为此领域构建检测规则或威胁狩猎查询时
- 当 SOC 分析师需要此类分析的结构化流程时
- 当需要验证相关攻击技术的安全监控覆盖范围时
前置条件
- 目标 Linux 系统的 root 或 sudo 访问权限(或取证镜像)
- 配置了持久化路径文件监视规则的 auditd
- Python 3.8+ 以及标准库(os、subprocess、json)
- 可选:用于文件完整性监控告警的 OSSEC/Wazuh 代理
步骤
- 扫描 Crontab 条目 — 枚举所有用户的 crontab、/etc/cron.d/、/etc/cron.daily/ 和 anacron 作业,查找可疑命令
- 审计 Systemd 单元 — 检查 /etc/systemd/system/ 和 ~/.config/systemd/user/ 中非包管理的服务和定时器单元
- 检测 LD_PRELOAD 劫持 — 检查 /etc/ld.so.preload 和 LD_PRELOAD 环境变量中注入的共享库
- 检查 Shell 配置文件 — 扫描 .bashrc、.bash_profile、.profile、/etc/profile.d/ 中注入的命令或反向 Shell
- 检查 SSH 授权密钥 — 审计所有 authorized_keys 文件中的未授权公钥及其命令限制
- 关联 Auditd 日志 — 搜索 auditd 日志中持久化路径上的文件修改事件,构建安装时间线
- 生成持久化报告 — 生成包含所有发现持久化机制的风险评分报告
预期输出
- 所有发现的持久化机制及风险评分的 JSON 报告
- 从 auditd 关联得到的持久化安装时间线
- MITRE ATT&CK 技术映射(T1053、T1543、T1574、T1546)
- 每个检测到的持久化机制的修复命令