Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
domainim — 一个快速且全面的组织网络扫描工具 | Kitploit
工具/GitHubGitHub/pptx704/domainim
OSINT (开源情报)侦察网络映射端口扫描DNS和子域名枚举信息收集渗透测试DNS 分析
GitHubpptx704/domainim

domainim

一个快速且全面的组织网络扫描工具

查看仓库
13813474天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

DOMAINIM

功能特性 • 用法 • 安装 • 用法 • 贡献 • 补充说明

Domainim 是一款用于组织网络扫描的快速域名侦察工具。该工具旨在通过 OSINT、暴力破解、DNS 解析等技术,提供组织结构的简要概览。

功能特性

当前功能(v1.3.0)-

  • 子域名枚举(6 个引擎 + 暴力破解)。各引擎并发查询-
    • dnsdumpster.com
    • crt.sh
    • anubisdb.com
    • hackertarget.com
    • certspotter.com
    • rapiddns.io
  • 用户友好的输出
  • 解析 A 记录(IPv4)

  • 虚拟主机名枚举

  • 反向 DNS 查询

  • 检测通配符子域名。仅解析到通配符 IP 的被动结果会被隐藏,除非它们曾在 TLS 证书中出现过。可通过 --force-brute 强制进行暴力破解,此时仅解析到通配符 IP 的结果会被丢弃

  • 基本 TCP 端口扫描

  • 接受子域名作为输入

  • 将结果导出为 JSON 文件

部分功能仍在开发中。详情请参阅计划功能。

本项目受 Sublist3r 启发。端口扫描模块大量基于 NimScan。

安装

你可以从源码构建此仓库-

  • 克隆仓库
git clone [email protected]:pptx704/domainim
  • 构建二进制文件
nimble build
  • 运行该二进制文件
./domainim <domain> [--ports=<ports>]

或者,你也可以直接从发布页面下载二进制文件。请注意,该二进制文件仅在基于 Debian 的系统上经过测试。

用法

./domainim <domain> [--ports=<ports> | -p:<ports>] [--wordlist=<filename> | -l:<filename> [--rps=<int> | -r:<int>] [--force-brute | -f]] [--dns=<dns> | -d:<dns>] [--out=<filename> | -o:<filename>]
  • <domain> 是要枚举的域名。它也可以是一个子域名。
  • -- ports | -p 是要扫描的端口的字符串指定。它可以是以下之一:
    • all - 扫描所有端口(1-65535)
    • none - 跳过端口扫描(默认)
    • t<n> - 扫描最常见的 n 个端口(与 nmap 相同)。即 t100 扫描最常见的 100 个端口。最大值为 5000。如果 n 大于 5000,将被设置为 5000。
    • 单个值 - 扫描单个端口。即 80 扫描端口 80
    • 范围值 - 扫描一个端口范围。即 80-100 扫描端口 80 到 100
    • 逗号分隔值 - 扫描多个端口。即 80,443,8080 扫描端口 80、443 和 8080
    • 组合 - 扫描上述的组合。即 80,443,8080-8090,t500 扫描端口 80、443、8080 到 8090 以及最常见的 500 个端口
  • --dns | -d 是 DNS 服务器的地址。这应该是一个有效的 IPv4 地址,并且可以选择性地包含端口号:
    • a.b.c.d - 使用位于 a.b.c.d 端口 53 上的 DNS 服务器
    • a.b.c.d#n - 使用位于 a.b.c.d 端口 n 上的 DNS 服务器
  • --wordlist | -l - 字典文件的路径。这用于暴力破解子域名。如果文件无效,将跳过暴力破解。空行和以 # 开头的行会被忽略。你可以从 SecLists 获取字典。在发布页面中也提供了一个字典。
  • --force-brute | -f - 即使发现通配符记录也进行暴力破解。仅解析到通配符 IP 的子域名会被丢弃。
  • --rps | -r - 暴力破解期间每秒发出的请求数。默认值为 1024 req/s。需要注意的是,DNS 查询是分批进行的,只有前一批完成后才会进行下一批。由于查询可能会受到速率限制,增加该值并不总能保证更快的结果。
  • --out | -o - 输出文件的路径。输出将以 JSON 格式保存。文件名必须以 .json 结尾。

示例

  • ./domainim nmap.org --ports=all
  • ./domainim google.com --ports=none --dns=8.8.8.8#53
  • ./domainim pptx704.com --ports=t100 --wordlist=wordlist.txt --rps=1500
  • ./domainim pptx704.com --ports=t100 --wordlist=wordlist.txt --out=results.json
  • ./domainim nmap.org --wordlist=wordlist.txt --force-brute
  • ./domainim mysite.com --ports=t50,5432,7000-9000 --dns=1.1.1.1

可以使用 ./domainim --help 或 ./domainim -h 访问帮助菜单。

Usage:
    domainim <domain> [--ports=<ports> | -p:<ports>] [--wordlist=<filename> | -l:<filename> [--rps=<int> | -r:<int>] [--force-brute | -f]] [--dns=<dns> | -d:<dns>] [--out=<filename> | -o:<filename>]
    domainim (-h | --help)

