tFran09/url-scanner
GitHub: tFran09/url-scanner
一款集成 VirusTotal v3 API 的 Python CLI 工具,将可疑 URL 的威胁情报查询与分诊流程自动化,并在终端输出结构化安全报告。
Stars: 0 | Forks: 0
# 🛡️ VirusTotal URL 扫描器与威胁情报工具
一款基于 Python 的命令行界面 (CLI) 工具,专为安全分析师设计,用于快速分诊可疑 URL。通过集成 VirusTotal v3 API,该工具可自动化威胁扫描,并直接在终端中输出清晰、易读的威胁报告。
## 🚀 核心功能
* **安全的 API 管理:** 利用 .env 和 .gitignore 配置来防止 API 密钥泄露,遵循安全的软件开发实践。
* **动态轮询循环:** 脚本不依赖死板、任意的 sleep 计时器,而是使用动态的 while 循环来轮询 VirusTotal API,直到扫描完成。
* **适配 SOC 的分诊仪表盘:** 将复杂的嵌套 JSON payload 转换为清晰、结构化的安全报告。
## 🛠️ 技术栈与工具
* **语言:** Python 3
* **库:** requests(用于 HTTP 通信)、python-dotenv(用于安全注入环境变量)
* **IDE:** VS Code
* **外部 API:** VirusTotal API (v3)
## 📦 安装与设置
1. **克隆仓库:**
git clone [https://github.com/your-username/url-scanner.git](https://github.com/your-username/url-scanner.git)
cd url-scanner
2. **安装依赖:**
pip install requests python-dotenv
3. **配置密钥:**
* 在根目录下创建一个 .env 文件。
* 添加你的 VirusTotal API 密钥:
VT_API_KEY=your_actual_virustotal_api_key_here
## 🎮 使用方法
在终端中运行脚本:
```
python3 scanner.py
```
系统会提示你输入一个 URL。脚本将提交该 URL,轮询扫描完成状态,并输出最终的分析结果:
```
[+] Submitting target 'google.com' to VirusTotal...
[+] Scan submitted successfully.
[~] Checking scan status...
[+] Scan complete! Processing results...
========================================
🛡️ THREAT INTELLIGENCE REPORT: google.com
========================================
🔴 Malicious Flags: 0
🟡 Suspicious Flags: 0
🟢 Harmless Engines: 74
⚪ Undetected: 16
========================================
✅ CLEAN: No active threat flags detected.
========================================
```
## 🧠 构建过程中的经验总结
* **异步 API 轮询:** 学习了如何编写带有 break 结构的健壮的 while True 轮询循环,以便在不增加系统内存负担或超过 API 速率限制的情况下,安全地查询实时外部扫描引擎。
* **JSON payload 导航:** 掌握了如何解析嵌套字典,并从复杂的多层 API payload 中提取特定的整数。
* **密钥管理:** 通过实现 .env 配置文件将敏感的 API 凭据与公开代码库分离,践行了安全设计(secure-by-design)原则。
标签:Python, VirusTotal API, 威胁情报, 开发者工具, 无后门