1. 项目定位与用途
本项目是macOS平台专属的本地dig命令行包装器,底层完全依赖系统自带的/usr/bin/dig执行真实DNS查询,核心能力是在终端输出末尾追加本地伪造的TXT记录,所有修改仅对当前命令输出生效,不会影响真实DNS解析环境,主要用于本地DNS测试与自动化渗透测试辅助场景,无需额外部署任何DNS服务。
dig是仅支持macOS的本地dig命令行包装器,无需修改真实DNS配置即可为指定域名钉死自定义TXT记录,支持本地DNS测试、自动化渗透测试辅助等场景,包含项目介绍、安装方式、使用说明与实现特点。
dig是macOS平台专属的本地dig命令行包装器,无需修改真实DNS配置即可为指定域名钉死自定义TXT记录,支持本地DNS测试与自动化渗透测试辅助场景。
本项目是macOS平台专属的本地dig命令行包装器,底层完全依赖系统自带的/usr/bin/dig执行真实DNS查询,核心能力是在终端输出末尾追加本地伪造的TXT记录,所有修改仅对当前命令输出生效,不会影响真实DNS解析环境,主要用于本地DNS测试与自动化渗透测试辅助场景,无需额外部署任何DNS服务。
解决了本地测试、渗透测试场景下需要临时为特定域名返回指定TXT记录,又不想修改真实DNS配置、编写zone文件、触碰云厂商DNS服务的痛点,避免伪造DNS响应时污染网络解析环境,实现纯本地生效的域名响应伪造,降低测试门槛与配置成本。
适用于三类核心场景:一是本地开发环境模拟特定域名的TXT验证记录,无需修改真实DNS配置即可完成域名验证逻辑调试;二是辅助DeepSeek/GLM等AI工具执行自动化渗透测试,通过伪造域名响应信息引导测试流程;三是本地DNS解析相关功能的调试验证,快速模拟特定TXT记录返回结果。
仅支持macOS系统,需预装系统自带的/usr/bin/dig和/usr/bin/python3,无第三方pip依赖。安装步骤为克隆仓库后执行./scripts/install.sh,安装脚本会自动校验依赖、备份原有~/.local/bin/dig文件,将包装器部署到~/.local/bin目录,需将export PATH="$HOME/.local/bin:$PATH"加入环境变量并确保该路径排在系统dig之前,已打开的shell可执行rehash刷新命令缓存。恢复原有dig可执行./scripts/restore.sh。
支持两种方式设置钉死TXT记录:一是通过自定义参数,执行dig +txt="<value>" TXT <域名>即可为指定域名设置TXT内容,+ttl=<秒>可自定义展示TTL(默认600秒),含空格的值需加引号包裹;二是位置参数方式,执行dig <域名> <value>即可设置。执行dig +txt= TXT <域名>可删除对应域名的钉死记录。仅对TXT/ANY类型查询生效,子域名查询会匹配父域设置的钉死记录,+short模式下仅返回带引号的TXT值。
工具核心逻辑由src/dig_wrapper.py实现,自定义的+txt、+cookie参数会在传递给系统dig前被剥离,不会出现在系统dig的参数列表中。本地伪造的TXT记录仅存在于当前命令的输出里,不会改写系统dig的ANSWER SECTION,也不会修改真实DNS网络路径。查询状态与钉死的TXT内容存储在~/.cache/dig-zcode-wrapper本地缓存目录,不会对外暴露。限制为仅macOS平台有效,且需保证~/.local/bin在PATH中排在系统dig之前。
不会。工具仅在当前命令的终端输出末尾追加本地伪造的TXT记录,不修改任何真实DNS配置、zone文件,也不会触碰云厂商DNS服务,所有修改仅对当前命令输出生效,不会影响网络解析环境。
仓库中明确说明仅支持macOS系统,依赖系统自带的/usr/bin/dig和/usr/bin/python3,无第三方pip依赖,其他系统无法正常使用。
需确保~/.local/bin路径在PATH环境变量中排在系统/usr/bin之前,已打开的shell可执行rehash刷新命令缓存;若仍不生效,可直接调用/usr/bin/dig使用系统原生dig命令。
不会。钉死的TXT记录仅存储在本地缓存目录,仅对当前终端的dig查询命令生效,不会污染网络解析环境,执行dig +txt= TXT <域名>即可删除对应域名的钉死记录。