news 2026/5/10 12:26:38

零依赖域名情报工具:AI Agent的OSINT利器与实战应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
零依赖域名情报工具:AI Agent的OSINT利器与实战应用

1. 项目概述:一个纯粹、无依赖的域名情报收集工具

在AI Agent和LLM应用开发中,我们经常需要让智能体去“理解”一个在线实体,比如一个网站。无论是进行竞争对手分析、安全审计,还是简单的域名可用性检查,第一步往往都是收集关于这个域名的公开情报。市面上这类工具很多,但它们通常要么需要注册一堆API密钥(增加了使用成本和复杂度),要么依赖一大堆第三方库(导致部署困难,尤其是在受限环境中)。今天要聊的这个项目——domain-intel,就完美地解决了这两个痛点。

domain-intel是一个专为AI Agent设计的技能(Skill),它的核心卖点就是“纯粹”。它只用Python标准库,不依赖任何外部包,也不需要任何API密钥。这意味着你可以把它轻松地集成到任何Python环境中,无论是你的本地开发机、一个Docker容器,还是一个资源受限的边缘设备,它都能开箱即用。它通过被动OSINT(开源情报)技术,帮你完成子域名发现、SSL证书检查、WHOIS查询、DNS记录获取以及域名可用性检查等一系列任务。对于开发者、安全研究员、产品经理,甚至是那些想批量“扫”一下心仪域名是否可注册的朋友来说,这都是一把轻巧而锋利的瑞士军刀。

2. 核心功能与设计哲学解析

2.1 为什么坚持“零依赖”和“零API密钥”?

这可能是这个工具最值得称道的设计决策。在当今的软件开发中,引入依赖几乎是常态,但依赖也带来了脆弱性。版本冲突、库停止维护、网络问题导致安装失败……这些问题在集成到AI Agent这种需要稳定运行的环境中时会被放大。domain-intel选择回归Python标准库,利用socketssljsonurllib等内置模块实现所有功能,从根本上消除了环境依赖的烦恼。你只需要一个能运行Python3的环境,它就一定能工作。

“零API密钥”则是另一个层面的优雅。很多商业化的域名或SSL情报服务固然强大,但免费额度有限,注册流程繁琐,并且你的查询数据会经过第三方服务器。domain-intel的所有数据都通过公开协议直接获取:通过TCP 43端口进行WHOIS查询,通过TLS握手获取SSL证书,通过系统DNS解析器获取记录,通过公开的证书透明度(CT)日志网站查询子域名。这种方式不仅免费、无限制,而且在隐私方面也更令人安心——你的查询目标不会泄露给商业API提供商。

2.2 六大核心命令深度解读

工具提供了六个核心命令,覆盖了域名情报的常见需求。下面我们来逐一拆解其背后的原理和能获取的信息维度。

subdomains:基于证书透明度的子域名发现这个功能的核心数据源是crt.sh,一个公开的证书透明度日志搜索引擎。当网站申请SSL证书时,证书颁发机构(CA)会将证书信息记录到公开的CT日志中,证书的主题备用名称(SAN)字段里就包含了该证书有效的所有域名和子域名。domain-intel会模拟浏览器访问crt.sh,查询指定主域名的所有证书记录,然后从返回的JSON数据中提取出所有唯一的子域名。这种方法是被动的、非侵入式的,不会向目标发送任何探测包,非常适合初步的信息收集。但要注意,它只能发现那些使用了SSL证书的子域名,如果某个子域名仅使用HTTP,或者使用了自签名证书且未录入公共日志,则无法通过此方法发现。

ssl:SSL/TLS证书深度检查这个命令会与目标域名的443端口(或其他指定端口)建立TLS连接,并获取其服务器证书。解析证书可以得到丰富的信息:

  • 有效期:证书的起止日期,直接判断是否过期或即将过期。
  • 颁发者:是哪家CA签发的证书,例如Let‘s Encrypt、DigiCert等。
  • 签名算法:如SHA256-RSA,反映了证书的加密强度。
  • 主题备用名称(SAN):除了主域名,证书还对哪些其他域名有效,这本身也能发现子域名或关联域名。
  • 证书链:可以查看中间证书,帮助诊断某些浏览器警告问题。 这些信息对于安全审计至关重要,一个过期的证书或弱签名算法的证书会直接导致安全风险。

