Bugb-Technologies/cert-x-gen
GitHub: Bugb-Technologies/cert-x-gen
支持十二种编程语言的多语言漏洞检测执行引擎,将安全检查从配置文件升级为真实代码,解决复杂协议和高级逻辑的检测难题。
Stars: 20 | Forks: 0
CERT-X-GEN
多语言漏洞检测执行引擎
使用 Python、Rust、Go、C、Shell 或 YAML 等真实代码编写安全检查——安全、可复现且可规模化地运行。
简介 •
安装 •
快速开始 •
模板 •
文档 •
模板仓库
## CERT-X-GEN 简介
现代安全扫描已经超越了静态模板的范畴。如今,漏洞检测通常需要真正的编程逻辑、协议级控制、数据处理以及复用现有脚本——然而大多数扫描器强制将所有内容限制在 YAML-only 的抽象中。
CERT-X-GEN 是一种截然不同的扫描器。它是一个**多语言安全执行引擎**,将漏洞检测视为代码而非配置。您可以使用最适合解决问题的语言编写检测逻辑——CERT-X-GEN 负责处理编排、沙箱和输出。
**这意味着:**
```
# 运行用于 stateful protocol 检查的 Python template
cxg scan --scope 192.168.1.100:25 --templates smtp-open-relay.py
# 运行用于高性能 database probing 的 Go template
cxg scan --scope db.example.com:5432 --templates postgresql-default-credentials.go
# 在单次扫描中混合多种语言
cxg scan --scope targets.txt --templates redis*.py,docker*.go,system*.sh
```
### 亮点
- 用于漏洞检测逻辑的**语言无关运行时**
- 跨 12 种语言的安全检查**统一执行层**
- 研究脚本与生产扫描器之间的**桥梁**
- 专为 CI、自动化和 Agent 系统设计的**扫描器**
## 为什么这很重要
|
**问题所在**
当您需要以下功能时,YAML DSL 会遇到瓶颈:
- 多步协议交互
- 二进制协议解析
- 条件分支逻辑
- 性能关键型操作
- 原生库访问
|
**解决方案**
CERT-X-GEN 运行以以下语言编写的模板:
- **Python** — 有状态协议、数据分析
- **Go** — 并发操作、二进制协议
- **Rust/C** — 极致性能
- **Shell** — 原生工具集成
- **YAML** — 简单检查、兼容性
|
### 实际案例
| 场景 | 模板 | 无法使用 YAML 的原因 |
|----------|----------|---------------------|
| SMTP 中继测试 | [`smtp-open-relay.py`](https://github.com/Bugb-Technologies/cert-x-gen-templates/blob/main/templates/python/smtp-open-relay.py) | 多步交互:EHLO → MAIL FROM → RCPT TO 并包含分支逻辑 |
| PostgreSQL 认证检查 | [`postgresql-default-credentials.go`](https://github.com/Bugb-Technologies/cert-x-gen-templates/blob/main/templates/go/postgresql-default-credentials.go) | PostgreSQL 线路协议 + MD5 挑战-响应 |
| SNMP 团体字符串 | [`snmp-default-community.sh`](https://github.com/Bugb-Technologies/cert-x-gen-templates/blob/main/templates/shell/snmp-default-community.sh) | 原生 `snmpwalk` 集成 |
| VNC 无认证检测 | [`vnc-no-auth.c`](https://github.com/Bugb-Technologies/cert-x-gen-templates/blob/main/templates/c/vnc-no-auth.c) | RFB 二进制协议握手 |
## 安装说明
### Homebrew (macOS/Linux)
```
brew tap bugb-technologies/cxg
brew install cxg
```
### 快速安装脚本
```
curl -fsSL https://raw.githubusercontent.com/Bugb-Technologies/cert-x-gen/main/install.sh | bash
```
### Docker
```
docker run --rm ghcr.io/bugb-technologies/cert-x-gen:latest --help
# 使用 Docker 扫描
docker run --rm ghcr.io/bugb-technologies/cert-x-gen:latest scan --scope example.com
```
### 从源码构建
```
git clone https://github.com/Bugb-Technologies/cert-x-gen.git
cd cert-x-gen
make install
```
### 使用 Cargo
```
cargo install --git https://github.com/Bugb-Technologies/cert-x-gen.git
```
### 下载二进制文件
从 [GitHub Releases](https://github.com/Bugb-Technologies/cert-x-gen/releases/latest) 下载预构建的二进制文件:
- `cxg-linux-amd64` — Linux x86_64
- `cxg-linux-arm64` — Linux ARM64
- `cxg-darwin-amd64` — macOS Intel
- `cxg-darwin-arm64` — macOS Apple Silicon
- `cxg-windows-amd64.exe` — Windows x86_64
### 验证安装
```
cxg --version
cxg template update # Downloads official templates
```
## 快速开始
### 基本扫描
```
# 扫描单个目标
cxg scan --scope example.com
# 扫描特定端口
cxg scan --scope example.com --ports 22,80,443,3306,5432,6379
# 扫描网络范围
cxg scan --scope 192.168.1.0/24 --top-ports 100
# 从文件扫描目标
cxg scan --scope targets.txt --templates redis*.py
```
### 模板操作
```
# 列出可用 templates
cxg template list
# 搜索 templates
cxg template search redis
# 验证 template
cxg template validate my-template.py
# 获取 template 信息
cxg template info smtp-open-relay.py
```
### 输出格式
```
# JSON 输出
cxg scan --scope target.com --format json -o results.json
# HTML 报告
cxg scan --scope target.com --format html -o report.html
# 用于 CI/CD 的 SARIF
cxg scan --scope target.com --format sarif -o results.sarif
```
## 模板
模板在一个独立的仓库中维护,以便于社区贡献:
**[github.com/Bugb-Technologies/cert-x-gen-templates](https://github.com/Bugb-Technologies/cert-x-gen-templates)**
| 语言 | 数量 | 最适合场景 |
|----------|-------|----------|
| Python | 15 | 有状态协议、HTTP API、数据处理 |
| Go | 5 | 二进制协议、高并发 |
| C | 5 | 底层协议、极致性能 |
| Rust | 4 | 内存安全的性能、异步 I/O |
| Shell | 5 | 原生工具集成、系统检查 |
| YAML | 24 | 简单 HTTP 检查、Nuclei 兼容 |
首次扫描时模板会自动下载。使用 `cxg template update` 更新。
### 编写模板
所有模板都遵循一个简单的约定:
1. 从环境变量中读取 `CERT_X_GEN_TARGET_HOST` 和 `CERT_X_GEN_TARGET_PORT`
2. 执行检测逻辑
3. 输出包含 findings 数组的 JSON
**Python 示例:**
```
#!/usr/bin/env python3
# @id: redis-unauth
# @name: Redis Unauthenticated Access
# @severity: high
import socket, json, os
host = os.environ['CERT_X_GEN_TARGET_HOST']
port = int(os.environ.get('CERT_X_GEN_TARGET_PORT', '6379'))
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(5)
sock.connect((host, port))
sock.send(b'INFO\r\n')
response = sock.recv(4096).decode()
if 'redis_version' in response:
print(json.dumps({"findings": [{
"id": "redis-unauth",
"severity": "high",
"host": host,
"port": port
}]}))
```
## 设计原则
- **代码优于配置** — 使用真实语言编写真实逻辑
- **确定性执行** — 相同的输入,相同的输出
- **默认沙箱化** — 模板在严格的资源限制下运行
- **可组合扫描** — 混合语言,跨模板复用逻辑
- **自动化优先** — 为 CI、流水线和 Agent 系统构建
## 功能特性
**执行引擎**
- 支持 12 种语言(Python、Go、Rust、C、C++、Java、JavaScript、Ruby、Perl、PHP、Shell、YAML)
- 具有可配置资源限制的沙箱执行
- 编译型语言的编译缓存
- 具有速率限制的并行模板执行
**CLI**
- 统一的 `--scope` 用于目标(单个、文件、CIDR、URL)
- 智能 `--templates` 选择(glob 模式、标签、严重性)
- 多种输出格式(JSON、HTML、CSV、Markdown、SARIF)
- 内置模板管理和验证
**集成**
- 基于 Git 的模板仓库,支持自动更新
- CI/CD 友好(退出代码、SARIF 输出)
- 可通过 CLI、配置文件或环境变量进行配置
## 文档
| 文档 | 描述 |
|----------|-------------|
| [使用指南](docs/USAGE_GUIDE.md) | 全面的 CLI 用法和示例 |
| [架构设计](docs/ARCHITECTURE.md) | 系统设计与内部机制 |
| [引擎指南](docs/ENGINES.md) | 特定语言的执行细节 |
| [沙箱指南](docs/SANDBOX_GUIDE.md) | 安全模型和资源限制 |
| [贡献指南](CONTRIBUTING.md) | 如何贡献代码和模板 |
## 贡献指南
我们欢迎各种贡献。请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解指南。
**优先领域:**
- 新的检测模板(任何语言)
- 协议处理程序改进
- 文档和示例
```
# 开发设置
git clone https://github.com/Bugb-Technologies/cert-x-gen.git
cd cert-x-gen
cargo build
cargo test
```
## 许可证
CERT-X-GEN 根据 [Apache License 2.0](LICENSE) 授权。
## 安全
请将漏洞报告发送至 **security@bugb.io**。参见 [SECURITY.md](SECURITY.md)。
使用 Rust 构建 · 模板 · 讨论
标签:CERT-X-GEN, Cutter, DAST, DevSecOps, FTP漏洞扫描, Go安全, JS文件枚举, Rust安全, SAST, URL发现, YAML配置, 上游代理, 代码生成, 动态检测, 可扩展架构, 可视化界面, 多语言引擎, 多语言支持, 多语言编程, 安全合规, 安全检测, 安全测试框架, 安全编排, 密码管理, 恶意软件分析, 插件系统, 数据可视化, 日志审计, 渗透测试工具, 盲注攻击, 网络代理, 网络安全, 请求拦截, 逆向工具, 通知系统, 隐私保护