四类取证产物
Linux 主机取证常看四类:命令历史、/var/log 全套日志、/etc 关键配置、临时目录残留与被删文件句柄。它们共同回答「谁登录过、执行了什么、改动了哪些配置」。
两个容易漏的点
一是运行中进程打开的被删文件必须从 /proc/<pid>/fd 复制,这是恢复被删样本的重要途径;二是命令历史可能被指向 /dev/null 或禁用记录,看到「历史很干净」时要结合其他来源判断。
基本信息
| 历史 | 各用户 .bash_history、.zsh_history 与 HISTFILE 配置 |
|---|---|
| 日志 | /var/log 下的认证、消息日志与 wtmp、btmp 记录 |
| 配置 | /etc/passwd、shadow、crontab、ssh 目录 |
| 临时残留 | /tmp、/dev/shm、/var/tmp |
| 运行态 | ps 快照、网络连接、/proc 挂载信息 |
| 敏感处理 | shadow 与私钥按敏感证据管理 |
典型使用场景
- 事件处置时系统化收集主机证据
- 还原攻击者的操作历史与配置改动
- 为时间线重建提供数据来源
- 移交分析团队时保证数据完整
- 复盘时说明影响范围
收集历史、配置与运行态
收集历史、配置与运行态
cp -a /root/.bash_history /home/*/.bash_history /evidence/history/ 2>/dev/null
tar -zcf /evidence/etc.tgz /etc/passwd /etc/shadow /etc/crontab /etc/cron.d /etc/ssh 2>/dev/null
ls -la /tmp /dev/shm /var/tmp | head -n 40
ls -l /proc/*/fd 2>/dev/null | grep '(deleted)' | head -n 20
ps -eo pid,ppid,user,lstart,cmd > /evidence/ps_snapshot.txt
ss -antp > /evidence/conn_snapshot.txt输出逐列读法
| 字段 | 含义 | 正常/异常 |
|---|---|---|
| 历史文件 | 命令记录 | 内容异常短或指向 /dev/null 说明有隐藏意图 |
| 日志文件 | 系统与认证记录 | 出现断档需结合轮转与重启判断 |
| 配置时间戳 | 配置最后修改时间 | 与入侵时间窗重合的需逐项核对 |
| 临时目录内容 | 落地样本与脚本 | 出现可执行文件需提取并计算哈希 |
shadow、私钥与凭据文件属于敏感证据:导出后限制访问范围并对输出脱敏,避免在分析过程中造成二次泄露。
被删除但仍被进程打开的文件可以通过 /proc/<pid>/fd 复制出来:操作前先记录进程信息与 inode,复制后再计算哈希。
从 /proc 复制被删文件
从 /proc 复制被删文件
ls -l /proc/1234/fd 2>/dev/null | grep '(deleted)'
cp /proc/1234/fd/7 /evidence/deleted_sample.bin 2>/dev/null
sha256sum /evidence/deleted_sample.bin
grep -c '' /evidence/deleted_sample.bin时间窗口怎么定
- 按入侵时间点前后各留一段缓冲
- 覆盖首次异常登录到处置开始的整段
- 记录采集时刻,说明证据覆盖的截止时间
- 把采集动作本身也写入时间线,避免后续自证矛盾
收集顺序建议
- 先取高易失内容:进程、连接、内存
- 再取历史记录与配置文件
- 然后做目录级归档与临时文件提取
- 最后统一计算哈希并登记清单