Options:
    -h, --help              Show this screen.
    -p, --ports             Ports to scan. [default: `none`]
                            Can be `all`, `none`, `t<n>`, single value, range value, combination
    -l, --wordlist          Wordlist for subdomain bruteforcing. Bruteforcing is skipped for invalid file.
    -f, --force-brute       Bruteforce even if a wildcard record is found. Results resolving only to wildcard IPs are discarded.
    -d, --dns               IP and Port for DNS Resolver. Should be a valid IPv4 with an optional port [default: system default]
    -r, --rps               DNS queries to be made per second [default: 1024 req/s]
    -o, --out               JSON file where the output will be saved. Filename must end with `.json`

Examples:
    domainim domainim.com -p:t500 -l:wordlist.txt --dns:1.1.1.1#53 --out=results.json
    domainim sub.domainim.com --ports=all --dns:8.8.8.8 -l:wordlist.txt -r:1500 -f -o:results.json

结果的 JSON schema 如下:

[
  {
    "subdomain": string,
    "data": [
      {
        "ipv4": string,
        "vhosts": [string],
        "reverse_dns": string,
        "ports": [int]
      }
    ]
  }
]

nmap.org 的示例 json 可在此处找到。

贡献

欢迎贡献。请随时提交 pull request 或 issue。

计划功能

  • TCP 端口扫描
  • 支持 UDP 端口扫描
  • 解析 AAAA 记录(IPv6)
  • 自定义 DNS 服务器
  • 使用字典文件暴力枚举子域名
  • 强制暴力枚举(即使发现通配符子域名)
  • 为子域名枚举添加更多引擎
  • 文件输出(JSON)
  • 多域名枚举
  • 目录与文件爆破

其他

  • 遇到错误时更新详细输出(v0.2.0)
  • 为耗时较长的操作显示进度条
  • 添加单个端口扫描进度条
  • 添加测试
  • 添加注释和文档字符串

补充说明

本项目仍处于早期阶段。我清楚存在若干限制。

我使用的引擎(我称它们为引擎,因为 Sublist3r 也这么叫)都是免费、无需密钥的服务,且大多数都有某种响应限制。dnsdumpster 对免费用户最多返回 50 个子域名,rapiddns 约 100 个。hackertarget 每个 IP 每天只允许少量查询,certspotter 只返回当前有效的证书。crt.sh 在结果过多时会随机化结果,并且经常过载(HTTP 502)。因此对于某些域名,不同次运行的结果可能不同。失败的引擎会被报告并跳过;它绝不会中止扫描。被动来源也可能包含过时或由通配符生成的名字。

所有 IP 都在单个事件循环上并发进行端口扫描(最多 4096 个在途连接尝试,每秒最多发起 5000 个,以免本地和路由器队列丢弃 SYN 包)。不响应 ping 的主机不会被扫描。端口扫描器只有 ping 响应时间 + 750ms 的超时。这可能导致漏报。由于 domainim 并非用于端口扫描,而是提供快速概览,此类情况是可以接受的。不过,我计划添加一个标志来增加超时时间。出于同样的原因,被过滤的端口不会显示。如需更全面的端口扫描,我推荐使用 Nmap。Domainim 也不会绕过速率限制(如果存在的话)。

vhostname 的打印方式看起来似乎只是在重复。

像下面这样打印可能会更好——

ack.nmap.org, issues.nmap.org, nmap.org, research.nmap.org, scannme.nmap.org, svn.nmap.org, www.nmap.org
  ↳ 45.33.49.119
    ↳ Reverse DNS: ack.nmap.org. 

但之前测试时,我发现有些情况下并非所有 IP 都由同一组 vhostname 共享。这就是我决定保持这种方式的原因。

DNS 服务器可能有某种速率限制。这就是我为每次查询的 IPv4 解析添加随机延迟(0-300ms 之间)的原因。这样做是为了不让 DNS 服务器一次性收到所有查询,而是以更自然的方式接收。对于暴力破解方法,该值默认在 0-1000ms 之间,但可以通过 --rps | -r 标志更改。

有一个让我困扰的特定限制是 DNS 解析器不会返回某个域名的所有 IP。因此有必要进行多次查询以获取全部(或大部分)IP。但话说回来,无法知道一个域名有多少个 IP。我仍然需要为此想出一个解决方案。带有 CNAME 记录的域名会被解析为 CNAME 目标的 IPv4 地址。

默认情况下,如果发现可能的通配符子域名,则跳过暴力破解。这是因为,如果域名有通配符子域名,暴力破解将为所有可能的子域名解析 IPv4。使用 --force-brute | -f 强制进行暴力破解。在这种情况下,会先检测通配符 IP,仅解析到这些 IP 的子域名会被丢弃,因此像 scanme.nmap.org 这样的有效子域名仍会被找到。与通配符记录共享 IP 的子域名无法与之区分,也会被丢弃。

被动引擎也可能返回仅因通配符记录而存在的名称(例如某人曾经查询过的拼写错误)。因此,对于有通配符记录的域名,仅解析到通配符 IP 的子域名会被隐藏,除非它们出现在 TLS 证书中(crt.sh 或 certspotter)。隐藏的子域名数量会被打印出来。如果没有证书引擎响应,则不会隐藏任何内容。

对于子域名输入的 VHost 枚举也是如此。由于会返回以给定子域名结尾的 URL,相似域名的子域名不会被考虑。例如,对于 ack.nmap.org,不会打印 scannme.nmap.org,但可能会打印 something.ack.nmap.org。我可以搜索 nmap.org 的所有子域名,但这违背了将子域名作为输入的初衷。

许可证

MIT 许可证。完整文本见 LICENSE。

下载工具