分析 Linux 系统痕迹
适用场景
- 调查受损的 Linux 服务器或工作站时
- 识别持久化(Persistence)机制(cron、systemd、SSH 密钥)时
- 通过 Shell 历史和身份验证日志追踪用户活动时
- 事件响应(Incident Response)期间确定 Linux 系统漏洞的影响范围时
- 检测 Rootkit、后门和未授权修改时
前置条件
- 取证镜像或对 Linux 系统的实时只读访问权限
- 了解 Linux 文件系统层次结构(FHS)
- 了解常见 Linux 日志位置(/var/log/)
- 工具:chkrootkit、rkhunter、AIDE、auditd 日志
- 熟悉 systemd、cron 和 PAM 配置
- 完整痕迹收集需要 root 访问权限
工作流程
(参见源文档中的命令)
核心概念
| 概念 | 定义 |
|---|---|
| /var/log/auth.log | Debian/Ubuntu 系统上的主要身份验证日志 |
| /var/log/secure | RHEL/CentOS 系统上的主要身份验证日志 |
| wtmp/btmp | 记录成功和失败登录会话的二进制日志 |
| .bash_history | 用户命令历史文件(攻击者可能清除) |
| crontab | 通常用于持久化的计划任务系统 |
| authorized_keys | 授予账户无密码访问权限的 SSH 公钥 |
| SUID 位 | 允许以文件所有者身份执行的文件权限(权限提升向量) |
| LD_PRELOAD | 在所有其他库之前加载共享库的环境变量(钩挂技术) |
工具与系统
| 工具 | 用途 |
|---|---|
| chkrootkit | Linux 系统 Rootkit 检测扫描器 |
| rkhunter | Rootkit Hunter - 检查 Rootkit、后门和本地漏洞利用 |
| AIDE | 高级入侵检测环境 - 文件完整性监控器 |
| auditd | 用于系统调用和文件访问监控的 Linux 审计框架 |
| last/lastb | 解析 wtmp/btmp 获取登录和失败登录历史 |
| Plaso/log2timeline | 包含 Linux 痕迹的超级时间线创建工具 |
| osquery | 基于 SQL 的系统查询工具,用于实时取证调查 |
| Velociraptor | 具有 Linux 痕迹收集能力的终端代理 |