letsgetweird/brick

GitHub: letsgetweird/brick

基于 Zeek 和 ICSNPP 插件的轻量级工控网络资产发现工具,通过被动分析 PCAP 流量识别 Modbus、EtherNet/IP、S7comm 设备。

Stars: 3 | Forks: 0

# 🧱 Brick 注意:这是我 VIBECODED 的! Brick 是一个轻量级、开源的 ICS 资产发现工具,专为工业网络设计,使用 Claude 构建。 Brick 基于带有 CISA ICSNPP 插件的 Zeek 构建,通过分析网络流量捕获来识别 Modbus、EtherNet/IP 和 S7comm 设备,为合规性和网络可见性提供简单的资产清单。 非常适合需要基本资产发现,但无需企业级复杂性或成本的小型设施。 [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) [![Zeek](https://img.shields.io/badge/Zeek-6.x-blue)](https://zeek.org/) [![Python](https://img.shields.io/badge/Python-3.11+-blue)](https://www.python.org/) ## 为什么选择 Brick? 在花时间审查了现有的 ICS 工具(如 [GRASSMARLIN](https://github.com/nsacyber/GRASSMARLIN) 和 CISA 的 [Malcolm](https://github.com/cisagov/Malcolm))之后,我发现需要一种轻量级工具,可以为预算受限的组织提供简单的 ICS 资产清单。这个领域的许多工具要么对于简单的资产清单来说大材小用,要么是付费产品(通常来自硬件供应商)。 这里没有什么特别深奥的技巧,这个工具只是将其他人付出的辛勤工作和努力粘合在一起。 - **简单** - 上传 PCAP 并查看结果 - **高效** - 易于导航,优先展示可操作的信息 - **开源** - 社区可审查,对贡献者友好 ## ![UI 展示](https://raw.githubusercontent.com/letsgetweird/brick/main/brick_ui.png) ## 架构 Brick 由两个主要容器组成: 1. **Zeek 容器**:运行带有 ICSNPP 插件的 Zeek,用于工业协议分析 2. **NiceGUI 容器**:提供 Web 界面并管理 SQLite 数据库 ``` ┌─────────────────────────────────────────────────────────┐ │ Brick System │ ├─────────────────────────────────────────────────────────┤ │ Web Interface (NiceGUI) Zeek Analyzer │ │ ├─ Asset Cards ├─ Modbus Parser │ │ ├─ Connection View ├─ EtherNet/IP Parser │ │ ├─ PCAP Upload ├─ S7comm Parser │ │ └─ SQLite Database └─ JSON Logging │ └─────────────────────────────────────────────────────────┘ ``` ## 快速开始 ### 前置条件 - Podman 或 Docker - Podman Compose 或 Docker Compose - 2GB+ 可用内存 - 推荐使用 Linux(在 Ubuntu 24.04 LTS 上测试) **注意:** 带有 Docker Desktop 的 macOS 和 Windows 应该可以使用,但尚未经过测试。欢迎反馈! ### 安装 1. **克隆仓库**: git clone https://github.com/letsgetweird/brick.git cd brick 2. **启动容器**: podman-compose up -d # 或 docker-compose up -d # 或 ./reset.sh (just a simple bash script for redeploying with podman) 3. **访问 Web 界面**: 在浏览器中打开 `http://localhost:8080` 4. **上传 PCAP 文件** ## 使用样本数据测试 Brick 在 `sample-pcaps/` 中包含样本 PCAP: ``` # 通过 web interface 上传: sample-pcaps/modbus-sample.pcap sample-pcaps/enip-sample.pcap sample-pcaps/s7comm-sample.pcap ``` 有关来源,请参阅 [sample-pcaps/README.md](../sample-pcaps/README.md)。 ### 自定义 Zeek 脚本 将自定义 Zeek 脚本添加到 `scripts/` 目录。它们将在容器启动时自动加载。 ## 使用示例 ### 分析 PCAP 文件 1. 在 Web 界面中点击 "Upload PCAP" 2. 选择你的捕获文件 3. 等待处理完成 4. 在仪表板中查看发现的资产 ### 重置开发环境 ``` ./reset.sh ``` 此脚本停止容器、移除卷并清理临时文件。 ## 支持的协议 Brick 目前通过 CISA ICSNPP 插件支持以下工业协议: | 协议 | 插件 | 常见用例 | |----------|--------|------------------| | **Modbus** | [icsnpp-modbus](https://github.com/letsgetweird/icsnpp-modbus) | PLCs, RTUs, SCADA systems | | **EtherNet/IP** | [icsnpp-enip](https://github.com/letsgetweird/icsnpp-enip) | Allen-Bradley PLCs, industrial Ethernet | | **S7comm** | [icsnpp-s7comm](https://github.com/letsgetweird/icsnpp-s7comm) | Siemens PLCs (S7-300, S7-400, S7-1200, S7-1500) | ## 路线图 - [ ] ? ## 许可证 该项目根据 Apache License 2.0 授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。 关键点: - ✅ 允许商业用途 - ✅ 允许修改 - ✅ 允许分发 - ✅ 包含专利授权 - ✅ 允许私人使用 - ⚠️ 必须包含版权声明和许可证 - ⚠️ 必须说明对代码所做的更改 - ⚠️ 如果分发,必须包含 NOTICE 文件 ## 支持 - **问题**:[GitHub Issues](https://github.com/letsgetweird/brick/issues) - **讨论**:[GitHub Discussions](https://github.com/letsgetweird/brick/discussions) ## 免责声明 Brick 仅用于合法的安全测试和网络监控目的。用户有责任在分析网络流量之前确保已获得适当的授权。作者不对滥用此工具承担任何责任。 **此工具专为受信任的本地网络设计。** - 不要将 Web UI(端口 8080)暴露给不受信任的网络 - 仅处理来自受信任来源的 PCAP - 该工具执行被动分析,不与实时网络交互
标签:AMSI绕过, CISA ICSNPP, Docker, EtherNet/IP, HTTP/HTTPS抓包, ICS, impacket, LangChain, NiceGUI, NTLM Relay, OT安全, PCAP分析, PKINIT, Python, Rootkit, S7comm, SCADA, Zeek, 二进制发布, 云存储安全, 协议分析, 哈希传递, 威胁检测, 安全防御评估, 工业互联网, 工控安全, 开源工具, 态势感知, 插件系统, 无后门, 权限提升, 网络扫描, 请求拦截, 资产盘点, 轻量级, 逆向工具