whois:域名注册信息查询WHOIS是一个用来查询域名注册信息的协议。domain-intel通过TCP 43端口直接向对应顶级域(TLD)的WHOIS服务器发送查询请求。返回的信息通常包括:

  • 注册人(可能被隐私保护服务隐藏)
  • 注册商(如GoDaddy, Namecheap)
  • 注册日期、到期日期、最后更新日期
  • 域名服务器(Name Servers)这些信息在商业尽职调查、品牌保护或联系网站所有者时非常有用。工具声称支持100+个TLD,这意味着它内置或能智能判断不同后缀(如.com,.cn,.io,.app)对应的WHOIS服务器地址。

dns:全面的DNS记录解析利用系统的DNS解析器(通常通过操作系统的getaddrinfo等函数),获取域名相关的各种记录。包括:

  • A记录:IPv4地址,指向网站服务器。
  • AAAA记录:IPv6地址。
  • MX记录:邮件交换服务器,暴露了企业使用的邮件服务(如Google Workspace, Microsoft 365)。
  • NS记录:权威域名服务器,可能指向云服务商(如AWS Route 53, Cloudflare)。
  • TXT记录:文本记录,常用于存放SPF、DKIM等邮件安全配置,或域名验证信息。
  • CNAME记录:别名记录,可能将子域名指向CDN或SaaS服务(如www.example.comCNAME 到example.herokuapp.com)。 分析这些记录可以快速绘制出目标的基础设施图谱。

available:智能域名可用性检查这不是一个简单的“查询是否被注册”的功能。它综合了多种被动信号进行推断:

  1. DNS查询:如果域名能解析出IP(有A/AAAA记录),那肯定已被注册和使用。
  2. WHOIS查询:如果WHOIS返回有效的注册信息,域名已被注册。
  3. SSL证书检查:如果能建立TLS连接并获得证书,域名肯定已被用于HTTPS服务。 如果以上所有检查都失败(例如,DNS查询返回NXDOMAIN,WHOIS返回“未找到”,无法连接443端口),则工具会以高置信度推断该域名“可能可用”。这是一种非常巧妙的、无需访问域名注册商API的方法。

bulk:批量多域名分析这是效率工具。允许一次性传入多个域名,并行或顺序执行指定的检查(默认是所有检查)。输出是结构化的JSON,便于后续用脚本进行自动化处理或分析比较。例如,你可以一次性检查十个竞品域名的子域名和SSL配置,快速生成对比报告。

3. 实战部署与应用场景

3.1 安装与集成到OpenClaw AI Agent

根据项目说明,安装非常简单,本质上就是复制文件。对于OpenClaw框架,技能通常存放在一个特定的工作空间目录下。

# 假设你已经克隆了 domain-intel 仓库 git clone https://github.com/Cat-tj/domain-intel.git # 将其复制到 OpenClaw 的技能目录中 cp -r domain-intel/ ~/.openclaw/workspace/skills/domain-intel/

完成复制后,理论上你的OpenClaw Agent就具备了调用domain-intel技能的能力。具体的调用方式取决于OpenClaw框架如何定义和触发技能。通常,你可以在给Agent的指令中,通过自然语言描述任务,例如:“请帮我分析一下example.com这个域名的所有子域名和SSL证书情况。” Agent应该能理解并调用对应的domain_intel.py脚本。

注意SKILL_DIR是一个占位符,在实际的Agent运行环境中,框架应该会自动将其替换为技能的真实路径。如果你是在Agent环境外独立使用这个脚本,需要手动指定路径或进入脚本所在目录执行。

3.2 独立使用:作为命令行工具

即使你不使用OpenClaw,这个项目本身也是一个功能完整的命令行工具。你可以直接运行其中的Python脚本。

# 进入脚本所在目录 cd ~/.openclaw/workspace/skills/domain-intel/scripts # 执行子域名发现 python3 domain_intel.py subdomains github.com # 执行SSL检查,输出格式化JSON python3 domain_intel.py ssl github.com | python3 -m json.tool

独立使用时,其输出是结构化的JSON,非常适合集成到你自己的自动化流水线中。例如,你可以写一个Shell脚本,定期检查自己公司所有域名的SSL证书到期时间,并在到期前30天发送告警邮件。

3.3 五大典型应用场景实操

