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 影响的主机。
  
## 🔍 功能介绍
输入一个或多个 CVE ID(例如 `CVE-2025-54918`),该工具将查询您的 Tenable Security Center 并返回所有**受影响主机**的列表——包括其 IP 地址、DNS 名称、NetBIOS 名称和 Repository ID。
结果可以**复制到剪贴板**或**导出为 CSV**。
## 📋 功能特性
- 🔎 单个或多个 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 许可证——可自由使用、修改和分发。
## 📋 功能特性
- 🔎 单个或多个 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, 主机查询, 企业安全, 分页查询, 前后端分离, 受影响资产排查, 后端开发, 威胁检测, 安全运营, 扫描框架, 数据导出, 无线安全, 漏洞管理, 网络安全, 网络安全审计, 网络资产管理, 调试辅助, 资产测绘, 隐私保护, 靶场工具