CommandRunner/Nuclei_CVE_Generator

GitHub: CommandRunner/Nuclei_CVE_Generator

一个基于 Flask 的 API 服务,结合 Exploit-DB 与 GitHub 上的 PoC 数据,通过 Claude 大模型自动生成 Nuclei YAML 模板。

Stars: 1 | Forks: 0

# Nuclei CVE 生成器 这是一个 Flask API,利用来自 Exploit-DB 和 GitHub 的真实 PoC 数据,通过 Claude AI 自动为 CVE 生成 [Nuclei](https://github.com/projectdiscovery/nuclei) 模板。 ## 工作原理 1. 您向 `/generate` 端点发送一个 CVE ID 2. 它在 **Exploit-DB** 中搜索匹配的漏洞利用程序并获取原始漏洞利用代码 3. 它在 **GitHub** 中搜索 PoC 仓库并获取其 README 内容 4. 它根据真实的 PoC 数据(HTTP 请求、payload、复现步骤)构建提示词 5. 它将提示词发送给 Claude 并返回可直接使用的 Nuclei YAML 模板 ## 配置选项 - **选项 A — AWS EC2 上的 Bedrock**(无需 API 密钥,使用 IAM 角色) - **选项 B — 本地使用 Anthropic API**(更简单,只需一个 API 密钥) ## 选项 A:在 AWS EC2 上部署 ### 1. 启用 Bedrock 模型访问权限 在启动任何内容之前,请确保在您的 AWS 账户中启用了 Claude 模型: 1. 前往 [AWS Bedrock 控制台](https://console.aws.amazon.com/bedrock/home?region=us-east-1#/modelaccess) 2. 点击 **Modify model access** 3. 在 Anthropic 下找到 **Claude 3.5 Haiku** 并启用它 4. 等待状态显示 **Access granted**(通常是即时的) ### 2. 为 EC2 创建 IAM 角色 您的 EC2 实例需要调用 Bedrock 的权限。最安全的方法是使用 IAM 角色 —— 无需硬编码凭证。 1. 前往 **IAM → Roles → Create role** 2. 选择 **AWS service** → **EC2** → 下一步 3. 搜索并附加策略 **AmazonBedrockFullAccess**(或创建一个仅限于 `bedrock:InvokeModel` 的自定义策略) 4. 为角色命名,例如 `nuclei-cve-bedrock-role`,然后创建它 ### 3. 启动 EC2 实例 1. 前往 **EC2 → Launch Instance** 2. 选择 **Ubuntu Server 24.04 LTS**(符合免费套餐资格) 3. 实例类型:个人使用 **t2.micro** 即可,如果预期负载较高建议选 **t3.small** 4. **Key pair**:创建或选择一个现有的 —— 您需要它来进行 SSH 登录 5. **Network settings**: - 允许来自您 IP 的 **SSH (端口 22)** - 为来自您 IP(或 `0.0.0.0/0`,如果您希望公开访问)的 **端口 5000** 添加自定义 TCP 规则 6. 在 **Advanced details → IAM instance profile** 下:选择您在第 2 步中创建的角色 7. 启动实例 ### 4. 连接到实例 ``` ssh -i /path/to/your-key.pem ubuntu@ ``` 如果密钥出现权限错误: ``` chmod 400 /path/to/your-key.pem ``` ### 5. 设置环境 ``` # 更新 packages sudo apt update && sudo apt upgrade -y # 安装 Python 和 pip sudo apt install python3 python3-pip python3-venv git -y # Clone repo git clone https://github.com/CommandRunner/Nuclei_CVE_Generator cd Nuclei_CVE_Generator # 创建并激活 virtual environment python3 -m venv venv source venv/bin/activate # 安装 dependencies pip install -r requirements.txt ``` ### 6. 验证 AWS 访问权限 由于 EC2 实例已附加 IAM 角色,因此您不需要存储任何凭证。验证其是否正常工作: ``` sudo apt install awscli -y aws sts get-caller-identity ``` 您应该会看到您的账户 ID 和角色 ARN。如果此步骤成功,Bedrock 调用也将正常工作。 ### 7. 运行服务器 ``` python main.py ``` API 将在 `http://:5000` 上可用。 ### 8. 作为后台服务运行(可选) ``` sudo nano /etc/systemd/system/nuclei-cve.service ``` 粘贴以下内容(如有必要请调整路径): ``` [Unit] Description=Nuclei CVE Generator After=network.target [Service] User=ubuntu WorkingDirectory=/home/ubuntu/Nuclei_CVE_Generator ExecStart=/home/ubuntu/Nuclei_CVE_Generator/venv/bin/python main.py Restart=always [Install] WantedBy=multi-user.target ``` 然后启用并启动它: ``` sudo systemctl daemon-reload sudo systemctl enable nuclei-cve sudo systemctl start nuclei-cve sudo systemctl status nuclei-cve ``` 查看日志: ``` journalctl -u nuclei-cve -f ``` ## 选项 B:本地使用 Anthropic API 运行(无需 AWS) 如果您不想设置 AWS,可以直接用 Anthropic API 代替 Bedrock。 ### 1. 获取 Anthropic API 密钥 在 [console.anthropic.com](https://console.anthropic.com) 注册并创建一个 API 密钥。 ### 2. 安装 Anthropic SDK ``` pip install anthropic ``` 或者将其添加到 `requirements.txt`: ``` anthropic>=0.25.0 ``` ### 3. 修改 `main.py` 将 `call_bedrock` 函数替换为以下内容: ``` import anthropic anthropic_client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY")) def call_bedrock(prompt): message = anthropic_client.messages.create( model="claude-3-5-haiku-20241022", max_tokens=4096, temperature=0.2, messages=[{"role": "user", "content": prompt}] ) return message.content[0].text ``` 您可以删除文件顶部的 `boto3` 导入和 `bedrock` 客户端,因为不再需要它们了。 ### 4. 设置您的 API 密钥并运行 ``` git clone https://github.com/CommandRunner/Nuclei_CVE_Generator cd Nuclei_CVE_Generator pip install -r requirements.txt anthropic export ANTHROPIC_API_KEY=your_api_key_here python main.py ``` ## 使用方法 **生成模板:** ``` curl -X POST http://localhost:5000/generate \ -H "Content-Type: application/json" \ -d '{"cve_id": "CVE-2021-44228"}' ``` **响应:** ``` { "template": "id: CVE-2021-44228\ninfo:\n name: ...", "sources": { "exploitdb": [{"id": "...", "title": "...", "url": "..."}], "github": [{"repo": "...", "stars": 100, "url": "..."}] } } ``` **提高 GitHub API 速率限制(可选):** ``` export GITHUB_TOKEN=your_github_token ``` 无 Token:10 次请求/分钟。有 Token:30 次请求/分钟。 **健康检查:** ``` curl http://localhost:5000/health ``` ## 安全提示 - 仅在经授权的目标上使用。 - 生成的模板由 AI 生成 —— 在针对生产系统运行之前,请务必进行审查。 - 如果公开暴露端口 5000,请考虑将其置于具有身份验证功能的反向代理(nginx)之后。
标签:AWS Bedrock, CISA项目, Claude AI, CVE, DLL 劫持, Exploit-DB, Flask, Google, Nuclei, PoC, Python, YAML, 人工智能, 代码生成, 域名收集, 大语言模型, 安全库, 数字签名, 无后门, 暴力破解, 模板生成, 渗透测试工具, 用户模式Hook绕过, 结构化查询, 网络安全, 网络测绘, 自动化安全, 逆向工具, 隐私保护