【评测】子域枚举工具测评

admin 2024年3月6日11:22:10评论17 views字数 3958阅读13分11秒阅读模式

编者按

根据这篇关于子域枚举工具测评的文章内容,我们可以得出以下结论和总结:

主要研究内容:本次测评主要针对子域枚举工具进行了测试,以发现各工具在查找目标域名的子域时的效率和覆盖度。

测试对象:测试对象包括了多个开源子域枚举工具,例如BBOT、theHarvester、Subfinder、Amass、OneForAll、Spiderfoot、Findomain、Sublist3r,以对比它们在发现大型和小型目标域名的子域时的表现。

测试方法:通过对大型目标(delta.com)和小型目标(spirit.com)运行各个工具,并记录找到的子域总数以及运行耗时进行对比。

结论:

在子域数量方面,BBOT 表现较优,特别是使用子域枚举工具中添加了subdomain.center API 接口;

在速度方面,Subfinder 和 Findomain 表现出色,耗时最短;

theHarvester 获得了荣誉奖,也得到了一定的认可。

待改进之处:

文章并未对工具的原理进行深入探讨,也未对数据进行详细的对比和分析,建议在后续评测中加入这方面的内容;

对工具的唯一性和独特性进行更深入的研究和对比,以进一步提升测试的深度和广度。

综上所述,本次测评通过对子域枚举工具的测试和比较,为网络安全领域的从业者提供了有益的信息,同时也为这些工具的开发者提供了改进和优化的方向。

1

导言

在当今的网络安全领域,对于网络资产的发现和管理变得愈发重要。随着互联网规模的不断扩大,许多组织面临着对其网络边界和资产的有效监视的挑战。其中,子域枚举作为一种重要的安全措施,被广泛应用于发现组织的外部资产,帮助识别潜在的安全威胁和漏洞。而子域枚举工具则是在这一过程中的关键支持者,它们能够帮助安全团队快速、自动化地收集目标域名的子域信息。

随着网络攻击技术的不断发展,子域枚举工具也在不断涌现和完善。但是哪个工具更好用更全面呢?我们通过一些评测方法来测试以下工具:

● BBOT

● theHarvester

● Subfinder

● Amass

● OneForAll

● Spiderfoot

● Findomain

● Sublist3r

2

测评方法

今年的主题是航空公司。我们将针对一个大靶标(达美航空:delta.com)和一个小靶标(精神航空:spirit.com)运行上述工具。通过对一个大靶标和一个小靶标进行测试,我们可以看到每个工具随着攻击面的大小而扩展的程度。

与上次类似,我们只用开箱即用方式运行每个工具,没有API密钥,只有启用暴力破解和提高线程数等所需的最小配置修改。

通配符和未解析的子域将使用下面脚本删除。

#!/usr/bin/env python3import sysimport asynciofrom bbot.scanner import Scannertry:    file = sys.argv[-1]except KeyError:    print("Usage: ./clean_dns_records.py input.txt")    sys.exit(1)num_threads = 10async def handle_dns_name(dns_name, bbot_scan):    try:        dns_event = bbot_scan.make_event(dns_name, "DNS_NAME", source=bbot_scan.root_event)    except Exception as e:        return    if not dns_event.type == "DNS_NAME":        return    (        dns_tags,        event_whitelisted_dns,        event_blacklisted_dns,        dns_children,    ) = await bbot_scan.helpers.dns.resolve_event(dns_event)    for tag in dns_tags:        dns_event.add_tag(tag)    resolved_hosts = set()    for rdtype, ips in dns_children.items():        if rdtype in ("A", "AAAA", "CNAME"):            for ip in ips:                resolved_hosts.add(ip)    # check for wildcards    if not "unresolved" in dns_event.tags:        if not bbot_scan.helpers.is_ip_type(dns_event.host):            await bbot_scan.helpers.dns.handle_wildcard_event(dns_event, dns_children)    print(f"{dns_event.data}t{','.join(sorted(dns_event.tags))}")async def main():    with open(file) as f:        lines = f.read().splitlines()    lines = [l for l in set([l.strip().lower() for l in lines]) if l]    config = {        "dns_abort_threshold": 999999    }    bbot_scan = Scanner()    semaphore = asyncio.Semaphore(num_threads)  # Limit to 5 concurrent tasks    tasks = []    for dns_name in lines:  # If you want to run 10 tasks        tasks.append(controlled_execution(semaphore, dns_name, bbot_scan))    await asyncio.gather(*tasks)async def controlled_execution(semaphore, dns_name, bbot_scan):    async with semaphore:        await handle_dns_name(dns_name, bbot_scan)asyncio.run(main())

