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://zeek.org/)
[](https://www.python.org/)
## 为什么选择 Brick?
在花时间审查了现有的 ICS 工具(如 [GRASSMARLIN](https://github.com/nsacyber/GRASSMARLIN) 和 CISA 的 [Malcolm](https://github.com/cisagov/Malcolm))之后,我发现需要一种轻量级工具,可以为预算受限的组织提供简单的 ICS 资产清单。这个领域的许多工具要么对于简单的资产清单来说大材小用,要么是付费产品(通常来自硬件供应商)。
这里没有什么特别深奥的技巧,这个工具只是将其他人付出的辛勤工作和努力粘合在一起。
- **简单** - 上传 PCAP 并查看结果
- **高效** - 易于导航,优先展示可操作的信息
- **开源** - 社区可审查,对贡献者友好
## 
## 架构
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, 二进制发布, 云存储安全, 协议分析, 哈希传递, 威胁检测, 安全防御评估, 工业互联网, 工控安全, 开源工具, 态势感知, 插件系统, 无后门, 权限提升, 网络扫描, 请求拦截, 资产盘点, 轻量级, 逆向工具