tbckr/trident

GitHub: tbckr/trident

一款零配置的开源情报命令行工具,整合 DNS 侦察、子域名枚举、威胁情报查询和 CDN 检测等能力。

Stars: 2 | Forks: 0

# trident [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d1e239f129145906.svg)](https://github.com/tbckr/trident/actions/workflows/ci.yml) [![最新发布](https://img.shields.io/github/v/release/tbckr/trident)](https://github.com/tbckr/trident/releases) [![Go 版本](https://img.shields.io/github/go-mod/go-version/tbckr/trident)](https://github.com/tbckr/trident/blob/main/go.mod) [![Go 报告卡](https://goreportcard.com/badge/github.com/tbckr/trident)](https://goreportcard.com/report/github.com/tbckr/trident) **快速、无密钥的 OSINT 工具,打包为单一二进制文件。** DNS 查询、Cymru ASN 信息、证书透明度、威胁情报、PGP 密钥搜索以及 CDN/提供商检测 —— 无需 API 密钥,无需注册,无需配置。 trident 是 Python [Harpoon](https://github.com/Te-k/harpoon) 工具的 Go 移植版和演进版,专为在终端工作的分析师和安全研究人员打造。 ``` $ trident dns example.com +------+------------------------------------------+ | TYPE | VALUE | +------+------------------------------------------+ | NS | a.iana-servers.net. | | | b.iana-servers.net. | +------+------------------------------------------+ | A | 93.184.216.34 | +------+------------------------------------------+ | AAAA | 2606:2800:21f:cb07:6819:42b5:ba16:c9cb | +------+------------------------------------------+ | MX | 0 . | +------+------------------------------------------+ | TXT | "v=spf1 -all" | +------+------------------------------------------+ ``` ## 目录 - [安装](#installation) - [验证发布产物](#verify-release-artifacts) - [快速入门](#quickstart) - [功能特性](#features) - [服务](#services) - [输出格式](#output-formats) - [批量输入](#bulk-input) - [PAP 系统](#pap-system) - [配置](#configuration) - [全局参数](#global-flags) - [命令参考](#commands-reference) - [开发](#development) - [负责任地使用](#responsible-use) - [贡献](#contributing) - [安全](#security) - [行为准则](#code-of-conduct) ## 安装 **最快的方式** —— 需要 Go 1.26+: ``` go install github.com/tbckr/trident/cmd/trident@latest ``` **预编译二进制文件** —— 从 [发布页面](https://github.com/tbckr/trident/releases) 下载适用于 Linux、macOS 或 Windows (amd64/arm64) 的版本。包含 Linux 软件包 (`.deb`, `.rpm`, `.apk`, `pkg.tar.zst`)。 **Nix** —— 无需安装即可运行或添加到您的系统配置文件: ``` # 直接运行 nix run github:tbckr/trident -- dns example.com # 安装到 profile nix profile install github:tbckr/trident ``` **从源码构建:** ``` git clone https://github.com/tbckr/trident cd trident go build -o trident ./cmd/trident ``` ## 验证发布产物 每个版本都使用 [cosign](https://docs.sigstore.dev/cosign/system_config/installation/) 进行签名 并通过 GitHub Actions OIDC 进行无密钥签名。发布流水线会生成: 1. **SLSA Provenance v1 证明** —— 一份结构化文档,用于证明发布是*如何*以及在*何处*构建的,并使用 `cosign attest-blob` 签名 → `checksums.txt.slsa-provenance.sigstore.json` 2. **归档校验和** —— 每个发布归档的 SHA-256 哈希值都列在 `checksums.txt` 中 完整验证链: ``` cosign verify-blob-attestation → provenance attests checksums.txt (build origin + integrity) sha256sum --check → individual archive integrity ``` ### 手动验证 ``` VERSION=v0.9.0 ARCHIVE=trident_Linux_x86_64.tar.gz # 下载验证文件 curl -fsSL "https://github.com/tbckr/trident/releases/download/${VERSION}/checksums.txt" -o checksums.txt curl -fsSL "https://github.com/tbckr/trident/releases/download/${VERSION}/checksums.txt.slsa-provenance.sigstore.json" -o checksums.txt.slsa-provenance.sigstore.json # 验证 SLSA provenance attestation(证明构建来源 + 完整性) cosign verify-blob-attestation \ --bundle checksums.txt.slsa-provenance.sigstore.json \ --type slsaprovenance1 \ --certificate-identity "https://github.com/tbckr/trident/.github/workflows/release.yml@refs/tags/${VERSION}" \ --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \ checksums.txt # 验证归档校验和(Linux) sha256sum --check --ignore-missing checksums.txt # 验证归档校验和(macOS) shasum -a 256 --check --ignore-missing checksums.txt ``` ### 脚本 `scripts/verify-release.sh` 自动执行上述步骤,并可在 Linux 和 macOS 上运行: ``` # 首先从 releases 页面下载归档,然后: ./scripts/verify-release.sh v0.9.0 trident_Linux_x86_64.tar.gz ``` 该脚本下载校验和及 SLSA 来源包,运行 `cosign verify-blob-attestation`,检查归档哈希,并在任何失败时以非零状态退出。它需要 `cosign` v2+ 和 `curl`。 ### 仅校验和(无 cosign) 如果您未安装 cosign,仍可在从发布页面下载 `checksums.txt` 后根据它验证归档哈希: ``` # Linux sha256sum --check --ignore-missing checksums.txt # macOS shasum -a 256 --check --ignore-missing checksums.txt ``` 这可确认归档在传输过程中未损坏,但无法验证它是否由官方发布工作流生成。 ## 快速入门 ``` # DNS records —— 正向查找或反向 PTR trident dns example.com trident dns 8.8.8.8 # ASN info —— IP 地址或 ASN 编号(IPv4 和 IPv6) trident cymru 8.8.8.8 trident cymru AS15169 # 来自 certificate transparency 日志的子域名 trident crtsh example.com # Threat intelligence —— 域名、IP 或文件哈希 trident threatminer example.com trident threatminer d41d8cd98f00b204e9800998ecf8427e # PGP key search —— 按电子邮件、姓名或指纹 trident pgp alice@example.com trident pgp 0xDEADBEEFDEADBEEFDEADBEEFDEADBEEFDEADBEEF # 检查 Quad9 是否已将某个域名作为恶意域名拦截 trident quad9 malicious.example.com # 针对 apex domain 的聚合 DNS recon trident apex example.com # 通过实时 DNS 查询检测 CDN、电子邮件和 DNS 托管提供商 trident detect example.com # 根据已知 DNS record 值识别提供商(无网络调用) trident identify --cname abc.cloudfront.net --mx aspmx.l.google.com --txt "v=spf1 include:_spf.google.com ~all" ``` ## 功能特性 - **无 API 密钥** —— 所有当前服务均无需密钥;安装后即可立即运行 - **批量输入** —— 通过 stdin 管道传入目标列表或传递多个参数 - **三种输出格式** —— `table`(表格)、`json` 和 `text`(每行一个结果,便于管道处理) - **PAP 系统** —— Permissible Actions Protocol(允许操作协议,RED/AMBER/GREEN/WHITE)防止意外的主动交互 - **代理支持** —— HTTP、HTTPS 和 SOCKS5 代理;自动遵循 `HTTP_PROXY`/`HTTPS_PROXY` 环境变量 - **自动去敏** —— 在严格的 PAP 级别下,URL 和 IP 会被自动去敏(Defang) - **速率限制** —— 每个服务配备带抖动的令牌桶速率限制器,以避免可检测的请求模式 - **并发处理** —— 可配置的工作池,用于快速批量查询 - **跨平台** —— 单一二进制文件支持 Linux、macOS 和 Windows ## 服务 | 命令 | 描述 | PAP | 数据源 | |---------|-------------|-----|-------------| | `dns` | A, AAAA, MX, NS, TXT 记录;反向 PTR | GREEN | 直接 DNS 解析器 | | `detect` | 通过实时 DNS 查询(CNAME, MX, NS, TXT)检测 CDN、邮件、DNS 托管和验证提供商 | GREEN | 直接 DNS 解析器 | | `cymru` | IP 和 ASN 编号的 ASN 信息(IPv4 + IPv6) | AMBER | Team Cymru DNS | | `crtsh` | 通过证书透明度进行子域名枚举 | AMBER | [crt.sh](https://crt.sh) | | `threatminer` | 域名、IP 和文件哈希的威胁情报 | AMBER | [ThreatMiner](https://www.threatminer.org) | | `pgp` | 按电子邮件、姓名或指纹搜索 PGP 密钥 | AMBER | [keys.openpgp.org](https://keys.openpgp.org) | | `quad9` | 检测 Quad9 是否已将域名标记为恶意 | AMBER | [dns.quad9.net](https://www.quad9.net) | | `apex` | 聚合多种记录类型和子域名的 DNS 侦察;CDN/邮件/DNS/TXT 检测和 ASN 查询 | AMBER | [dns.quad9.net](https://www.quad9.net), Team Cymru DNS | | `identify` | 根据已知的 DNS 记录值(CNAME, MX, NS, TXT)识别 CDN、邮件、DNS 托管和验证提供商 | RED | 本地(无网络) | ## 输出格式 **表格(默认)** —— 格式化的 ASCII 表格,便于人类阅读: ``` trident dns example.com trident cymru AS15169 -o table ``` **JSON** —— 结构化输出,用于脚本编写和集成: ``` trident dns example.com -o json trident crtsh example.com -o json | jq '.subdomains | length' ``` **文本** —— 每行一个结果,便于管道传输: ``` trident crtsh example.com -o text | sort -u > subdomains.txt trident dns example.com -o text | grep "^A " ``` ## 批量输入 任何命令都接受多个目标作为参数或从 stdin 传入(每行一个): ``` # 多个参数 trident dns example.com google.com cloudflare.com # 通过 stdin 从文件读取 cat targets.txt | trident crtsh # 与其他工具结合使用 cat /etc/hosts | awk '{print $1}' | trident cymru # 控制大列表的并发 cat ips.txt | trident cymru --concurrency=20 ``` ## PAP 系统 trident 实现了 [Permissible Actions Protocol (PAP)](https://www.misp-project.org/taxonomies.html#_pap) 以防止与目标发生意外的主动交互: | 级别 | 含义 | 允许的服务 | |-------|---------|-------------------| | `red` | 仅离线/本地 —— 不可检测 | `identify` | | `amber` | 受限的第三方 API —— 无直接接触目标 | `identify` + Cymru, crt.sh, ThreatMiner, PGP, Quad9, apex | | `green` | 允许直接与目标交互 | 所有 AMBER 级别 + DNS, `detect` | | `white` | 无限制 **(默认)** | 所有 | 设置 `--pap-limit` 以阻止高于该级别的服务: ``` # 仅使用 3rd-party API(不对目标进行直接 DNS 查询) trident --pap-limit=amber crtsh example.com # 这将报错 —— AMBER 超过 RED 限制 trident --pap-limit=red cymru 8.8.8.8 ``` 在 AMBER 及更低级别下,输出中的 URL 和 IP 会自动去敏(例如 `hxxp://`),除非 传递了 `--no-defang`。 ## 配置 配置文件在首次运行时自动创建: | 平台 | 默认路径 | |----------|-------------| | Linux | `$XDG_CONFIG_HOME/trident/config.yaml`(通常为 `~/.config/trident/config.yaml`) | | macOS | `~/Library/Application Support/trident/config.yaml` | | Windows | `%AppData%\trident\config.yaml` | 使用 `trident config set` 在不打开文件的情况下修改值,或使用 `trident config edit` 直接编辑。配置文件支持所有全局参数以及 `alias` 块和 `detect_patterns` 部分: ``` output: json pap_limit: amber concurrency: 20 proxy: socks5://127.0.0.1:9050 detect_patterns: url: https://example.com/custom-patterns.yaml # optional: override download URL file: /path/to/patterns.yaml # optional: use this file instead of defaults alias: asn: cymru ``` 环境变量使用 `TRIDENT_` 前缀覆盖配置文件值: | 变量 | 对应参数 / 键 | |----------|--------------------------| | `TRIDENT_OUTPUT` | `--output` | | `TRIDENT_PAP_LIMIT` | `--pap-limit` | | `TRIDENT_PROXY` | `--proxy` | | `TRIDENT_USER_AGENT` | `--user-agent` | | `TRIDENT_CONCURRENCY` | `--concurrency` | | `TRIDENT_VERBOSE` | `--verbose` | | `TRIDENT_DEFANG` | `--defang` | | `TRIDENT_NO_DEFANG` | `--no-defang` | | `TRIDENT_DETECT_PATTERNS_URL` | `detect_patterns.url` | | `TRIDENT_DETECT_PATTERNS_FILE` | `--patterns-file` / `detect_patterns.file` | 当未设置 `--proxy` / `TRIDENT_PROXY` 时,trident 会自动遵循标准的 `HTTP_PROXY`、 `HTTPS_PROXY` 和 `NO_PROXY` 环境变量。 ## 全局参数 | 参数 | 默认值 | 描述 | |------|---------|-------------| | `--config` | 平台配置目录 | 配置文件路径 | | `--verbose`, `-v` | `false` | 启用调试日志 | | `--output`, `-o` | `table` | 输出格式:`table`, `json`, `text` | | `--concurrency`, `-c` | `10` | 批量输入的工作池大小 | | `--proxy` | — | 代理 URL (`http://`, `https://`, `socks5://`) | | `--user-agent` | `trident/` | HTTP User-Agent 标头 | | `--pap-limit` | `white` | PAP 限制:`red`, `amber`, `green`, `white` | | `--defang` | `false` | 强制输出去敏 | | `--no-defang` | `false` | 禁用输出去敏 | | `--patterns-file` | — | 用于 `detect`、`apex` 和 `identify` 的自定义检测模式文件 | 使用 `trident config show` 查看有效配置。 ## 命令参考 ### `dns` —— DNS 查询 解析域名的 A、AAAA、MX、NS 和 TXT 记录,或执行 IP 地址的反向 PTR 查询。直接查询配置的 DNS 解析器(PAP:GREEN)。 ``` trident dns example.com trident dns 8.8.8.8 trident dns 2001:4860:4860::8888 ``` ### `cymru` —— ASN 查询 通过 Team Cymru DNS 服务查询 IP 地址或 ASN 编号的 ASN 信息。同时支持 IPv4 和 IPv6(PAP:AMBER)。 ``` trident cymru 8.8.8.8 trident cymru AS15169 trident cymru 2001:4860:4860::8888 ``` ### `crtsh` —— 证书透明度 搜索 [crt.sh](https://crt.sh) 证书透明度日志以查找域名的子域名 (PAP:AMBER)。 ``` trident crtsh example.com ``` ### `threatminer` —— 威胁情报 查询 [ThreatMiner](https://www.threatminer.org) API 获取上下文威胁情报。 自动检测输入是域名、IP 地址还是文件哈希。速率限制为每秒 1 个请求并带抖动,以避免触发 ThreatMiner 的速率限制(PAP:AMBER)。 ``` trident threatminer example.com trident threatminer 198.51.100.1 trident threatminer d41d8cd98f00b204e9800998ecf8427e ``` ### `pgp` —— PGP 密钥搜索 使用 HKP 协议在 [keys.openpgp.org](https://keys.openpgp.org) 中按电子邮件地址、姓名或密钥指纹/ID 搜索 PGP 密钥(PAP:AMBER)。指纹和密钥 ID 必须以 `0x` 为前缀。 ``` trident pgp alice@example.com trident pgp "Alice Smith" trident pgp 0xDEADBEEFDEADBEEFDEADBEEFDEADBEEFDEADBEEF ``` ### `quad9` —— Quad9 威胁情报检查 使用来自 19+ 安全合作伙伴的威胁情报,检测 [Quad9](https://www.quad9.net) 是否已将域名标记为恶意(PAP:AMBER)。对于已知的恶意域名,Quad9 返回带有空授权部分的 NXDOMAIN,提供被动判定且不向目标域名透露查询信息。 ``` trident quad9 malicious.example.com trident quad9 example.com malicious.example.com cat domains.txt | trident quad9 ``` ### `apex` —— 聚合 DNS 侦察 通过 [Quad9](https://www.quad9.net) DNS-over-HTTPS 解析器对顶级域名执行并行 DNS 侦察(PAP:AMBER)。将查询分散到顶级域名和大量众所周知的派生主机名 —— `www`、`autodiscover`、`mail`、`_dmarc`、`_domainkey`、`_mta-sts`、`_smtp._tls`、DKIM 选择器(`google._domainkey`、`selector1/2._domainkey`)、BIMI(`default._bimi`),以及 SIP 和 XMPP 的 SRV 前缀。的记录类型包括 A、AAAA、CAA、CNAME、DNSKEY、HTTPS、MX、NS、SOA、SSHFP、SRV 和 TXT。 收集记录后,`apex` 运行所有四个提供商检测器: - **CDN** —— 来自 CNAME 目标(顶级链、www 和 email-security 子域名) - **邮件提供商** —— 来自 MX 记录 - **DNS 托管** —— 来自 NS 记录 - **邮件提供商和验证令牌** —— 来自所有已查询主机名的 TXT 记录 最后,它为 A/AAAA 记录中发现的每个唯一 IP 执行 **ASN 查询**(通过 Team Cymru)。 ``` trident apex example.com trident apex example.com example.org cat domains.txt | trident apex trident apex --output json example.com ``` ### `detect` —— 提供商检测 通过查询 CNAME(顶级和 www)、MX、NS 和 TXT 记录并将其与已知提供商模式匹配,检测一个或多个域名的 CDN、邮件、DNS 托管和域名验证提供商(PAP:GREEN)。与 `identify` 不同,此命令进行实时 DNS 查询以发现记录。 ``` trident detect example.com trident detect example.com google.com cat domains.txt | trident detect # 为此调用使用自定义 patterns 文件 trident detect --patterns-file /path/to/patterns.yaml example.com ``` ### `identify` —— 离线提供商识别 将 CNAME、MX、NS 和 TXT 记录值与已知提供商模式匹配,以识别 CDN、邮件、DNS 托管和域名验证提供商。与 `detect` 不同,不进行 DNS 查询 —— 这完全基于您已有的记录值进行操作(PAP:RED)。 ``` trident identify --cname abc.cloudfront.net trident identify --domain example.com --ns ns1.cloudflare.com trident identify --domain example.com --cname abc.cloudfront.net --mx aspmx.l.google.com --ns ns1.cloudflare.com trident identify --txt "v=spf1 include:_spf.google.com ~all" --txt "google-site-verification=abc123" # 为此调用使用自定义 patterns 文件 trident identify --patterns-file /path/to/patterns.yaml --cname abc.cloudfront.net ``` ### `download detect` —— 更新提供商模式 从 URL 下载最新的提供商检测模式并保存在本地。下载的文件存储在配置目录中名为 `detect-downloaded.yaml`,并在下次运行时自动被 `detect`、`apex` 和 `identify` 选用。同一目录中用户维护的 `detect.yaml` 优先于下载的文件;当两个文件都不存在时,内置的嵌入模式作为最终后备。有关完整查找顺序,请参阅 [配置](#configuration) 部分。 ``` # 从默认 URL(trident GitHub repository)下载 trident download detect # 从自定义 URL 下载 trident download detect --url https://example.com/patterns.yaml # 保存到自定义目标位置,而不是默认 config dir trident download detect --dest /path/to/my-patterns.yaml # 配置持久化自定义 URL trident config set detect_patterns.url https://example.com/patterns.yaml trident download detect ``` ### `services` —— 列出所有服务 列出每个已实现的服务及其命令组、最低 PAP 级别(MIN PAP)和最高 PAP 级别(MAX PAP)。 对于单个服务,两个 PAP 列始终相等 —— 服务要么运行,要么被 `--pap-limit` 阻止,不存在部分行为。 对于聚合命令(如 `apex`),这两个值可能不同:MIN PAP 是产生任何有用输出所需的最低 PAP 级别;MAX PAP 是任何子服务所需的最高级别。当 `--pap-limit` 介于两者之间时,聚合命令会运行但跳过级别超过限制的子服务,返回在该 PAP 级别下能收集到的任何内容。 ``` trident services trident services -o json trident services -o text ``` ### `config` —— 配置管理 无需手动打开文件即可读取和写入配置文件值。 | 子命令 | 描述 | |------------|-------------| | `config path` | 打印配置文件路径 | | `config show` | 显示所有有效配置设置 | | `config get ` | 打印单个键的有效值 | | `config set ` | 将键值对写入配置文件 | | `config edit` | 在 `$EDITOR` 中打开配置文件 | ``` # 打印活动 config file 的路径 trident config path # 显示所有有效设置(合并默认值 + env vars + file) trident config show trident config show -o json # 读取单个设置 trident config get pap_limit # 持久化一个设置(接受连字符和下划线) trident config set output json trident config set pap-limit amber # 在 $EDITOR 中打开 config file(回退到 vi) trident config edit ``` **限制:** - `config show` 和 `config get` 报告的是*有效*值 —— 即合并内置默认值、`TRIDENT_*` 环境变量和配置文件后的结果。它们不显示文件中实际写入的内容。 - `config set` 写入文件但在**下一次调用**时生效;当前进程已在启动时加载了配置。 - `aliases` 部分不由 `config set` 管理 —— 请改用 `alias` 子命令。 - 仅接受已知的配置键(`output`、`pap_limit`、`proxy`、`user_agent`、`concurrency`、`verbose`、`defang`、`no_defang`、`detect_patterns.url`、`detect_patterns.file`)。 ### `alias` —— 命令别名 定义可扩展为更长命令字符串的短名称。别名存储在配置文件中,并出现在 `trident --help` 的 *Aliases:* 下。 ``` # 创建或更新 alias trident alias set asn cymru # 使用 alias —— 额外参数附加在扩展之后 trident asn 8.8.8.8 # 列出所有 alias trident alias list trident alias list -o json # 删除 alias trident alias delete asn ``` **限制:** - 别名仅在其作为**第一个位置参数**出现时才会扩展。运行 `trident --verbose myalias` **不会**触发扩展,因为 `--verbose` 位于别名之前。 - 扩展按空白字符拆分存储的字符串 —— 别名扩展中不能嵌入包含空格的参数值。 - 无 Shell 特性 —— 扩展字符串中的环境变量替换、管道、通配符和引号均不会被解释。 - 别名不会递归扩展;别名扩展不能引用另一个别名。 - 别名名不能遮蔽内置命令(`dns`、`cymru`、`crtsh`、`threatminer`、`pgp`、`quad9`、`detect`、`identify`、`apex`、`services`、`config`、`alias`、`download`、`version`、`completion`)。 - 别名名不能以 `-` 开头或包含空白字符。 - 更改在下次调用时生效。 ## 开发 ### 要求 - Go 1.26+ (`go version`) - [golangci-lint](https://golangci-lint.run/) v2 (`golangci-lint version`) ### Nix 开发 Shell 如果您使用 [Nix](https://nixos.org/),`nix develop` 提供 Go、golangci-lint 和 goreleaser: ``` nix develop ``` ### justfile [justfile](https://github.com/casey/just) 为常见任务提供了便捷的目标: ``` just build # Build all packages just test # Run all tests with coverage just test-pkg ./internal/services/dns/... # Test a specific package just lint # Run golangci-lint just tidy # Tidy and verify modules just coverage # Check service coverage meets 80% threshold just vuln # Run govulncheck just ci # Run all CI checks locally just goreleaser-check # Validate .goreleaser.yaml config just upgrade-deps # Upgrade direct dependencies and run tests just flake-build # Build the Nix package locally just flake-check # Run Nix flake check just flake-update # Update Nix flake inputs just release # Tag next version with svu and push ``` ### 构建与测试 ``` # 构建 go build ./... # 运行所有测试并生成覆盖率 go test ./... -coverprofile=coverage.out go tool cover -func=coverage.out # 运行特定服务的测试 go test ./internal/services/dns/... -v # Lint(严格模式) golangci-lint run ``` ### 项目结构 ``` cmd/trident/ # Entry point — delegates to cli.Execute() internal/ cli/ # Cobra command tree, global flags, output wiring config/ # Viper config loading and flag registration httpclient/ # req.Client factory (proxy, UA rotation, debug tracing) input/ # Line reader from io.Reader for stdin path pap/ # PAP level constants and enforcement doh/ # DNS-over-HTTPS client (Quad9 RFC 8484, shared by apex + quad9) ratelimit/ # Token-bucket rate limiter with ±20% jitter resolver/ # net.Resolver factory with SOCKS5 DNS-leak prevention worker/ # Bounded goroutine pool for bulk input services/ # One package per OSINT service dns/ # DNS record lookups (net package, PAP: GREEN) cymru/ # ASN lookups via Team Cymru DNS (PAP: AMBER) crtsh/ # Certificate transparency via crt.sh (PAP: AMBER) threatminer/ # Threat intel via ThreatMiner API (PAP: AMBER) pgp/ # PGP key search via keys.openpgp.org (PAP: AMBER) quad9/ # Quad9 threat-intelligence blocked check via DoH (PAP: AMBER) detect/ # Active provider detection via DNS lookups (PAP: GREEN) apex/ # Aggregate DNS recon via Quad9 DoH (PAP: AMBER) identify/ # Offline provider detection from known record values (PAP: RED) output/ # Text (tablewriter), JSON, text formatters + defang testutil/ # Shared test helpers (mock resolver, nop logger) ``` ## 负责任地使用 trident 专为在**经授权的环境中**使用而设计 —— 内部安全评估、您获准进行的红队演练,以及您拥有或被明确授权调查的基础设施上的 OSINT 研究。 **严禁恶意使用。** 请勿在未经授权的情况下使用 trident 查询系统或服务。滥用可能违反计算机欺诈法律和被查询 API 的服务条款。 默认情况下,trident 使用 `trident/` HTTP User-Agent 诚实地标识自己,以便服务器操作员能够识别并控制其流量。 ## 贡献 欢迎贡献!有关开发设置、编码标准和 Pull Request 流程,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## 安全 如需报告漏洞,请参阅 [SECURITY.md](SECURITY.md)。 ## 行为准则 本项目遵循 Contributor Covenant v3.0。请参阅 [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)。 ## 许可证 [GPL-3.0](LICENSE.md)
标签:ASN查询, CDN识别, CDN识别, DNS查询, DNS查询, ESC4, EVTX分析, GitHub, Golang, Go语言, Kali工具, OSINT, PGP搜索, UDP扫描, 二进制文件, 加密文件系统, 占用监测, 威胁情报, 子域名枚举, 安全编程, 实时处理, 开发者工具, 数据展示, 无API密钥, 日志审计, 程序破解, 系统安全, 红队, 证书透明度, 资产管理