场景一:竞争对手基础设施测绘假设你的竞品是competitor.com。你想了解他们的技术栈和业务规模。

  1. 子域名发现python3 domain_intel.py subdomains competitor.com。你可能会发现api.competitor.com(说明有开放API)、staging.competitor.com(测试环境)、cdn.competitor.com(使用了CDN)、mail.competitor.com(自建或特定邮件服务)。
  2. DNS记录分析python3 domain_intel.py dns competitor.com。查看MX记录,如果是aspmx.l.google.com,说明他们用Google Workspace办公;NS记录如果是ns1.cloudflare.com,说明用了Cloudflare的DNS和可能的安全服务。
  3. SSL证书检查python3 domain_intel.py ssl competitor.com。看证书颁发者,如果是“Let‘s Encrypt”,可能技术团队比较注重成本或自动化;如果是“DigiCert”,可能企业级客户较多,需要更强的信任背书。检查有效期也能推测其运维自动化水平。

场景二:内部安全自查与合规作为公司安全员,你需要确保所有对外服务的SSL证书安全。

  1. 编写批量检查脚本:创建一个domains.txt文件,列出公司所有对外域名。
  2. 执行批量SSL检查python3 domain_intel.py bulk $(cat domains.txt) --checks ssl
  3. 解析结果并告警:写一个Python脚本解析输出的JSON,提取每个域名的not_after(到期时间)字段,计算剩余天数,如果少于阈值(如15天),则自动触发Jira工单或发送Slack消息给运维团队。

场景三:域名投资与品牌保护你想注册一个与你的品牌mybrand相关的域名,但.com已被注册,需要寻找其他可用后缀或变体。

  1. 批量可用性检查python3 domain_intel.py available mybrand.io mybrand.ai mybrand-app.com mybrandhq.com
  2. 分析结果:工具会返回每个域名的可用状态。对于显示“可能可用”的域名,建议立即通过正规注册商进行最终确认和抢注,因为被动检查存在微小的时间差和漏报可能。

场景四:渗透测试前期信息收集(白帽)在授权测试中,信息收集是关键第一步。

  1. 全面收集:对目标域名target.com运行bulk命令,一次性获取子域名、DNS、WHOIS、SSL信息。
  2. 分析攻击面:发现的每一个子域名都是一个潜在的入口点。过期的SSL证书可能允许实施中间人攻击。TXT记录中的信息可能泄露内部系统地址或第三方服务配置。
  3. 生成报告:结构化的JSON输出可以直接导入到像Maltego这样的可视化情报工具中,绘制关系图谱。

场景五:业务合作前的尽职调查在与一家新公司partner.com进行技术合作前,评估其技术成熟度。

  • WHOIS信息:查看域名注册年限,注册很久的域名通常更可信。查看注册商是否专业。
  • SSL配置:检查是否使用强加密套件,证书链是否完整。一个配置良好的HTTPS站点体现了技术团队的基本素养。
  • 邮件基础设施:通过MX记录判断其使用的是专业企业邮箱(如Google, Microsoft)还是简陋的虚拟主机邮箱,间接反映公司规模和技术投入。

4. 技术细节、注意事项与避坑指南

4.1 核心模块原理与代码片段浅析

虽然我们不需要看全部源码,但理解其关键实现有助于更自信地使用和排错。

WHOIS查询的实现: WHOIS协议本身很简单,但难点在于不同TLD的WHOIS服务器地址不同。一个健壮的实现需要一个TLD服务器映射表。domain-intel可能内置了这个表,或者使用了类似python-whois库的逻辑(但它是用纯Python重新实现的)。其核心代码逻辑类似:

import socket def whois_query(domain, server='whois.verisign-grs.com', port=43): with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.connect((server, port)) s.send((domain + '\r\n').encode()) response = b'' while True: chunk = s.recv(4096) if not chunk: break response += chunk return response.decode()

然后,它需要解析返回的文本,提取关键字段。不同注册商的返回格式各异,所以解析逻辑需要处理多种情况。

SSL证书获取: Python标准库ssl可以创建未经验证的上下文来获取证书,即使证书无效(如自签名、过期)也能拿到。

import ssl, socket def get_cert(hostname, port=443): context = ssl.create_default_context() context.check_hostname = False context.verify_mode = ssl.CERT_NONE with socket.create_connection((hostname, port)) as sock: with context.wrap_socket(sock, server_hostname=hostname) as ssock: cert = ssock.getpeercert() cert_bin = ssock.getpeercert(binary_form=True) # cert是字典格式,cert_bin是DER格式,可用于进一步解析 return cert, cert_bin

domain-intel会利用cryptography库?不,它坚持零依赖,所以很可能使用ssl模块的DER_cert_to_PEM_cert函数结合OpenSSL.crypto(如果pyOpenSSL也不算标准库,那它可能用了更底层的asn1crypto?等等,这也不是标准库。我怀疑它可能只解析了ssock.getpeercert()返回的字典,对于更详细的信息(如序列号、签名算法)则通过解析cert_bin的DER编码来实现,这需要自己写ASN.1解析逻辑,复杂度很高。更可能的情况是,它主要依赖getpeercert()返回的信息,对于更专业的字段,它做了取舍以保持零依赖)。这是一个值得注意的细节:它的SSL检查功能可能不如专业工具(如openssl s_client)详细,但对于过期时间、颁发者、SAN等常见信息是足够的。