3

结论

找到的子域:

【评测】子域枚举工具测评

运行耗时(越低越好):

【评测】子域枚举工具测评

4

分析

你可能会注意到的第一件事是,虽然小靶标(spirit.com)的结果非常接近,不过大靶标(delta.com)结果差距较大。具体来说,BBOT、theHarvester、Amass和其他的工具存在巨大差距。对此有一个有趣的解释,这意味着子域名扫描工具大部分已经主要以API接口查询为主,而很少调用本地爆破能力。

事实证明,单一数据源是造成这种差异的原因。两个月前才添加到Amass的subdomain.center是Automated Reconnaissance & Pwning Syndicate创建的一个牛逼的API接口。它可以免费使用,每分钟限制3个请求,同时它也是BBOT模块之一。

我称之为“牛逼”,因为它非常好。Subdomain.center返回的子域比任何其他免费API接口都多。它返回了1594个有效delta.com子域,而RapidDNS(亚军)只返回了774个。

这个API最牛逼的地方是数据本身。它的数据库充满了奇怪而复杂(但完全有效)的子域,这些子域似乎不会出现在其他任何地方。没有其他免费的API包含这些数据,我们所知道的工具也没有一个能够通过暴力破解发现它们。即使BBOT的massdns 模块有NLP-powered的子域突变,也无法重复出与之相当数量的子域。

我联系了ARPSyndicate,希望找到一些关于他们数据来源的答案,但他们保密,只是说他们正在“持续聚合和分析DNS数据集”。的确,他们从哪里得到这些数据集是个谜。但谁在乎呢?反正可以免费查!

(更新8/6/2023:Subdomain.center的网站现在说,“子域中心利用Apache的Nutch、Calidog的Certstream、OpenAI的嵌入模型和我们的一些专有工具来发现比其他任何人都多的子域。”)

5

运行耗时

Subfinder和Findomain大致并列最快的工具,都在不到15秒的时间内完成。这些工具没有执行任何暴力破解,只查询API。

注释:Subfinder是用Go写的,Findomain是用Rust编写的。总之很高兴看到Go和Rust之间的友好竞争。:)

Amass和Spiderfoot是这里的最垃圾,我实际上选择缩小他们在图中的长度,因为他们使其他工具的结果根本都看不到了。在delta.com的情况下,Amass和Spiderfoot超过了6小时。

6

子域名

关于运行也就都差不多。核心还是要尽可能多的子域名,不关心是否误报,重点是不能漏报。

在这方面,我包含了BBOT。作为BBOT的创建者,我可能有点偏见,但不管你如何想,它显然是子域名发现评测中获胜了。BBOT发现spirit.com和delta.com的子域最多,Spirit.com平均多收集44%的子域,Delta.com比其他工具多118%。

7

结论

俱全能力:BBOT

耗时最少:Subfinder和Findomain这俩并列

荣誉奖:theHarvester

8

详情

返回结果和耗时表:

【评测】子域枚举工具测评

9

来源

本文翻译自

https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off-4e5

原文始发于微信公众号(幻泉之洲):【评测】子域枚举工具测评

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月6日11:22:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【评测】子域枚举工具测评https://cn-sec.com/archives/2551352.html

发表评论

匿名网友 填写信息