tint-us/tenvul

GitHub: tint-us/tenvul

基于Tenable Security Center API的轻量级Web工具,用于快速查询指定CVE影响的主机资产列表并导出结果。

Stars: 0 | Forks: 0

# Tenable SC: CVE 主机查询工具 一个简单的基于 Web 的工具,通过 **Tenable Security Center** API 查询您网络中受特定 CVE 影响的主机。 ![Node.js](https://img.shields.io/badge/Node.js-18%2B-green) ![Express](https://img.shields.io/badge/Express-4.x-lightgrey) ![License](https://img.shields.io/badge/license-MIT-blue) ## 🔍 功能介绍 输入一个或多个 CVE ID(例如 `CVE-2025-54918`),该工具将查询您的 Tenable Security Center 并返回所有**受影响主机**的列表——包括其 IP 地址、DNS 名称、NetBIOS 名称和 Repository ID。 结果可以**复制到剪贴板**或**导出为 CSV**。 image ## 📋 功能特性 - 🔎 单个或多个 CVE 查询(以逗号分隔) - 📊 结果以整洁、可排序的表格展示 - 📋 将表格数据复制到剪贴板 - ⬇️ 将结果导出为 CSV - 🔒 通过 HTTP 标头进行安全的 API 密钥认证 - 🖥️ 响应式 UI(适配移动端) ## 🧰 技术栈 | 层级 | 技术 | |----------|--------------------| | 后端 | Node.js + Express | | 前端 | Vanilla JS + HTML/CSS | | HTTP 客户端 | Axios | | 配置 | dotenv | ## ⚙️ 系统要求 - Node.js v18 或更高版本 - 可访问的 **Tenable Security Center** 实例 - Tenable SC **API Access Key** 和 **Secret Key** ## 🚀 安装与设置 ### 1. 克隆仓库 ``` git clone https://github.com/tint-us/tenvul.git cd tenvul ``` ### 2. 安装依赖 ``` npm install ``` ### 3. 配置环境变量 在根目录下创建 `.env` 文件: ``` # 您的 Tenable Security Center 主机名或 IP (包含 https://) TENABLE_HOST=https://your-tenable-sc-host # Tenable SC API 端口 (默认: 443) TENABLE_PORT=443 # 您的 Tenable SC API 凭据 ACCESS_KEY=your_access_key_here SECRET_KEY=your_secret_key_here # 此 web app 端口 (默认: 3000) PORT=3000 ``` ### 4. 运行应用程序 ``` npm start ``` 应用程序可通过以下地址访问:`http://localhost:3000` ## 📖 使用方法 1. 在浏览器中打开 `http://localhost:3000` 2. 在输入框中输入 CVE ID - **单个 CVE:** `CVE-2025-54918` - **多个 CVE:** `CVE-2025-12429,CVE-2025-12432,CVE-2025-12433` 3. 点击 **"Query Host Terdampak"** 或按 **Enter** 键 4. 在表格中查看结果 5. 使用 **📋 Copy Data** 或 **⬇️ Export CSV** 保存结果 ## 📁 项目结构 ``` teenvul/ ├── server.js # Express backend — handles API proxy to Tenable SC ├── package.json # Project metadata and dependencies ├── .env # Environment variables (NOT committed to Git) ├── .gitignore # Files excluded from Git └── public/ └── index.html # Frontend UI (single-page app) ``` ## 🔌 API 端点 ### `POST /api/query` 查询 Tenable SC 中受指定 CVE 影响的主机。 **请求体:** ``` { "cveID": "CVE-2025-54918" } ``` **成功响应:** ``` { "success": true, "cveID": "CVE-2025-54918", "hosts": [ { "ip": "192.168.1.10", "dnsName": "server01.local", "netbiosName": "SERVER01", "repositoryID": "1" } ] } ``` **错误响应:** ``` { "success": false, "error_msg": "Connection or API Error: ...", "error_code": -1 } ``` ## 🔐 安全提示 - 此工具在启动时使用 `NODE_TLS_REJECT_UNAUTHORIZED=0` 以允许自签名证书——这在内部/实验室环境的 Tenable SC 部署中很常见。**请勿在暴露于公共互联网的生产环境中使用此设置。** - API 凭证存储在 `.env` 中,并通过 `x-apikey` 标头发送——绝不暴露给前端。 ## 🐛 故障排除 | 问题 | 解决方案 | |---|---| | `Server configuration missing` 错误 | 检查您的 `.env` 文件是否存在且包含所有必需的变量 | | `Connection or API Error` | 验证从此服务器能否访问 `TENABLE_HOST`,并确保端口正确 | | 结果为空 | 该 CVE 可能在您的环境中未影响任何主机,或者 CVE ID 格式错误 | | 自签名证书错误 | 应用程序默认已禁用 TLS 验证——请检查您的 Tenable SC 主机 URL | ## 🤝 贡献 欢迎贡献!随时在 GitHub 上开启 issue 或提交 pull request。 **仓库地址:** [github.com/tint-us/tenvul](https://github.com/tint-us/tenvul) ## 📬 联系方式 **tint-us** · [tintus.ardi@gmail.com](mailto:tintus.ardi@gmail.com) · [github.com/tint-us](https://github.com/tint-us) ## 📄 许可证 MIT 许可证——可自由使用、修改和分发。
标签:AMSI绕过, Axios, CVE查询, Express, GNU通用公共许可证, GPT, MITM代理, Node.js, Tenable SC, Tenable Security Center, Vanilla JS, 主机查询, 企业安全, 分页查询, 前后端分离, 受影响资产排查, 后端开发, 威胁检测, 安全运营, 扫描框架, 数据导出, 无线安全, 漏洞管理, 网络安全, 网络安全审计, 网络资产管理, 调试辅助, 资产测绘, 隐私保护, 靶场工具