derianfarley/argus
GitHub: derianfarley/argus
Argus 是一个集成了 20 种安全工具的 Python 命令行工具包,用于渗透测试、OSINT 和安全研究。
Stars: 1 | Forks: 0
```
___ ____ ________ _______
/ | / __ \/ ____/ / / / ___/
/ /| | / /_/ / / __/ / / /\__ \
/ ___ |/ _, _/ /_/ / /_/ /___/ /
/_/ |_/_/ |_|\____/\____//____/
```
# Argus v4.0
**一款用于授权测试、OSINT 和安全研究的命令行网络安全工具包。**
Argus 是一个单文件 Python 应用程序,包含 20 种工具,涵盖密码学、网络分析、Web 漏洞评估、OSINT、数据包分析和数字取证等领域。

## 目录
- [截图](#screenshots)
- [功能概览](#features-at-a-glance)
- [环境要求](#requirements)
- [安装说明](#installation)
- [配置](#configuration)
- [用法](#usage)
- [交互式菜单](#interactive-menu)
- [CLI 模式](#cli-mode)
- [工具参考](#tool-reference)
- [1. 密码学工具包](#1-cryptography-toolkit)
- [2. 密码生成器](#2-password-generator)
- [3. 编码/解码器](#3-encoder--decoder)
- [4. 数据包分析](#4-packet-analysis)
- [5. Web 漏洞扫描器](#5-web-vulnerability-scanner)
- [6. HTTP Repeater](#6-http-repeater)
- [7. 爬虫/抓取器](#7-spider--crawler)
- [8. 键盘记录器](#8-keylogger)
- [9. 结果数据库](#9-results-database)
- [10. 网络与侦察工具](#10-network--recon-tools)
- [11. 密码与 Hash 工具](#11-password--hash-tools)
- [12. 文件与取证](#12-file--forensics)
- [13. 授权实验室测试器](#13-authorized-lab-tester)
- [14. OSINT 工具包](#14-osint-toolkit)
- [15. SSL/TLS 检查器](#15-ssltls-inspector)
- [16. 反向 Shell 生成器](#16-reverse-shell-generator)
- [17. 目录暴力破解器](#17-directory-brute-forcer)
- [18. 子域名枚举器](#18-subdomain-enumerator)
- [19. CVE / NVD 查询](#19-cve--nvd-lookup)
- [20. 云安全检查器](#20-cloud-security-checker)
- [系统:配置 API 密钥](#system-configure-api-keys)
- [项目结构](#project-structure)
- [许可证](#license)
## 截图
| | | |:---:|:---:| | **1 · 密码学工具包** | **2 · 密码生成器** | |  |  | | **3 · 编码/解码器** | **4 · 数据包分析** | |  |  | | **5 · Web 漏洞扫描器** | **6 · HTTP Repeater** | |  |  | | **7 · 爬虫/抓取器** | **8 · 键盘记录器** | |  |  | | **10 · 网络与侦察工具** | **11 · 密码与 Hash 工具** | |  |  | | **12 · 文件与取证** | **13 · 授权实验室测试器** | |  |  | | **14 · OSINT 工具包** | **15 · SSL/TLS 检查器** | |  |  | | **16 · 反向 Shell 生成器** | **17 · 目录暴力破解器** | |  |  | | **18 · 子域名枚举器** | **19 · CVE / NVD 查询** | |  |  | | **20 · 云安全检查器** | | |  | |
## 功能概览
| 类别 | 工具 |
|---|---|
| 密码学 | AES-256, RSA, SHA family, Vigenère, Caesar, XOR, substitution cipher |
| 编码 | Base64, URL, HTML, Hex, Binary, ROT13, ROT47, Morse, JWT |
| JWT 攻击 | alg=none, 算法混淆 (RS256→HS256), JWK 注入, payload 伪造 |
| 网络 | 实时数据包嗅探器 (BPF), PCAP/PCAPNG 分析, C2 Beacon 检测 |
| Web | 20 项检查漏洞扫描器, HTTP repeater, 爬虫/抓取器 |
| OSINT | 域名, IP, 邮箱, 用户名, 图片 GPS, IOC 丰富化, 批处理 |
| 侦察 | 端口扫描器, Ping 扫描, WHOIS/DNS, HTTP 头 |
| 取证 | Metadata 提取, LSB 隐写术, SHA-256 完整性清单 |
| 密码 | 生成器, 强度分析, 字典 Hash 破解器, HIBP 检查器 |
| 威胁情报 | CVE/NVD 查询 (包含 EPSS 得分), 云存储错误配置检查 |
| API 集成 | AbuseIPDB, VirusTotal, Shodan, Censys, URLhaus, MalwareBazaar, HIBP |
## 环境要求
**Python:** 3.8 或更高版本
**核心依赖**(大多数工具所需):
```
requests>=2.32.0
rich>=13.0.0
beautifulsoup4>=4.12.0
scapy>=2.5.0
```
**可选功能包** — 按需安装:
| 扩展包 | 包名 | 解锁功能 |
|---|---|---|
| `[crypto]` | `cryptography` | AES-256, RSA, PBKDF2, JWT 攻击 |
| `[passwords]` | `zxcvbn` | 真实的密码强度评分 |
| `[keylogger]` | `pynput`, `pyperclip` | 键盘记录器(仅限本机) |
| `[pcap]` | `dpkt`, `numpy` | PCAP 分析, C2 beacon 二级统计 |
| `[osint]` | `Pillow`, `dnspython`, `python-whois` | 图片 GPS, 完整 DNS, WHOIS |
| `[web]` | `sslyze`, `fake-useragent`, `wappalyzer-python`, `playwright` | 深度 TLS, 技术指纹识别, JS 爬取 |
| `[all]` | 以上所有 | 所有功能 |
## 安装说明
**克隆仓库:**
```
git clone https://github.com/derianfarley/argus.git
cd argus
```
**安装核心依赖:**
```
pip install -r requirements.txt
```
**或者安装特定的功能包:**
```
pip install ".[crypto]"
pip install ".[osint]"
pip install ".[all]"
```
**如果你安装了 `[web]` 扩展包,请安装 Playwright 浏览器:**
```
playwright install chromium
```
**在 Linux 上,捕获数据包需要 root 权限或 `cap_net_raw` 能力:**
```
sudo python argus.py
# 或
sudo setcap cap_net_raw+eip $(which python3)
```
## 配置
部分工具可以选择性地查询外部威胁情报 API。API 密钥存储在 `argus_config.json` 文件中,该文件与 `argus.py` 位于同一目录下。最简单的设置方法是使用内置的向导:
```
python argus.py → c (Configure API Keys)
```
向导会逐个展示每个密钥的掩码预览,并为你写入该文件。你也可以手动创建它:
```
{
"abuseipdb_key": "your-key-here",
"virustotal_key": "your-key-here",
"shodan_key": "your-key-here",
"urlhaus_key": "your-key-here",
"censys_pat": "your-personal-access-token"
}
```
所有 API 密钥都是可选的 — 没有它们,每个工具也能正常工作并优雅地进行降级处理。如果提供了密钥,它们会在适用的地方(如 IOC 查询、端口扫描丰富化、WHOIS 查询等)被自动使用。
## 用法
### 交互式菜单
```
python argus.py
```
这会启动包含所有 20 个工具的主交互式菜单,并按类别分组。通过每个工具旁边显示的数字或字母进行导航,按 `q` 可从任何子菜单返回。
### CLI 模式
Argus 还提供了用于脚本和自动化的非交互式命令行界面:
**Web 漏洞扫描:**
```
python argus.py scan --url https://example.com --all
python argus.py scan --url https://example.com --sqlmap --no-db
```
**对文本或文件进行 Hash 处理:**
```
python argus.py hash --text "hello world"
python argus.py hash --file /path/to/file.bin --algorithm sha512
```
支持的算法:`sha1`, `sha224`, `sha256`, `sha384`, `sha512`, `sha3_256`, `sha3_512`, `blake2b`
**检查 JWT:**
```
python argus.py jwt eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
```
**生成密码:**
```
python argus.py password --length 32
```
## 工具参考
### 1. 密码学工具包
**主菜单 → `1`**

包含八种密码学工具的中心枢纽,涵盖教学型和生产级算法。
#### 1.1 替换密码
一种经典的单表替换密码,使用反转字母表作为密钥。支持对输入的文本或文件进行加密和解密。明确标注为玩具/演示密码 — 对于任何真实用途,建议使用 AES-256。
#### 1.2 AES-256 文件加密/解密
通过 `cryptography` 库使用 AES-256-GCM 进行生产级对称加密。
- 使用 PBKDF2-HMAC-SHA256 密钥派生函数和随机的 16 字节盐值
- 每次加密生成一个随机的 12 字节 nonce
- 盐值和 nonce 会附加在输出文件之前,因此解密过程是自包含的
- 加密前会将整个文件加载到内存中 — 适用于大多数文件大小;超大文件(数 GB 以上)将占用相应比例的内存
需要:`pip install cryptography`
#### 1.3 RSA 密钥对 + 文本加密/解密
使用带有 SHA-256 的 OAEP padding 生成 3072 位(默认)或 4096 位的 RSA 密钥对。
- 将公钥和私钥保存为 PEM 文件
- 使用公钥加密短消息
- 使用私钥解密密文
- 由于 OAEP-SHA256 的开销,最大消息长度约为 318 字节(3072 位)或 446 字节(4096 位)
需要:`pip install cryptography`
#### 1.4 SHA 系列哈希
使用 MD5、SHA-1、SHA-256、SHA-512、SHA3-256 或 BLAKE2b 对输入的文本进行哈希处理,输出十六进制摘要。使用 Python 的 `hashlib` — 无需额外依赖。
#### 1.5 维吉尼亚密码
一种使用重复关键字的多表替换密码。
- 加密和解密字母文本
- 非字母字符保持不变
- 接受任意长度的关键字
#### 1.6 凯撒暴力破解器
对密文尝试所有 25 种可能的凯撒位移,并根据预期的英文字母频率对每个结果进行评分。输出所有 25 个候选结果并按分数排名,以便于识别最有可能的明文。
#### 1.7 XOR 密码
使用用户提供的十六进制密钥进行手动 XOR 加密和解密。将密文输出为十六进制字符串,并可将其解码还原。有助于理解基本的对称操作和 CTF 挑战。
#### 1.8 XOR 暴力破解器 + 频率分析
使用汉明距离/归一化编辑距离方法自动恢复多字节 XOR 密钥。
- 通过比较密文块之间的编辑距离来检测可能的密钥长度
- 使用英文字母频率分析独立恢复每个密钥字节
- 支持带有评分的单字节暴力破解以及最大长度可配置的多字节密钥
- 显示排名靠前的候选明文及其恢复出的密钥
### 2. 密码生成器
**主菜单 → `2`**

使用 `secrets.choice()` 生成密码学级别的随机密码。
- 选择要包含的字符类:大写字母、小写字母、数字、符号
- 设置自定义长度(根据所选类别强制执行最小)
- 如果安装了 **zxcvbn**,则使用它进行强度评分,否则回退到 Shannon 熵
- 显示 zxcvbn 得分(0–4)、预估的离线破解时间以及检测到的任何模式(键盘顺序输入、常见单词、日期)
- 如果安装了 `pyperclip`,可以将结果复制到剪贴板
完整评分需要:`pip install zxcvbn`
### 3. 编码/解码器
**主菜单 → `3`**

支持九种格式的多格式编码器和解码器,全部使用 Python 标准库 — 无需额外依赖。
#### 格式
| # | 格式 | 说明 |
|---|---|---|
| 1 | Base64 | 符合 RFC 4648 标准的编码/解码 |
| 2 | URL 编码 | 百分号编码(编码/解码) |
| 3 | HTML 实体 | 实体转义/反转义 |
| 4 | Hex | 文本 ↔ 十六进制字节字符串 |
| 5 | 二进制 | 文本 ↔ 8 位二进制字符串 |
| 6 | ROT13 | 对称字母旋转 |
| 7 | ROT47 | 跨所有可打印 ASCII 字符的对称旋转 |
| 8 | 摩斯密码 | 文本 ↔ 点划编码 |
| 9 | JWT | 检查器 + 六种攻击模式(见下文) |
#### JWT 工具(格式 9 的子菜单)
Argus 包含一个专用的 JWT 攻击工具包,用于授权的安全测试:
| # | 攻击 | 描述 |
|---|---|---|
| 1 | **检查** | 解码 header/payload,标记弱算法(公共 endpoint 上的 `none`, `HS256`),检查过期时间和标准 claims |
| 2 | **alg=none 剥离** | 移除签名并将 `alg` 设置为 `none`,伪造一个部分库会直接接受且不验证的 token |
| 3 | **编辑 payload + alg=none** | 修改 payload 中的任何 claim(例如 `"role": "admin"`)并剥离签名 |
| 4 | **使用已知密钥重新签名** | 伪造一个使用已知 HMAC 密钥签名的新 payload — 用于验证 token 验证逻辑 |
| 5 | **RS256 → HS256 混淆** | 算法混淆攻击:获取 RSA 公钥并使用它作为 HMAC 密钥对 token 重新签名,利用未严格校验预期算法的库 |
| 6 | **JWK 注入** | 在 JWT header 的 `jwk` claim 中嵌入攻击者控制的 RSA 密钥,诱骗有漏洞的库信任你自己的密钥 |
### 4. 数据包分析
**主菜单 → `4`**

包含三种网络数据包工具的中心枢纽。
#### 4.1 实时数据包嗅探器
带有 BPF 过滤器接口的实时数据包捕获。
- 接受任何有效的 BPF 表达式(`tcp`, `udp port 53`, `host 8.8.8.8`, `icmp` 等)
- 显示每个数据包的时间戳、协议、源地址、目标地址、标志位和 payload 预览
- 通过将 ARP 响应的 MAC 地址与实时表进行比较来检测 ARP 欺骗
- 跟踪 TCP 流并显示带有可打印内容的流的重组 payload
- 捕获直到达到指定数量或按下 `Ctrl+C`
需要:`pip install scapy` 且在 Linux/macOS 上需要 root/sudo 权限
#### 4.2 PCAP / PCAPNG 分析器
对已保存的捕获文件进行离线分析。
- 无需实时网络接口即可读取 `.pcap` 和 `.pcapng` 文件
- 重建 TCP 流并显示连接摘要
- 显示协议分布、通信最频繁的主机以及流量时间线
- 将格式化的分析报告保存到 SQLite 结果数据库中
需要:`pip install dpkt`
#### 4.3 C2 Beacon 检测器
对网络流量进行多维统计分析,以检测命令与控制 (C2) Beacon 模式。可分析 PCAP 文件或执行实时捕获。
**一级分析(始终启用):**
- 数据包间隔的变异系数 (CV) — 规则的 Beacon 其 CV < 0.2
- 数据包数量和流持续时间
- 端口分类(常见的 C2 端口:4444, 8080, 443, 1337 等)
- Payload 大小的变异系数
**二级分析(需要 `numpy`):**
- 快速傅里叶变换 (FFT) — 识别间隔序列中的主导周期频率
- 自相关 — 检测 FFT 在嘈杂信号中可能遗漏的周期性
- Payload 大小的 Shannon 熵 — 低熵表明是模板化的 C2 流量
- 带有 ASCII 柱状图的间隔直方图可视化
**API 丰富化(可选,密钥来自 `argus_config.json`):**
- AbuseIPDB:每个目标 IP 的滥用置信度得分
- VirusTotal:目标 IP 的检测率
- Shodan/InternetDB:目标主机上的开放端口和已知 CVE
每个流都会被评分,并分类为 HIGH、MEDIUM 或 LOW 置信度的 Beacon。
需要:`pip install scapy` 及可选的 `pip install numpy`
### 5. Web 漏洞扫描器
**主菜单 → `5`**

一个综合性的 Web 应用程序扫描器,包含分为五个类别的 20 项独立检查。支持三种扫描配置文件以及完全自定义的检查选择。
**扫描配置:**
- **快速** — 传输层检查(HTTP→HTTPS, SSL/TLS)、headers、服务器信息泄露、cookies、WAF 检测、技术指纹识别、well-known 文件
- **标准** — 包含快速模式的所有检查,外加:CORS、危险的 HTTP 方法、敏感路径、robots.txt、目录列出、开放重定向、速率限制、反射型 XSS、CSRF 检测、SSRF 扫描
- **深度** — 包含标准模式的所有检查,外加 SSLyze 深度 TLS 扫描;无论何种配置,必须明确同意才能运行 sqlmap
- **自定义** — 通过 y/n 提示,让你单独启用或禁用这 20 项检查中的每一项
#### 传输层与 TLS
- **(A) HTTP → HTTPS 重定向** — 通过跟踪明文 HTTP 版本的重定向链来验证服务器是否强制使用 HTTPS
- **(B) SSL/TLS 证书检查** — 检查证书过期时间、过时的协议版本和弱加密套件
#### HTTP Headers
- **(C) 安全 headers** — 检查以下 headers 是否存在且配置正确:`Strict-Transport-Security`, `Content-Security-Policy`, `X-Frame-Options`, `X-Content-Type-Options`, `X-XSS-Protection`, `Referrer-Policy`, `Permissions-Policy`
- **(D) 服务器信息泄露** — 标记 `Server`, `X-Powered-By`, `X-AspNet-Version` 以及其他类似会暴露技术栈细节的 headers
- **(E) CORS 策略** — 检测通配符 `Access-Control-Allow-Origin: *`,以及通配符来源与 `Access-Control-Allow-Credentials: true` 同时存在的危险组合
- **(F) 危险的 HTTP 方法** — 探测 `TRACE`, `CONNECT`, `DELETE`, `PUT` 和 `PATCH` 是否被公开接受
#### Cookies
- **(G) Cookie 安全标志** — 检查每个 `Set-Cookie` header 是否缺少 `Secure`, `HttpOnly` 和 `SameSite` 属性
#### 内容与路径
- **(H) 敏感文件/路径暴露** — 探测 44 个常见的敏感路径,包括 `.env`, `.git/HEAD`, `phpinfo.php`、数据库转储模式、管理面板、Spring Boot actuator endpoint、API 文档、备份文件扩展名等
- **(I) Robots.txt 泄露** — 获取并解析 `robots.txt`,标记包含敏感关键字的 `Disallow` 条目
- **(J) 目录列出检测** — 检查 20 个常见目录路径是否存在 Apache/Nginx 的目录索引响应 (`Index of /`)
- **(K) 开放重定向扫描** — 使用带有 Canary(金丝雀)目标地址的 14 种常见重定向参数(`next`, `url`, `redirect`, `goto`, `return_to` 等)进行测试,以检测未经验证的重定向逻辑
#### 基础设施
- **(L) 速率限制检测** — 检查 `X-RateLimit-*` 和 `Retry-After` headers,然后发送 15 个快速请求以确认是否真正执行了速率限制
- **(M) WAF / CDN 检测** — 从响应 headers 和正文模式中识别常见的 WAF 和 CDN 产品(Cloudflare, ModSecurity, Akamai, Imperva, AWS WAF, Sucuri 等)
- **(N) 技术指纹识别** — 使用 `wappalyzer-python` 识别框架、CMS、服务器软件、JavaScript 库和分析平台
- **(O) 深度 TLS 扫描 (SSLyze)** — 详细的 TLS 验证,包括接受的协议版本、加密套件枚举、证书链验证和已知漏洞检查
- **(P) sqlmap 辅助 SQLi 扫描** — 在用户明确确认后针对目标启动 sqlmap;需要单独安装 sqlmap
- **(Q) 反射型 XSS 参数探测** — 将唯一的 Canary 字符串注入到 URL 参数中,检查其是否未转义地出现在响应中
- **(R) Well-known 文件与清单** — 探测 `/.well-known/security.txt`, `/.well-known/openid-configuration`, `/.well-known/jwks.json` 及类似的发现 endpoint,查找暴露的配置和服务 metadata
- **(S) CSRF 检测** — 被动检查响应中的 HTML 表单是否存在缺失或弱的 CSRF token;标记缺少任何防伪机制的 POST 表单
- **(T) SSRF 参数扫描** — 将带外探测 URL 注入到常见的请求参数中,以检测表单输入和查询参数中的服务端请求伪造漏洞
所有的发现都会被标记为 `CRITICAL / HIGH / MEDIUM / LOW / INFO`,按严重性分组显示,并为每个发现提供修复建议。在适用的地方,发现结果还会标记上相关的 MITRE ATT&CK 技术标识符。报告可以保存为带有时间戳的 `.txt` 文件,并且始终会保存到 SQLite 结果数据库中以便日后比较。
需要:`pip install requests`
### 6. HTTP Repeater
**主菜单 → `6`**

构建、发送并迭代修改 HTTP 请求,而无需离开 Argus。
- 从以下方式中选择:GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS
- 提供 URL(如果未指定协议,则默认使用 HTTPS)
- 逐行添加自定义 headers(`Name: Value` 格式)
- 对于 POST, PUT, PATCH:提供可选的请求正文
- 每次响应后,查看状态码、所有响应 headers 和完整的正文
- 选择重新发送相同的请求、修改它或返回菜单
有助于手动确认漏洞、测试 endpoint 行为、调整捕获的请求以及验证补丁。
需要:`pip install requests`
### 7. 爬虫/抓取器
**主菜单 → `7`**

使用广度优先搜索爬取 Web 应用程序并映射其完整的攻击面。
**它能发现的内容:**
- **内部链接** — 同一域名上的每个页面
- **外部链接** — 目标网站链接到的第三方域名
- **表单** — action URL、HTTP 方法和所有已命名的输入字段(用于查找注入点)
- **有趣的 URL** — 匹配敏感关键字的路径:`admin`, `login`, `signin`, `auth`, `api`, `upload`, `file`, `dashboard`, `panel`, `config`, `backup`, `export`, `download`, `debug`, `test`, `dev`, `staging`, `internal`, `private`, `password`, `passwd`, `token`, `key`, `secret`, `credentials`
**配置:**
- 最大深度:1–5 层(默认 2)
- 最大页面数:可配置的限制,以避免失控的爬取
- 可选的 Playwright 模式用于处理 JavaScript 渲染的页面 — 可以爬取对于常规 GET 请求返回空 HTML 的单页应用
结果可以保存为带有时间戳的 `.txt` 文件。
需要:`pip install requests beautifulsoup4`
JS 模式需要:`pip install playwright && playwright install chromium`
### 8.键盘记录器
**主菜单 → `8`**

专门用于监控你自己的机器的键盘记录器 — 适用于研究、取证演示或监控授权的实验室环境。
- 使用 `pynput` 捕获所有带有时间戳的击键记录
- 在受支持的平台上跟踪活动窗口标题的变化:
- Windows:通过 `pygetwindow`
- Linux:通过 `xdotool`(如果已安装)
- macOS:通过 `subprocess` 调用 AppleScript
- 通过 `pyperclip` 监控剪贴板内容变化
- 运行直到按下 **ESC**
- 退出时显示会话统计信息:总击键次数、独立按键数、每分钟字数、最频繁按下的键以及窗口切换次数
需要:`pip install pynput pyperclip`
仅限 Windows:`pip install pygetwindow`
### 9. 结果数据库
**主菜单 → `9`**
所有产生结构化输出的 Argus 工具都会自动将结果保存到本地 SQLite 数据库(`argus_results.db`)中。结果数据库工具提供了一个用于查看和导出已保存扫描结果的界面。
- **浏览最近的运行记录** — 列出最近保存的 20 次运行记录,包括工具名称、目标、时间戳和摘要
- **查看运行记录** — 根据 ID 显示任何一次运行的完整保存报告
- **比较两次运行记录** — 对比两次已保存扫描报告的发现结果,突出显示新增和已解决的问题(用于跟踪修复进度)
- **导出为 .txt** — 将运行记录的完整报告保存为纯文本文件
- **导出为 HTML** — 生成带有严重性部分颜色编码的精美 HTML 报告
### 10. 网络与侦察工具
**主菜单 → `10`**

包含四种网络侦察工具的子菜单枢纽。
#### 10.1 端口扫描器
使用 `ThreadPoolExecutor` 的并发 TCP 端口扫描器。
- 接受目标主机和端口范围(例如 `1-1024`)或以逗号分隔的列表
- 从内置表中解析常见服务名称(HTTP, HTTPS, SSH, FTP, SMB, RDP, MySQL 等)
- 如果配置了 Shodan API 密钥,结果将通过 Shodan 的 banner 数据和已知 CVE 进行丰富化
- 仅限对你拥有或已获得授权扫描的主机使用
#### 10.2 Ping 扫描器
通过跨子网的 ICMP Ping 扫描来发现活动主机。
- 接受 CIDR 表示法(例如 `192.168.1.0/24`)
- 通过操作系统的 Ping 工具并发 Ping 每个主机地址
- 列出响应的主机及其往返时间
#### 10.3 WHOIS / DNS 查询
综合的域名和 IP 查询工具。
- 通过 `dnspython` 解析 A, AAAA, MX, NS, TXT 和 CNAME 记录
- 通过 `python-whois` 获取 WHOIS 注册数据
- 如果配置了 API 密钥,可选择使用 Shodan 主机数据丰富化 IP 结果
- 结果将保存到 SQLite 结果数据库中
#### 10.4 HTTP Header 检查器
获取并显示目标 URL 的所有 HTTP 响应 headers。
- 颜色编码输出可区分与安全相关的 headers(HSTS, CSP, X-Frame-Options 等)与信息性及服务器信息泄露相关的 headers
- 不做分析 — 原样显示返回的原始 headers
### 11. 密码与 Hash 工具
**主菜单 → `11`**

包含四种密码和 Hash 工具的子菜单。
#### 11.1 Hash 生成器
使用可选算法对文本或文件进行 Hash 处理。
- 算法:MD5, SHA-1, SHA-256, SHA-512, SHA3-256, BLAKE2b
- 对于文件:以 1 MB 分块读取,无需全部载入内存即可处理任意大的输入文件
#### 11.2 Hash 破解器(字典)
带有自动算法检测的基于字典的 Hash 破解器。
- 接受一个 Hash 值,并根据其长度和字符集推断可能的算法
- 接受任何字典文件(每行一个候选词)
- 依次针对所有推断出的算法测试每个字典候选词,并带有实时显示已检查单词数和当前候选词的 Rich 进度条
- 在首次匹配成功时打印明文并停止
#### 11.3 密码强度分析器
评估密码强度并估算破解时间。
- 通过 `getpass` 输入密码 — 不在终端回显
- 如果安装了 **zxcvbn** 则进行评分(得分 0–4,带有特定的模式警告:键盘顺序输入、常用词、日期、重复模式等)
- 如果 zxcvbn 不可用,则回退到 Shannon 熵计算
- 显示当前 GPU 破解速度下预估的离线破解时间
#### 11.4 Have I Been Pwned 密码检查器
使用 k-anonymity 针对 HIBP 泄露数据库检查密码。
- 仅将 SHA-1 Hash 的前 5 个字符发送到 HIBP API — 完整的 Hash 永远不会离开本机
- 报告该密码在所有已知泄露数据集中出现的次数
- 永远不会传输或记录明文密码
### 12. 文件与取证
**主菜单 → `12`**

包含三种文件和取证工具的子菜单。
#### 12.1 文件 Metadata 提取器
从任何文件中提取文件系统和 EXIF metadata。
- 适用于任何文件类型的操作系统级统计信息:大小、创建时间、修改时间和访问时间戳
- 对于图像:通过 Pillow 提取完整的 EXIF 信息,包括相机制造商/型号、GPS 坐标、曝光设置、焦距和软件标签
- 结果将保存到 SQLite 结果数据库中
提取 EXIF 需要:`pip install Pillow`
#### 12.2 PNG 隐写术 (LSB)
使用最低有效位编码在 PNG 图像中隐藏或提取秘密文本消息。
**隐藏模式:**
- 将 UTF-8 消息编码到每个像素的红、绿、蓝通道的 LSB 中
- 载体图像与原始图像在视觉上完全一致
- 输出始终为 PNG(JPEG 压缩会破坏 LSB 数据)
- 报告已用容量与总可用容量的对比
**显示模式:**
- 读取每个像素 RGB 通道的 LSB 并重建原始消息
- 适用于隐藏模式生成的任何 PNG
容量:大约 `(图像宽度 × 图像高度 × 3) / 8` 字节。
需要:`pip install Pillow`
#### 12.3 文件完整性检查器
SHA-256 文件完整性基线和验证工具。
**基线模式:**
- 递归遍历目录并对每个文件进行 Hash 处理
- 保存包含路径、SHA-256 摘要、创建时间戳和根目录的 JSON 清单
- 跳过 `.git` 和 `__pycache__` 目录
**验证模式:**
- 对同一目录树重新进行 Hash 处理,并与已保存的清单进行比较
- 报告以下各项的数量:新增文件、删除文件和修改过的文件(Hash 不匹配)
- 列出每个类别的具体文件路径(每个类别最多 50 个)
### 13. 授权实验室测试器
**主菜单 → `13`**

一款被动发现和无害探测工具,专为受控实验室目标(你自己的机器或专用测试环境)而设计。
- 将目标主机名解析为所有关联的 IP 地址
- 将每个 IP 分类为公共、私有、环回、链路本地或保留地址
- 执行非破坏性的 HTTP 探测 (GET /) 并报告状态码、服务器 header、重定向链和页面标题
- 从着陆页提取所有链接和表单,但不提交任何内容
- 结果将保存到 SQLite 数据库中
### 14. OSINT 工具包
**主菜单 → `14`**

包含八种被动 OSINT 工具的子菜单枢纽。所有工具都会将结果保存到 SQLite 数据库中。
#### 14.1 域名 OSINT
被动域名情报收集。
- 多记录 DNS 解析:A, AAAA, MX, NS, TXT, CNAME
- 通过 `python-whois` 获取 WHOIS 注册数据
- SPF 记录分析 — 解析机制,检测缺失或过于宽松的记录
- DMARC 策略检查 — 标记缺失策略、`p=none` 以及缺失 `rua` 标签
- 通过 **crt.sh** 枚举证书透明度名称 — 从公开 CT 日志中查找子域名和相关域名,且无需向目标发送任何数据包
#### 14.2 IP 情报
IP 地理定位和 ASN 数据。
- 如果提供的是主机名,则将域名解析为 IP
- 查询 ipwho.is 获取:国家、地区、城市、ASN、ISP、组织和时区
- 对地址类型进行分类:公共、私有、环回、链路本地、多播或保留
#### 14.3 邮箱分析器
邮箱地址 OSINT 和可送达性评估。
- 格式验证(通过 `email.utils` 进行 RFC 5322 解析)
- 域名的 MX 记录解析 — 验证邮件是否确实可以送达
- 对发件人域进行 SPF 和 DMARC 策略检查
#### 14.4 邮件头分析器
原始邮件头取证。
- 接受粘贴的 header 文本或 `.eml` 文件路径
- 解析完整的 `Received` 链以跟踪路由跳转和时间戳
- 提取并验证 `Authentication-Results`(SPF, DKIM, DMARC 状态)
- 标记常见的伪造指标:`From`/`Reply-To` 不匹配、`Return-Path` 差异、源 IP 与声明的发件人域不匹配
#### 14.5 用户名检查器
跨主要公共平台的被动用户名存在性检查。
- 通过 `ThreadPoolExecutor` 并发探测知名的个人资料 URL 模式
- HTTP 200 和 403 响应将被标记为可能存在的线索,供人工审查
- HTTP 404 被视为不存在
- 不会以任何方式登录、进行身份验证或与任何账户进行交互
#### 14.6 图像地理定位
从图像 EXIF metadata 中提取并映射 GPS 坐标。
- 接受带有嵌入式 GPS EXIF 标签的 JPEG 和 TIFF 文件
- 读取 `GPSLatitude`, `GPSLongitude` 和参考标签
- 将度/分/秒 (DMS) 转换为十进制小数
- 生成该位置的 Google Maps 直接链接
- 在 GPS 数据旁显示完整的 EXIF 转储信息
需要:`pip install Pillow`
#### 14.7 IOC 查询助手
多来源的失陷标识符 (IOC) 丰富化。自动对标识符类型(IP、域名、URL、MD5、SHA-1、SHA-256)进行分类,然后查询相应的 API。
**对于 IP 地址:**
- AbuseIPDB:滥用置信度得分和报告数量
- Shodan/InternetDB:开放端口和已知 CVE(InternetDB 不需要 API 密钥)
- Shodan host API:如果配置了 `shodan_key`,可获取完整的 banner 数据
- Censys Platform API (`api.platform.censys.io/v3`):使用 Bearer PAT 身份验证获取端口和服务数据
**对于 URL 和域名:**
- URLhaus:恶意软件托管和网络钓鱼分类
- VirusTotal:跨所有可用 AV 引擎和 URL 扫描器的检测率
**对于文件 Hash (MD5, SHA-1, SHA-256):**
- MalwareBazaar:文件名、类型、恶意软件特征、标签和首次发现日期
- VirusTotal:检测率和恶意软件家族分类
在显示之前,所有 API 错误信息中的密钥值都会被屏蔽处理。
#### 14.8 批量 IOC 处理器
自动通过完整的 IOC 查询流水线,处理来自文本文件中的 IOC 列表(每行一个)。
- 自动对每个标识符进行分类
- 针对每个标识符查询所有已配置的 API
- 显示结构化的摘要表,包含结论(干净/可疑/恶意/未知)和检测计数
- 将完整的报告保存到 SQLite 数据库中
### 15. SSL/TLS 检查器
**主菜单 → `15`**

使用 Python 内置的 `ssl`模块进行深入的 SSL/TLS 检查 — 无需额外依赖。
- 接受主机名、URL 或 `host:port`
- 连接并获取完整的证书详细信息:使用者、颁发者、所有 SAN(使用者可选名称)、序列号、有效期以及距离过期的天数
- 显示协商的 TLS 协议版本(TLS 1.0 / 1.1 / 1.2 / 1.3)
- 显示当前使用的加密套件和密钥交换机制
- 标记常见的错误配置:过期的证书、30 天内即将过期的证书、过时的 TLS 1.0/1.1、由未知/自签名 CA 颁发的证书
### 16. 反向 Shell 生成器
**主菜单 → `16`**

生成用于授权渗透测试和 CTF 的反向 Shell 单行命令。不会执行任何内容 — payload 仅作展示,供复制/粘贴使用。
输入 LHOST(你的监听 IP)和 LPORT(默认 4444),然后 Argus 将生成以下 payload:
| # | 语言 / 方法 |
|---|---|
| 1 | Bash (TCP) |
| 2 | Bash (UDP) |
| 3 | Python 3 |
| 4 | Perl |
| 5 | PHP |
| 6 | Ruby |
| 7 | nc(传统版,带 `-e`) |
| 8 | nc(管道方法,无需 `-e`) |
| 9 | PowerShell (TCP,绕过执行策略) |
如果安装了 `pyperclip`,可以通过输入其编号将任何 payload 直接复制到剪贴板。
始终显示建议的 netcat 监听命令:`nc -lvnp `
### 17. 目录暴力破解器
**主菜单 → `17`**

使用字典发现 Web 服务器上隐藏的文件和目录。
- 接受任何字典文件(每行一个路径),或使用内置的包含 115 个词的紧凑列表(涵盖常见的管理面板、API endpoint、CMS 路径、备份文件、配置文件等)
- 通过 `ThreadPoolExecutor` 实现并发请求以提高速度
- 线程数和超时可配置
- 按状态码过滤 — 标记 200, 201, 204, 301, 302, 307, 403 响应
- 报告状态码、内容长度以及重定向后的最终 URL
- 结果保存到 SQLite 数据库中
需要:`pip install requests`
### 18. 子域名枚举器
**主菜单 → `18`**

通过两种方式发现子域名,这两种方式也可以选择结合使用。
**DNS 字典暴力破解:**
- 为内置列表(110 个常见子域名)或自定义字典中的每个词通过 DNS 解析 `.`
- 内置列表涵盖:`www`, `mail`, `api`, `dev`, `staging`, `prod`, `admin`, `vpn`, `ci`, `jenkins`, `git`, `gitlab`, `ftp`, `intranet`, `corp`, `office` 等等
- 通过 `ThreadPoolExecutor` 进行并发解析并显示实时进度
**证书透明度日志:**
- 被动查询 crt.sh 以获取 `%.domain`,从已颁发的证书中查找所有名称
- 不向目标域名发送任何数据包
- 通常能发现 DNS 字典永远猜不到的子域名
**HTTP 探测(可选):**
- 对于发现的每个主机名,探测 HTTP 和 HTTPS 以查找活动服务
- 报告状态码、重定向目标和页面标题
结果将保存到 SQLite 数据库中。
### 19. CVE / NVD 查询
**主菜单 → `19`**

直接从 Argus 中搜索 NIST 国家漏洞数据库。无需 API 密钥。NVD 速率限制为每 30 秒 5 次请求。
**搜索模式:**
- **按 CVE-ID** — 精确查询特定的 CVE(例如 `CVE-2024-12345`)
- **按关键字** — 在 NVD 中进行全文搜索(例如 `log4j`, `apache`, `openssl`),结果数量可配置
**对于找到的每个 CVE,Argus 将显示:**
- CVE ID
- CVSS 基础得分和严重性(首选 v3.1,回退到 v3.0, v4.0, v2)
- CVSS 向量字符串
- CWE 分类
- 发布日期和最后修改日期
- 完整的英文描述
- **EPSS 得分**(来自 first.org 的漏洞利用预测评分系统) — 未来 30 天内的利用概率,包含百分位排名和分类标记(高 / 中 / 低利用概率)
所有结果都会保存到 SQLite 数据库中。
### 20. 云安全检查器
**主菜单 → `20`**

探测云存储服务的公共访问错误配置。测试跨三个提供商的六个 endpoint — 无需云 API 密钥。
| 提供商 | Endpoint | 检测方法 |
|---|---|---|
| AWS S3 | 虚拟托管风格 (`https://.s3.amazonaws.com/`) | 响应中的 XML `ListBucketResult` |
| AWS S3 | 路径风格 (`https://s3.amazonaws.com//`) | XML 列表 |
| Azure Blob | 容器列表 (`?restype=container&comp=list`) | HTTP 状态码 + XML |
| Azure Blob | 静态网站 (`$web`) | HTTP 200 响应 |
| GCP | XML API (`storage.googleapis.com//`) | XML `ListBucketResult` |
| GCP | JSON API (`/storage/v1/b//o`) | JSON kind 字段 |
对于每个 endpoint,报告:HTTP 状态码、是否检测到公开列表以及测试的完整 URL。被标记的 endpoint 将作为 HIGH 严重级别的发现展示。
### 系统:配置 API 密钥
**主菜单 → `c`**
用于设置 `argus_config.json` 的交互式向导。
- 显示每个密钥当前掩码后的值(仅可见最后 4 个字符)
- 依次提示输入每个密钥,并描述使用该密钥的工具
- 支持更新单个密钥而不重置其他密钥
- 将更新后的 JSON 写入 `argus_config.json`
**支持的密钥:**
| 密钥 | 使用者 |
|---|---|
| `abuseipdb_key` | IOC 助手(IP 查询)、C2 Beacon 检测器 |
| `virustotal_key` | IOC 助手(IP、域名、URL、Hash)、批量 IOC 处理器 |
| `shodan_key` | IOC 助手(主机数据)、端口扫描器(CVE 丰富化)、WHOIS/DNS |
| `urlhaus_key` | IOC 助手(URL/域名查询) |
| `censys_pat` | IOC 助手(通过 Censys Platform API v3 获取 IP 服务数据) |
所有密钥都是可选的 — 没有它们,每个工具也能正常工作并优雅地进行降级处理。
## 项目结构
```
argus/
├── argus.py # Single-file application (~10,600 lines)
├── pyproject.toml # PEP 621 packaging metadata + optional extras
├── requirements.txt # Dependency list with capability annotations
├── README.md # This file
├── docs/
│ └── screenshots/ # Tool preview images
└── argus_config.json # API keys (created by setup wizard, not committed)
```
首次运行时,工作目录中会自动创建 `argus_results.db`。
## 许可证
MIT License — 详见 [LICENSE](LICENSE)。
*由 [Derian Farley](https://github.com/derianfarley) 构建*
工具预览 — 点击展开
| | | |:---:|:---:| | **1 · 密码学工具包** | **2 · 密码生成器** | |  |  | | **3 · 编码/解码器** | **4 · 数据包分析** | |  |  | | **5 · Web 漏洞扫描器** | **6 · HTTP Repeater** | |  |  | | **7 · 爬虫/抓取器** | **8 · 键盘记录器** | |  |  | | **10 · 网络与侦察工具** | **11 · 密码与 Hash 工具** | |  |  | | **12 · 文件与取证** | **13 · 授权实验室测试器** | |  |  | | **14 · OSINT 工具包** | **15 · SSL/TLS 检查器** | |  |  | | **16 · 反向 Shell 生成器** | **17 · 目录暴力破解器** | |  |  | | **18 · 子域名枚举器** | **19 · CVE / NVD 查询** | |  |  | | **20 · 云安全检查器** | | |  | |
标签:ESC4, OSINT, Python, 实时处理, 密码管理, 数字取证, 数据泄露, 无后门, 特征检测, 系统分析, 网络分析, 网络安全工具箱, 自动化脚本, 逆向工具