4.2 使用中的常见问题与排查

1. 子域名发现(subdomains命令)没有结果或结果不全?

  • 原因A:目标域名或其子域名根本没有使用SSL/TLS证书(纯HTTP站点)。
    • 排查:尝试用ssl命令检查主域名,如果连主域名都获取不到证书,那子域名发现功能自然无效。
    • 解决:需要结合其他主动探测工具(如dnsrecon,amass)进行补充,但那些不属于本工具范畴。
  • 原因Bcrt.sh网站访问不稳定或限制了请求频率。
    • 排查:手动在浏览器打开https://crt.sh/?q=%.example.com看是否能正常显示结果。
    • 解决:工具可能没有处理网络超时或速率限制。如果是批量查询,建议在命令之间添加延时(如time.sleep(2))。

2. WHOIS查询(whois命令)返回“未找到”或超时?

  • 原因A:对于某些较新的或国家/地区特定的TLD(如.app,.io,.cn),工具内置的WHOIS服务器地址可能不正确或缺失。
    • 排查:尝试用其他知名在线WHOIS网站查询同一个域名,确认信息是否存在。
    • 解决:可以查阅IANA的WHOIS服务器列表,或者考虑为工具贡献代码,补充缺失的TLD服务器映射。
  • 原因B:WHOIS服务器实施了查询速率限制或基于IP的封锁。
    • 排查:短时间内查询大量不同域名后出现失败。
    • 解决:降低查询频率,为每个查询添加随机延时。

3. SSL检查(ssl命令)连接失败?

  • 原因A:目标服务器没有开启443端口,或者使用了非标准端口。
    • 排查:使用nc -zv example.com 443telnet example.com 443检查端口连通性。
    • 解决:本工具目前可能不支持指定端口(需查证源码)。如果目标服务在别的端口(如8443),则需要修改工具或使用其他方法。
  • 原因B:服务器SSL配置错误或使用了客户端不支持的极端老旧/新潮的加密套件。
    • 排查:尝试用不同版本的OpenSSL客户端或浏览器访问。
    • 解决:工具使用的Pythonssl模块有默认的协议和密码套件设置。如果目标服务器配置非常规,连接可能失败。这通常意味着目标服务器本身存在配置问题。

4. 域名可用性检查(available命令)不准确?

  • 重要提示:这是一个被动推断,不是权威查询。存在假阴性和假阳性。
  • 假阴性(已注册但显示可用):域名已被注册,但所有者没有设置任何DNS记录(域名“停放”状态),也没有配置WHOIS隐私保护(导致WHOIS返回未找到),同时没有启用任何Web服务。这种情况比较少见,但存在。
  • 假阳性(实际可用但显示不可用):DNS有缓存(特别是NXDOMAIN结果被ISP缓存),或者工具查询的WHOIS服务器临时不可用。
  • 最佳实践:将此工具的“可用”结果视为一个“高概率可用”的强信号,但最终决定注册前,务必通过正规域名注册商(如GoDaddy, Namecheap, Aliyun)的搜索功能进行最终确认。

5. 批量查询(bulk命令)速度慢?

  • 原因:所有查询都是串行执行的,且网络I/O(尤其是WHOIS和crt.sh查询)是主要耗时部分。
  • 优化建议:工具本身可能没有内置并发。对于大量域名检查,你可以自己写一个Python脚本,利用concurrent.futures.ThreadPoolExecutor并发调用domain_intel.py脚本的子进程,或者直接导入其函数进行多线程调用,可以大幅提升效率。

4.3 安全与合规使用提醒

  1. 遵守法律法规与道德规范:仅将本工具用于你拥有所有权、已获得明确书面授权的资产,或用于公开信息的合法研究。未经授权对他人网络资产进行扫描可能违反《计算机欺诈和滥用法案》(CFAA)等法律,并构成违法行为。
  2. 尊重目标系统:即使是被动信息收集,也应避免发起过高频率的请求,以免对crt.sh或公共WHOIS服务器造成负载压力,这可能导致你的IP被暂时封锁。
  3. 数据解读的局限性:工具提供的是原始数据。WHOIS信息可能因隐私保护服务而隐藏;子域名列表可能不完整;SSL证书信息反映的是你连接时那一瞬间的配置。在做出重要业务或安全决策前,应通过多种渠道交叉验证信息。
  4. 隐私考虑:你的查询行为本身(源IP、查询时间、目标域名)会暴露给crt.sh和各个WHOIS服务器。在高度敏感的场景下,请通过合适的网络渠道进行操作。

