Zarixxx/zapd
GitHub: Zarixxx/zapd
一款用 C 语言编写的轻量级网络与威胁分析命令行工具,集成端口扫描、VirusTotal 威胁情报、WHOIS 查询和 Ping/Traceroute 功能,无外部依赖,适合安全评估和网络诊断。
Stars: 2 | Forks: 0
```
███████╗ █████╗ ██████╗ ██████╗
╚══███╔╝██╔══██╗██╔══██╗██╔══██╗
███╔╝ ███████║██████╔╝██║ ██║
███╔╝ ██╔══██║██╔═══╝ ██║ ██║
███████╗██║ ██║██║ ██████╔╝
╚══════╝╚═╝ ╚═╝╚═╝ ╚═════╝
```
**网络与威胁分析工具**




ZapD 是一个用 C 语言编写的命令行工具,用于网络和威胁分析。它是原生二进制文件,运行时无外部依赖,无需 Python 或解释器。只需编译一次,即可获得一个可像任何系统工具一样使用的可执行文件。
## 安装说明
### 前置条件
- `gcc` — C 编译器(CachyOS/Arch 默认包含)
- `openssl` — 仅用于 VirusTotal 模块
```
sudo pacman -S openssl # para el módulo vt
sudo pacman -S traceroute # para zapd ping --trace
sudo pacman -S bind-tools # para zapd whois --dns (dig)
```
### 编译并安装
```
git clone https://github.com/Zarixxx/zapd.git
cd zapd
make
sudo make install
```
这会将二进制文件安装到 `/usr/local/bin/zapd`,你可以在任何终端中使用它。
### 卸载
```
sudo make uninstall
```
## 命令
### `zapd scan` — 端口扫描
对目标的每个端口执行真实的 TCP 或 UDP 连接,以确定哪些端口是开放的、关闭的或被防火墙过滤的。
- **开放** — 端口接受连接,有服务正在监听。
- **关闭** — 主机响应并拒绝连接(RST)。没有服务。
- **过滤** — 没有响应。防火墙正在静默丢弃数据包。
```
zapd scan
[opciones]
```
| 选项 | 描述 | 默认值 |
|--------|-------------|---------|
| `-p <端口>` | 要扫描的端口范围。格式:`1-1024`、`22,80,443`、`1-65535` | `1-1024` |
| `-T <1-5>` | 速度预设(见下表) | `3` |
| `-t ` | 覆盖预设的线程数 | — |
| `--timeout ` | 覆盖预设的超时时间(秒,支持小数) | — |
| `-u` | UDP 模式而非 TCP | 关闭 |
| `-r` | 在扫描前随机化端口顺序 | 关闭 |
| `-b` | Banner grabbing:尝试读取每个端口上运行的软件信息 | 关闭 |
| `-O` | OS fingerprinting:通过 TTL 猜测操作系统 | 关闭 |
| `--show-closed` | 同时显示关闭和过滤的端口 | 关闭 |
| `-o <文件>` | 将结果保存为 JSON 文件 | — |
#### 时间预设 (`-T`)
| 级别 | 名称 | 线程 | 超时 | 使用场景 |
|-------|--------|-------|---------|---------------|
| `-T1` | Paranoid | 1 | 5.0s | 极慢扫描,网络噪音最小 |
| `-T2` | Sneaky | 10 | 3.0s | 慢速,低噪音 |
| `-T3` | Normal | 100 | 1.5s | 速度/可靠性平衡(默认) |
| `-T4` | Aggressive | 300 | 0.8s | 快速,可能会漏掉响应慢的端口 |
| `-T5` | Insane | 500 | 0.3s | 极快,可能出现假阴性 |
#### 示例
```
# 扫描最常用的 1024 个端口
zapd scan 192.168.1.1
# 扫描所有端口
zapd scan 192.168.1.1 -p 1-65535 -T4
# 特定端口及 Banner 和 OS 检测
zapd scan 192.168.1.1 -p 22,80,443,3306,5432 -b -O
# UDP 扫描 (DNS, SNMP, DHCP, NTP...)
zapd scan 192.168.1.1 -u -p 53,67,68,123,161
# 查看被过滤的端口 (firewall)
zapd scan 192.168.1.1 -p 1-1024 --show-closed
# 随机端口顺序
zapd scan 192.168.1.1 -r -T3
# 保存结果为 JSON
zapd scan 192.168.1.1 -p 1-1024 -b -o resultado.json
# 组合使用
zapd scan 192.168.1.1 -p 1-65535 -T4 -r -b -O --show-closed -o full.json
```
### `zapd vt` — VirusTotal 分析
查询真实的 VirusTotal v3 API,针对 70 多个杀毒引擎同时分析 URL、IP、域名或文件哈希。
需要免费的 API key:[virustotal.com/gui/join-us](https://www.virustotal.com/gui/join-us)
```
zapd vt [opciones]
```
| 选项 | 描述 | 默认值 |
|--------|-------------|---------|
| `-t <类型>` | 分析类型:`url`、`ip`、`domain`、`hash` | `url` |
| `-k <密钥>` | VirusTotal API key | 环境变量 `VT_API_KEY` |
| `-o <文件>` | 将完整的 JSON 报告保存到文件 | — |
#### 配置 API key(仅需一次)
```
echo 'export VT_API_KEY=tu_clave_aqui' >> ~/.zshrc
source ~/.zshrc
```
此后无需再传递 `-k` 参数。
#### 显示内容
- **判定结果** — CLEAN(干净)、SUSPICIOUS(可疑)或 MALICIOUS(恶意)
- **统计数据** — 多少引擎将其检测为恶意、可疑或干净
- **信誉** — VT 中 IP/域名的信誉评分
- **国家和 ASN** — 对于 IP,显示国家和 IP 块所有者
- **文件元数据** — 对于哈希:名称、类型、MD5、SHA256
- **检测列表** — 哪些引擎检测到它以及使用的名称
#### 示例
```
# 分析可疑 URL
zapd vt https://sitio-sospechoso.com
# 分析 IP 信誉
zapd vt 8.8.8.8 -t ip
# 分析域名
zapd vt malware.ejemplo.com -t domain
# 通过 MD5 或 SHA256 哈希分析文件
zapd vt d41d8cd98f00b204e9800998ecf8427e -t hash
zapd vt e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 -t hash
# 直接传递 API key (不使用环境变量)
zapd vt https://sitio.com -k TU_API_KEY
# 保存完整报告
zapd vt https://sitio.com -o informe.json
```
### `zapd ping` — Ping 和 Traceroute
向目标发送 ICMP 数据包并显示每次响应的延迟。使用 `--trace` 执行 traceroute,显示你的机器与目标之间的所有跳(路由器)。
```
zapd ping [opciones]
```
| 选项 | 描述 | 默认值 |
|--------|-------------|---------|
| `-c ` | 要发送的 ICMP 数据包数量 | `4` |
| `--trace` | Ping 后执行 traceroute | 关闭 |
| `--max-hops ` | Traceroute 的最大跳数 | `30` |
#### 示例
```
# 基本 Ping
zapd ping 8.8.8.8
# 发送更多数据包以获得更好的统计信息
zapd ping google.com -c 20
# Ping + traceroute
zapd ping 8.8.8.8 --trace
# 带跳数限制的 Traceroute
zapd ping google.com --trace --max-hops 15
```
### `zapd whois` — WHOIS 和 DNS
直接通过 TCP(端口 43)连接到 WHOIS 服务器,获取有关域名注册者、到期时间、名称服务器等信息。使用 `--dns` 还可以查询域名的所有 DNS 记录。
```
zapd whois [opciones]
```
| 选项 | 描述 |
|--------|-------------|
| `--dns` | 查询 DNS 记录:A、AAAA、MX、NS、TXT、CNAME、SOA |
| `-o <文件>` | 将结果保存为 JSON |
#### 显示内容
- **WHOIS** — 注册商、创建/到期/更新日期、状态、名称服务器、组织、国家
- **DNS** — 使用 `--dns` 时显示域名的所有记录
#### 示例
```
# 基本 WHOIS
zapd whois google.com
# WHOIS + 所有 DNS 记录
zapd whois mozilla.org --dns
# 查询 IP
zapd whois 8.8.8.8
# 保存结果
zapd whois ejemplo.com --dns -o whois.json
```
## 快速帮助
```
zapd --help # ayuda general
zapd scan --help # ayuda detallada del escáner
zapd vt --help # ayuda del módulo VirusTotal
zapd ping --help # ayuda del ping/traceroute
zapd whois --help # ayuda del WHOIS/DNS
zapd --version # versión actual
```
## 免责声明
请仅在你拥有明确授权的系统和网络上使用 ZapD。未经授权的端口扫描在你所在的司法管辖区可能属于非法行为。作者不对本工具的滥用行为承担责任。
标签:Ask搜索, GitHub, Linux工具, Ping, TCP扫描, traceroute, VirusTotal, WHOIS查询, 协议探测, 原生二进制, 威胁分析, 安全测试工具, 实时处理, 客户端加密, 并发处理, 开源安全工具, 情报分析, 插件系统, 数据统计, 端口扫描, 端口探测, 网络安全, 网络诊断, 自动化侦查工具, 逆向工程平台, 隐私保护