praetorian-inc/nebula

GitHub: praetorian-inc/nebula

一款多云安全侦察工具,支持跨 AWS、Azure、GCP 的资源发现、密钥检测和公开暴露分析。

Stars: 10 | Forks: 1

# Nebula Nebula 是一个基于 Janus 框架构建的命令行安全扫描工具,用于测试云环境。它提供了跨 AWS、Azure 和 GCP 的模块化安全测试功能,并采用可扩展的基于 link 的架构。 有关开发指南,请参阅 [DEVELOPMENT.md](DEVELOPMENT.md)。 ## 文档 📖 **[完整 CLI 文档](docs/)** - 包含示例的完整命令参考 ## 功能特性 - **多云支持**:AWS、Azure、GCP 和 SaaS 平台 - **模块化架构**:基于 Janus 框架构建,具有可组合的 link - **安全扫描**:资源发现、机密检测、公开暴露分析 - **灵活输出**:JSON、Markdown 和控制台格式 - **MCP 集成**:用于 AI 助手的 Model Context Protocol 服务器 ## 安装 **从源码安装:** ``` git clone https://github.com/praetorian-inc/nebula cd nebula go build ``` **Docker:** ``` docker build -t nebula . docker run --rm -v ~/.aws:/root/.aws nebula aws recon whoami ``` **预编译二进制文件** 可在 [GitHub Releases](https://github.com/praetorian-inc/nebula/releases) 中获取。 **依赖项** 机密扫描使用 [https://github.com/praetorian-inc/noseyparker](https://github.com/praetorian-inc/noseyparker) 完成,并且必须在您的 `$PATH` 中可用。 ## 身份验证 Nebula 使用标准的云提供商身份验证方式: - **AWS**:环境变量、凭证文件 (~/.aws/credentials)、IAM 角色 - **Azure**:环境变量、Azure CLI、托管标识 - **GCP**:服务账号密钥、应用默认凭证 - **Docker**:通过 --docker-user 和 --docker-password 标志提供的 Registry 凭证 ## 基本用法 ``` nebula [flags] ``` **示例:** ``` # 检查 AWS 账户身份 nebula aws recon whoami # 列出所有区域的 S3 buckets nebula aws recon list -t AWS::S3::Bucket -r all # 在 Lambda 函数中查找 secrets nebula aws recon find-secrets -t AWS::Lambda::Function # 发现公共 Azure 资源 nebula azure recon public-resources -s subscription-id # 获取 GCP 项目信息 nebula gcp recon projects-list # 分析 Docker container 中的 secrets nebula saas recon docker-dump -i nginx:latest ``` ## 常用命令 **AWS 侦察:** ``` # 账户信息与权限 nebula aws recon account-auth-details nebula aws recon whoami # 资源发现 nebula aws recon list-all-resources -r us-east-1 nebula aws recon public-resources -r all # Secrets 扫描 nebula aws recon find-secrets -t all -r all nebula aws recon find-secrets -t AWS::Lambda::Function -r us-east-2 ``` **Azure 侦察:** ``` # 环境详情 nebula azure recon summary -s subscription-id # Resource enumeration nebula azure recon list-all-resources -s subscription-id nebula azure recon public-resources -s all # DevOps secrets 扫描 nebula azure recon devops-secrets --organization org-name ``` **SaaS 侦察:** ``` # Docker container 分析与 secret 扫描 nebula saas recon docker-dump -i image-name ``` **分析模块:** ``` # AWS key 分析 nebula aws analyze access-key-to-account-id -k AKIA... nebula aws analyze known-account -a 123456789012 # IP 分析 nebula aws analyze ip-lookup -i 1.2.3.4 ``` ## 输出与结果 **输出格式:** - **Console**:实时进度和摘要 - **JSON**:`nebula-output/` 目录中的结构化数据 - **Markdown**:人类可读的表格 **通用标志:** ``` # 全局选项 --log-level string Log level (debug, info, warn, error) --output string Output directory (default "nebula-output") --quiet Suppress user messages --no-color Disable colored output # Provider 特定选项 -r, --regions string AWS regions ('all' or comma-separated) -s, --subscription Azure subscription ID -t, --resource-type Cloud resource type filter -i, --image string Docker image name for SaaS modules ``` ## MCP 服务器 Nebula 为 AI 助手提供了一个 MCP (Model Context Protocol) 服务器: **Stdio 服务器:** ``` nebula mcp-server ``` **HTTP 服务器:** ``` nebula mcp-server --http --addr :8080 ``` **Claude Desktop 配置:** ``` { "mcpServers": { "nebula": { "command": "/path/to/nebula", "args": ["mcp-server"] } } } ``` ## 安全说明 - **权限**:扫描前请确保具备适当的只读权限。注意:许多 AWS 模块使用 [Cloud Control API](https://aws.amazon.com/cloudcontrolapi/),这需要 `cloudformation:ListResources` 和 `cloudformation:GetResources` 权限。 - **范围控制**:使用资源类型和区域过滤器来限制扫描范围 ## 架构 Nebula 使用 Praetorian 的 [Janus Framework](https://github.com/praetorian-inc/janus-framework)。 - **Links**:可以链接在一起的单个处理单元 - **Modules**:针对特定安全测试场景预配置的链 - **Outputters**:用于不同格式的可插拔输出处理 - **Registry**:动态模块发现和 CLI 生成 有关开发详情,请参阅 [DEVELOPMENT.md](DEVELOPMENT.md)。
标签:AWS安全, Azure安全, Docker, EVTX分析, GCP安全, Go语言, Janus框架, MCP集成, SaaS安全, StruQ, 人工智能辅助, 多云管理, 安全扫描, 安全测试, 安全防御评估, 攻击性安全, 日志审计, 时序注入, 暴露面分析, 模块化架构, 秘密检测, 程序破解, 请求拦截, 资源发现, 足迹分析