5. 扩展思路与进阶玩法

domain-intel作为一个基础组件,其价值在于稳定、无依赖和结构化输出。这为它融入更复杂的自动化工作流打开了大门。

思路一:构建自动化监控面板结合Flask或FastAPI框架,你可以快速搭建一个内部安全仪表盘。后端定时使用domain-intelbulk命令检查公司所有关键域名的SSL证书到期时间和DNS记录变更,将结果存入数据库(如SQLite)。前端展示一个仪表板,用绿色、黄色、红色卡片分别表示证书状态健康、即将过期(<30天)、已过期。任何异常变更(如MX记录突然改变,可能预示邮件被劫持)可以高亮告警。

思路二:集成到CI/CD流水线在公司的CI/CD流程中,每当有新的服务上线或域名配置变更时,可以自动触发一个检查Job。这个Job调用domain-intel检查新域名的SSL配置是否合规(如是否使用TLS 1.2以上,证书是否来自受信CA),DNS记录是否指向正确的预发布或生产环境IP。如果检查不通过,则自动失败部署流程,防止配置错误流入生产环境。

思路三:为AI Agent赋予“网络侦查”能力这正是它作为OpenClaw Skill的初衷。你可以设计这样的Agent工作流:

  1. 用户请求:“帮我调研一下‘某某科技公司’的线上业务规模。”
  2. Agent思考:首先需要找到该公司的主域名(可能通过内置搜索技能)。
  3. 调用domain-intel:获得子域名、技术栈(通过DNS/SSL推断)、注册信息。
  4. 分析与报告:Agent综合这些信息,生成一份简要报告:“该公司主要使用.com主站,并拥有api.,admin.等子站,邮件服务由Google托管,Web服务疑似部署在AWS上,SSL证书由Let‘s Encrypt签发,将于45天后到期...”

思路四:数据关联与图谱分析domain-intel的输出(JSON格式)与其他OSINT工具(如查询IP归属地、端口扫描结果)的数据相结合,使用networkx等库构建知识图谱。你会发现,不同的竞品公司可能使用了相同的第三方服务(如相同的CDN CNAME、相同的邮箱提供商),或者某个投资机构旗下的多个项目域名都在同一天注册。这种关联分析能揭示出表面信息之下的深层联系。

这个工具的精妙之处在于其“克制”的设计——不做大而全,而是把“零依赖”、“被动收集”、“结构化输出”这几个点做到极致。它可能不是你武器库中威力最大的那件,但一定是部署最方便、最可靠的那件。在需要快速验证想法、构建原型或在不便安装复杂环境的情况下,它总能派上用场。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 12:25:38

视频时间革命:如何用开源工具每天节省2小时观看时间

视频时间革命&#xff1a;如何用开源工具每天节省2小时观看时间 【免费下载链接】videospeed HTML5 video speed controller (for Google Chrome) 项目地址: https://gitcode.com/gh_mirrors/vi/videospeed 视频加速控制器、HTML5视频播放和浏览器扩展正在改变人们消费视…

作者头像 李华
网站建设 2026/5/10 12:22:21

企业如何通过Taotoken实现内部AI能力的安全审计

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 企业如何通过Taotoken实现内部AI能力的安全审计 对于企业IT管理员而言&#xff0c;将大模型能力引入内部业务流程&#xff0c;在提…

作者头像 李华
网站建设 2026/5/10 12:20:35

大模型效果评估失效真相(SITS 2024核心方法论首发)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;大模型效果评估失效真相&#xff08;SITS 2024核心方法论首发&#xff09; 传统评估范式正遭遇系统性崩塌——当 LLaMA-3 在 MMLU 上得分跃升至89.2%&#xff0c;其在真实客服对话中的任务完成率却不足…

作者头像 李华
网站建设 2026/5/10 12:19:05

AIAgent容错架构设计实战(SITS2026认证级方案解密)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AIAgent容错设计&#xff1a;SITS2026认证级方案全景概览 在高可靠性AI系统落地场景中&#xff0c;AIAgent的容错能力直接决定其能否通过SITS2026&#xff08;智能体工业安全与可信规范2026&#xff09…

作者头像 李华