开卷有益 · 不求甚解
BBOT 是您一直在等待的 OSINT 工具。在单个命令中,它可以执行子域枚举、端口扫描、网页截图、漏洞扫描等。
安装 BBOT
运行BBOT
在 Black Lantern Security
,我们做了很多 OSINT。在某种程度上,OSINT 是我们所做的一切的基础。它是每种参与类型之间的共同点,无论是红队、攻击面评估还是通常的渗透测试。如果你想破解一些东西,你首先必须找到它。
从历史上看,当谈到 OSINT 时,我们每个人都有自己最喜欢的工具和流程。很长一段时间以来,我们都坚持自己的方法,因为我们都无法就哪种工具最好达成一致,而且旧习惯很难改掉。
但最终,我们开始看到我们的 OSINT 由于这种分散的方法而受到影响。有些工具擅长某些事情,有些工具擅长其他事情,但没有一种工具或工具能擅长一切,也没有一种工具能够以一种有凝聚力的方式组合在一起。
因此,我们开始设想一种提高我们能力的方法,将我们的努力集中到一个我们都可以使用和信任的工具中——一个可以取代其他一切的工具。这就是我们打算用 BBOT 创造的东西。
但是已经有很多可用的 OSINT 框架。为什么选择BBOT?
BBOT 是多年手动 OSINT 收集经验的结晶。简而言之,它解决了很多问题。但在这里,我将尽量保持简短,指出将 BBOT 与其他工具区分开来的要点。
伟大的。让我们开始吧。
大多数工具对 OSINT采取分阶段的方法。结合一堆杂项命令行工具的输出,对其进行排序、清理和唯一化,然后将其输入下一组工具,对其进行排序、清理和唯一化,然后重复。
这样做有什么问题?
问题是分阶段的方法有****遗漏事情的倾向。
想象一下,您正在枚举 evilcorp.com 的子域。您的阶段可能如下所示:
如果你自己做过任何 OSINT,你可能已经看到了问题。如果第 5 步产生了一个您在第 3 步中没有的唯一子域怎么办?子域可能还有其他好处,例如 PTR 记录、开放端口和网页。您是否应该返回第 3 步并再次运行端口扫描?您是否应该返回第 2 步并再次解决它?还是应该一直回到第 1 步并再次运行蛮力?
问题是这些步骤中的每一个都依赖于前一步的输出,这意味着如果您的目标是尽可能多地找到,那么仅执行一次是不够的。您必须一次又一次地重复这些步骤,每次都将它们的输出反馈到开头。
关键是 OSINT 根本不适合线性工作流程。BBOT 使用Recursion解决了这个问题,这是它的特征。
BBOT 改进的 OSINT 工作流程
BBOT 的模块不是分阶段工作,而是在发现结果时不断地实时相互提供结果。不使用阶段,因为每条新发现的信息都会立即采取行动,反馈到机器中并用于继续发现过程。这允许发现分阶段方法无法发现的遥远且隐藏良好的金块。
您可能会从Spiderfoot
中认出这个递归模型。值得一提的是,在 BBOT 之前,Spiderfoot 是我选择的工具,我在这里了解到递归方法对 OSINT 的价值。Spiderfoot 是一款出色的工具,我希望它成为 Black Lantern Security 的一站式 OSINT 工具。但是,最终,它无法满足我们的要求,而我的努力反而导致了全新事物的发展。
BBOT 原生支持输出到 Neo4j。其他输出格式包括 JSON、CSV、TXT、HTTP、Websockets 等。您甚至可以一次输出到多个目的地。
输出到同时目的地
BBOT 有超过 50 个模块并且还在增加。模块是用 Python 编写的,每个模块都有自己的.py
文件。模块很容易编写,并且它们有大量的辅助函数可供使用,以帮助它们做到最好:
示例模块:mymodule.py
BBOT 接受来自文件和直接通过命令行的无限目标。目标可以是不同的类型,例如 IP 地址、DNS 名称、子网等。
BBOT 目标命令
还支持白名单和黑名单,从而实现对渗透测试和漏洞赏金目标的精细范围控制。
BBOT 白名单和黑名单能力
BBOT 使用Ansible自动化模块依赖。当您安装 BBOT 时,您pipx install
就可以了。无需摆弄第三方工具和依赖项。即使模块需要特殊的二进制文件或特定的操作系统包,BBOT 也会为您安装。
BBOT 依赖处理模块
BBOT 目标特定词云
在每次扫描期间,BBOT 从 DNS 名称、网页等中收集特定于目标的关键字,并将它们编译成所有模块都可以访问的共享词表。该词表保存在每次扫描结束时,可用于密码破解等,或在后续扫描中重复使用。
BBOT 的massdns
模块广泛使用词云进行子域暴力破解。但是这种类型的数据对于各种其他任务都很有用,例如 dirbuster 和存储桶枚举。
Scope Distance 是 BBOT 的一项独特功能,可让您控制 BBOT 探索的距离。由于 BBOT 是递归的,它需要有一个“退出条件”(即一种告诉它何时停止搜索的机制)。这就是 Scope Distance 的用武之地。每条新发现的数据(BBOT 术语中的“事件”)都被分配了一个范围距离,表示它与主范围的距离。
默认情况下,BBOT 搜索距离您定义的目标最多一跳,虽然它的 DNS 解析爬出三跳,但它只会在找到范围内的内容时输出数据。当然,所有这些设置都可以通过bbot.yaml
.
BBOT 的扫描仪和模块可通过单个 YAML 文件进行配置。这是您放置 API 密钥等内容的地方。
可自定义的 YAML 文件
我们希望您和我们一样对 BBOT 感到兴奋。但是,你为什么还在阅读它?去试试吧!
https://github.com/blacklanternsecurity/bbot [2]
请务必继续关注更多 BBOT 内容,包括现场演示以及与其他 OSINT 工具的正面比较。
近期阅读文章
,质量尚可的,大部分较新,但也可能有老文章。开卷有益,不求甚解
,不需面面俱到,能学到一个小技巧就赚了。译文仅供参考
,具体内容表达以及含义, 以原文为准
(译文来自自动翻译)尽量阅读原文
。(点击原文跳转)每日早读
基本自动化发布(不定期删除),这是一项测试
最新动态: Follow Me
微信/微博:
red4blue
公众号/知乎:
blueteams