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, 人工智能辅助, 多云管理, 安全扫描, 安全测试, 安全防御评估, 攻击性安全, 日志审计, 时序注入, 暴露面分析, 模块化架构, 秘密检测, 程序破解, 请求拦截, 资源发现, 足迹分析