mcpField
D
DNStwist MCP Server

DNStwist MCP Server

本地服务
github.com/BurtTheCoder安全502 周前更新

关于 DNStwist MCP Server

DNStwist MCP Server 让 AI Agent 使用 dnstwist 查找与目标域名相似的已注册域名,并收集 DNS、邮件、WHOIS、服务横幅和网页相似度信号,支持本地或 Docker 运行。

主要功能

  1. 01生成相似域名变体
  2. 02检查 DNS 与邮件拦截信号
  3. 03获取 WHOIS 和服务横幅
  4. 04比较网页相似度
  5. 05通过本地程序或 Docker 运行 dnstwist
  6. 06验证输入并限制扫描时长

适用场景

  1. 01查找已注册的仿冒拼写域名
  2. 02检查相似域名是否可能拦截邮件
  3. 03调查疑似克隆的钓鱼页面

MCP 相关

它通过 stdio 向 MCP 客户端提供 `fuzz_domain` 工具,在本地或 Docker 中运行 dnstwist 并返回结果。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dnstwist": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
启动命令npx -y @smithery/cli

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@smithery/cli

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP dnstwist:面向 AI Agent 的域名抢注检测工具。通过 Model Context Protocol 使用 dnstwist,查找相似域名、同形异义字符域名和钓鱼域名。

npm 版本 CI 许可证:MIT Node 20.3 或更高版本 MCP 注册表 Smithery

快速入门 · 工具 · 安全性 · 故障排查 · 文档

mcp-dnstwist 是一个 MCP 服务,可让 AI Agent 运行 dnstwist,查找仿冒您域名的域名:拼写错误、同形异义字符、位翻转、顶级域名替换等。对于每个已注册的相似域名,它可以报告 DNS 记录、其邮件服务器是否可能截获您的邮件、WHOIS 注册详情,以及其网页与您的网页有多相似。

说明

这是一个独立项目,与 dnstwist 无关。请仅扫描您拥有或获准评估的域名。

重要

1.0.4 及更早版本存在命令注入漏洞(GHSA-p4jr-h3rj-2rw4),现已弃用。请使用 1.0.5 或更高版本;npx -y @burtthecoder/mcp-dnstwist 始终会获取最新版本。

亮点

  • 发现相似域名。 使用 dnstwist 的所有排列算法,也可以只使用您选择的算法。
  • 威胁信号。 DNS 记录、可能截获邮件的开放邮件中继(mxcheck)、WHOIS 创建日期和注册商、HTTP 和 SMTP 横幅,以及网页相似度(ssdeep 或 TLSH),用于发现克隆的钓鱼网站。
  • 按需运行。 使用本地安装的 dnstwist、官方 dnstwist Docker 镜像,或独立的 mcp-dnstwist 镜像。
  • 安全强化。 不使用 shell、严格验证输入,并通过时间限制终止长时间扫描并清理进程。
  • 经过测试。 使用虚假的 docker 和 dnstwist 可执行文件进行端到端测试,并在 CI 中针对 Node 20、22 和 24 运行。

工作原理

flowchart LR
    A["AI agent<br/>(Claude, Codex, Gemini, VS Code)"] -->|"MCP over stdio"| S["mcp-dnstwist"]
    S -->|"validated argv, no shell,<br/>time limit"| D["dnstwist<br/>(local or Docker)"]
    D -->|"DNS, WHOIS, HTTP, SMTP"| I["Lookalike domains"]
    D -->|"JSON"| S
    S -->|"results"| A

快速入门

要求: Node.js 20.3 或更高版本,以及 dnstwist(pipx install "dnstwist[full]")或 Docker。无需 API 密钥。

# Claude Code
claude mcp add --transport stdio dnstwist -- npx -y @burtthecoder/mcp-dnstwist

# Codex CLI
codex mcp add dnstwist -- npx -y @burtthecoder/mcp-dnstwist

# Gemini CLI
gemini mcp add dnstwist npx -y @burtthecoder/mcp-dnstwist

有关 Claude Desktop、VS Code、Docker、Smithery 和从源代码运行的说明,请参阅连接客户端。

然后向您的 Agent 提问:“example.com 有哪些相似域名已注册?其中是否有域名可能截获邮件?” 更多提示词见示例工作流。

工具

一个工具:fuzz_domain。完整参数和真实示例输出请参阅工具参考。

参数默认值作用
domain(必填)要仿冒的域名,例如 example.com
registered_onlytrue仅返回已注册的相似域名
fuzzersall限定使用的算法,例如 ["homoglyph", "bitsquatting"]
mxchecktrue标记可接受任意地址邮件的邮件服务器
bannerstrue获取 HTTP 和 SMTP banner
whoisfalse注册日期和注册商
lshoff网页与原始网页的相似度:ssdeep 或 tlsh
all_recordsfalse返回所有 DNS 记录,而不只是每种类型的第一条
nameservers1.1.1.1最多 10 个 IPv4 地址或 https://<host>/dns-query URL
threads50并行查询数,范围为 1 到 100
formatjsonjson、csv 或 list
设置
变量默认值说明
DNSTWIST_RUNNERautolocal(PATH 上的 dnstwist)、docker(elceef/dnstwist 镜像)或 auto(若本地可用则使用本地版本)
DNSTWIST_TIMEOUT_SECONDS600扫描最长运行时间。超时、取消或关闭时,扫描将停止并清理

安全性

工具参数来自 AI 模型,而模型读取的内容可能会对其产生引导,因此服务会将这些参数视为恶意输入:

  • 不使用 shell。 dnstwist 通过 execFile 和参数数组启动;如果出现基于 shell 的 API,测试将使构建失败。
  • 严格验证。 域名必须是主机名,名称服务器必须是 IPv4 或 DoH URL,数字和名称必须来自固定集合。任何值都不能以 - 开头。
  • 限制运行时长。 设置时间限制,并在超时、取消和关闭时清理进程与容器。

Docker 运行器需要访问 Docker 守护进程(在大多数系统上相当于 root 权限)。本地运行器或独立镜像可避免此问题。详情请参阅安全模型。请私下报告漏洞;详见 SECURITY.md。

故障排除

  • “Neither dnstwist nor Docker is available”: 安装 dnstwist(pipx install "dnstwist[full]")或启动 Docker。桌面客户端可能无法访问 shell 的 PATH。
  • Apple Silicon 上运行缓慢: dnstwist Docker 镜像仅支持 amd64。请在本地安装 dnstwist;系统会自动使用它。
  • “did not finish within N seconds”: 添加一个 IPv4 名称服务器(DNS-over-HTTPS 速度较慢),关闭 whois、lsh 或 banners,或提高 DNSTWIST_TIMEOUT_SECONDS。

更多信息请参阅故障排除指南。

开发

git clone https://github.com/w0h1v/mcp-dnstwist && cd mcp-dnstwist
npm ci
npm test    # fake docker and dnstwist executables: no Docker or network needed

请参阅 CONTRIBUTING.md 和变更日志。

许可证

MIT。请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。