1-ELNORY/GhostTrace-Linux-Forensics-Investigator
GitHub: 1-ELNORY/GhostTrace-Linux-Forensics-Investigator
针对 UAC 框架优化的 Linux 快速取证配置文件,通过分层采集策略在约 15 分钟内完成高价值痕迹的定向收集,专为真实应急响应场景设计。
Stars: 1 | Forks: 0
# 🎯 noury_sniper — Linux DFIR 快速取证配置文件
## 🧠 什么是 noury_sniper?
`noury_sniper` 是一个专为 Linux 数字取证与事件响应 (DFIR) 设计的**自定义 UAC 配置文件**。它的设计初衷是穿透噪音——跳过所有无关紧要的内容,直击能够还原事件真相的关键痕迹。
默认配置文件会收集所有数据并浪费时间,与之不同,`noury_sniper` 非常**精准**。它针对分析师在实时取证期间所需的确切层面:易失性内存状态、网络活动、持久化机制、用户活动、隐蔽性指标以及日志证据——所有这些都在一次有条理的运行中完成。
### ⚡ 为什么 noury_sniper 快速、高效且有效
| 特性 | 优势 |
|---|---|
| **精确的痕迹选择** | 没有多余内容——仅保留取样的关键信息 |
| **分层收集顺序** | 易失性数据优先(内存易失),然后是持久性数据 |
| **有时间限制的收集** | `--start-date` 标志将范围限制在确切的时间窗口内 |
| **内置 Rootkit 检测** | `chkrootkit` 作为配置文件运行的一部分执行 |
| **生成 Bodyfile** | 可在几秒钟内生成完整的文件系统时间线 |
| **约 15 分钟收集时间** | 比大多数单类别的默认配置文件还要快 |
| **最小的磁盘占用** | 定向输出——没有数 GB 的无关数据 |
## 📂 配置文件结构 — `noury_sniper.yaml`
```
name: noury_sniper
description: Mid-tier fast triage. Optimized for 15-minute collection.
artifacts:
# --- 1. MODIFIERS ---
- live_response/modifiers/*
# --- 2. VOLATILE DATA (Memory, Processes, Network) ---
- live_response/process/ps.yaml
- live_response/process/pstree.yaml
- live_response/process/lsof.yaml
- live_response/process/pstat.yaml
- live_response/process/procstat.yaml
- live_response/process/fstat.yaml
- live_response/network/*
# --- 3. STEALTH & SYSTEM STATE ---
- chkrootkit/*
- live_response/system/*
# --- 4. CONFIGURATIONS & PERSISTENCE (On-Disk) ---
- files/system/*
# --- 5. USER ACTIVITY & HISTORY ---
- files/shell/*
- files/ssh/*
- files/applications/git.yaml
- files/applications/wget.yaml
- files/applications/lesshst.yaml
- files/applications/nano.yaml
- files/applications/viminfo.yaml
# --- 6. LOGS (Evidence) ---
- files/logs/*
- files/browsers/*
- files/packages/*
- bodyfile/bodyfile.yaml
```
### 🔍 收集层分解
**第 1 层 — 修饰符**:全局设置,用于调整 UAC 在运行期间的行为。
**第 2 层 — 易失性数据**:这是首先被收集的数据,因为它最脆弱。进程表、打开的文件描述符、活动套接字和网络连接会在机器关机或攻击者掩盖踪迹时消失。
**第 3 层 — 隐蔽性与系统状态**:`chkrootkit` 扫描已知的 rootkit 特征。实时系统状态捕获已登录的用户、挂载的文件系统、计划任务和服务状态。
**第 4 层 — 持久化**:磁盘上的配置文件、systemd 单元、cron 作业、init 脚本以及攻击者喜欢滥用的其他持久化向量。
**第 5 层 — 用户活动**:Shell 历史记录(bash、zsh、fish)、SSH known_hosts 和 authorized_keys、git 日志、wget 历史记录、编辑器痕迹(vim、nano)。这些可以告诉你主机上*谁做了什么*。
**第 6 层 — 日志与证据**:认证日志、syslog、kern.log、浏览器活动、包管理器历史记录(apt/yum),以及用于时间线重建的完整文件系统 bodyfile。
## 🚀 如何运行
### 前置条件
- 已安装并可访问 UAC:[https://github.com/tclahr/uac](https://github.com/tclahr/uac)
- 将此配置文件放置在 `uac/profiles/noury_sniper.yaml` 中
- 以 **root** (`sudo`) 身份运行以获取完整的痕迹访问权限
- 输出目录已创建且可写
### ▶️ 收集过去一个月(30 天)的数据
当你需要将调查范围限定在过去一个月(例如 2026 年 4 月)时使用:
```
sudo ./uac -p profiles/noury_sniper.yaml --start-date 2026-04-01 "Out Path Path"
```
### ▶️ 收集特定某天的数据
当你确切知道事件发生的那一天时:
```
sudo ./uac -p profiles/noury_sniper.yaml --start-date 2026-04-21 "Out Path Path"
```
### ▶️ 收集一周的数据
当你的时间窗口是过去 7 天时:
```
sudo ./uac -p profiles/noury_sniper.yaml --start-date 2026-04-21 "Out Path Path"
```
### ⏱️ 时间自定义摘要
```
--start-date YYYY-MM-DD
```
| 窗口 | 示例命令 |
|---|---|
| 单日 | `--start-date 2026-04-21` |
| 一周 | `--start-date 2026-04-21` *(回溯 7 天)* |
| 一个月 | `--start-date 2026-04-01` *(月初)* |
| 2026 年 4 月全月 | `--start-date 2026-04-01` |
`--start-date` 参数是 `noury_sniper` 速度优势的核心。通过将收集范围限定在精确的时间窗口内,你可以避免收集数月的日志、旧配置和过期数据,这些数据会增加数 GB 的噪音,却没有任何调查价值。
## 📊 时间线分析 — Bodyfile 解析
收集完成后,bodyfile (`bodyfile.txt`) 是你最强大的痕迹。它包含文件系统中每个文件的 MAC 时间戳。使用以下 `gawk` 命令可以提取一个清晰的、可排序的、经过 2026 年 4 月筛选的 CSV 时间线。
### 解析 Bodyfile → 时间线 CSV
```
gawk -F'|' 'BEGIN {print "Date_Time,Size,Activity,Mode,UID,GID,Path"}
$8 >= 1743465600 {
print strftime("%Y-%m-%d %H:%M:%S", $8) "," $7 ",Modified," $4 "," $5 "," $6 "," $2
}' bodyfile.txt | grep "2026-04" > april_fixed1.csv
```
### 命令分解
| 组件 | 目的 |
|---|---|
| `-F'|'` | 将字段分隔符设置为管道符 `\|`(bodyfile 格式) |
| `BEGIN {print ...}` | 写入整洁的 CSV 表头行 |
| `$8 >= 1743465600` | Unix 时间戳过滤器 — `1743465600` = **2026 年 4 月 1 日 00:00:00 UTC** |
| `strftime(...)` | 将 Unix 时间戳转换为人类可读的 `YYYY-MM-DD HH:MM:SS` |
| `$7` | 文件大小(以字节为单位) |
| `$4` | 文件权限/模式 |
| `$5 / $6` | 文件所有者的 UID 和 GID |
| `$2` | 完整文件路径 |
| `grep "2026-04"` | 最终过滤器 — 确保输出中仅包含 2026 年 4 月的条目 |
| `> april_fixed1.csv` | 将时间线保存为 CSV 文件,以便导入 Excel、Timeline Explorer 或任何 SIEM |
### 📅 用于日期过滤的实用 Unix 时间戳
| 日期 | Unix 时间戳 |
|---|---|
| 2026 年 4 月 1 日 00:00 UTC | `1743465600` |
| 2026 年 4 月 21 日 00:00 UTC | `1745193600` |
| 2026 年 3 月 1 日 00:00 UTC | `1740787200` |
| 2026 年 1 月 1 日 00:00 UTC | `1735689600` |
### 导入 CSV
输出的 `april_fixed1.csv` 可以直接在以下工具中打开:
- **Microsoft Excel** / **LibreOffice Calc** — 用于手动分析
- **Timeline Explorer** (Eric Zimmerman) — 推荐用于大型时间线分析
- **Kibana / Splunk** — 用于基于 SIEM 的关联分析
## 🧩 完整工作流示例
```
# 步骤 1:运行 profile — 收集 April 2026 artifacts
sudo ./uac -p profiles/noury_sniper.yaml --start-date 2026-04-01 "Out Path Path"
# 步骤 2:导航到 output 目录
cd "Out Path Path"
# 步骤 3:从 archive 中提取 bodyfile(如果经过压缩)
# UAC 输出一个 .tar.gz — 首先将其提取
tar -xzf uac-*.tar.gz
# 步骤 4:将 bodyfile 解析为 timeline CSV
gawk -F'|' 'BEGIN {print "Date_Time,Size,Activity,Mode,UID,GID,Path"}
$8 >= 1743465600 {
print strftime("%Y-%m-%d %H:%M:%S", $8) "," $7 ",Modified," $4 "," $5 "," $6 "," $2
}' bodyfile.txt | grep "2026-04" > april_fixed1.csv
# 步骤 5:在您选择的分析工具中打开 CSV
```
## 📋 要求
- **操作系统**:Linux(任何主要发行版 — 已在 Ubuntu、RHEL、Debian 上测试)
- **权限**:需要 Root (`sudo`) 权限
- **UAC 版本**:v2.x 或更高版本
- **工具**:`gawk`、`bash`(所有主要发行版均已预装)
- **磁盘空间**:约 500MB–2GB,具体取决于日志量与时间窗口
## 👤 作者
**El Noury** — DFIR 分析师
该配置文件专为真实世界下的 Linux 事件响应而设计——快速、专注且符合取证规范。
## 📜 许可证
此配置文件可用于任何 DFIR 调查。感谢署名。
UAC 本身基于 [Apache 2.0 许可证](https://github.com/tclahr/uac/blob/main/LICENSE) 授权。
标签:chkrootkit, DAST, HTTP工具, osquery, SecList, Triage, UAC, Unix Artifacts Collector, Web归档检索, 内存取证, 取证配置文件, 后渗透检测, 域渗透, 子域名变形, 安全运营, 定时任务, 库, 应急响应, 应用安全, 快速取证, 恶意软件分析, 扫描框架, 持久化分析, 收集配置, 数字取证, 无线安全, 日志收集, 易失性数据, 电子数据取证, 红军, 网络安全, 网络安全审计, 网络连接, 自动化脚本, 蓝军, 运维安全, 进程分析, 隐私保护