返回更新列表
新发布Jul 21, 2026

bbot v3.0.1

面向黑客的递归互联网扫描器。🧡

分享

bbot_banner

Python Version License PyPi Downloads Ruff Tests Codecov Discord

BEE·bot 是一款多功能扫描器,灵感来源于 Spiderfoot,旨在自动化您的 侦察漏洞赏金ASM

https://github.com/blacklanternsecurity/bbot/assets/20261699/e539e89b-92ea-46fa-b893-9cde94eebf81

实时 BBOT 扫描——使用 VivaGraphJS 可视化

安装

# 稳定版
pipx install bbot

# 前沿版(dev 分支)
pipx install --pip-args '\--pre' bbot

更多安装方式,包括 Docker,请参阅 入门指南

从 2.x 升级? BBOT 3.0 对 CLI、预设、模块、事件和 Python API 引入了破坏性变更。升级前请查阅 2.x → 3.0 迁移指南 (源文件)。

速度提示: BBOT 的 DNS 解析器 (blastdns) 会为 /etc/resolv.conf 中的每个解析器启动多线程。添加更多无过滤的解析器可以显著加快扫描速度。详情请参见 示例 resolv.conf技巧与窍门

示例命令

1) 子域名发现

使用被动 API 源加上针对目标的自定义子域名变异进行递归 DNS 暴力破解。

# 查找 evilcorp.com 的子域名
bbot -t evilcorp.com -p subdomain-enum

# 仅使用被动源
bbot -t evilcorp.com -p subdomain-enum -rf passive
subdomain-enum.yml
description: Enumerate subdomains via APIs, brute-force

flags:
  # enable every module with the subdomain-enum flag
  - subdomain-enum

output_modules:
  # output unique subdomains to TXT file
  - subdomains

config:
  dns:
    threads: 25
    brute_threads: 1000
  # put your API keys here
  # modules:
  #   github:
  #     api_key: ""
  #   chaos:
  #     api_key: ""
  #   securitytrails:
  #     api_key: ""

BBOT 始终比其他工具多发现 20-50% 的子域名。域名越大,差距越明显。要了解其原理,请参阅 工作原理

subdomain-stats-ebay

2) Web 爬虫

# 爬取 evilcorp.com,提取电子邮件等信息
bbot -t evilcorp.com -p spider
spider.yml
description: Recursive web spider

modules:
  - http

blacklist:
  # Prevent spider from invalidating sessions by logging out
  - "RE:/.*(sign|log)[_-]?out"

config:
  web:
    # how many links to follow in a row
    spider_distance: 2
    # don't follow links whose directory depth is higher than 4
    spider_depth: 4
    # maximum number of links to follow per page
    spider_links_per_page: 25

3) 电子邮件收集

# 使用免费 API + 爬取快速枚举电子邮件
bbot -t evilcorp.com -p email-enum

# 结合子域名枚举和 Web 爬虫以获得最大产出
bbot -t evilcorp.com -p email-enum subdomain-enum spider
email-enum.yml
description: Enumerate email addresses from APIs, web crawling, etc.

flags:
  - email-enum

output_modules:
  - emails

4) Web 扫描器

# 对 www.evilcorp.com 进行轻量级 Web 扫描
bbot -t www.evilcorp.com -p web

# 对 www.evilcorp.com 进行深度 Web 扫描
bbot -t www.evilcorp.com -p web-heavy
web.yml
description: Quick web scan

include:
  - iis-shortnames

flags:
  - web

web-heavy.yml
description: Aggressive web scan

include:
  # include the web preset
  - web

flags:
  - web-heavy

5) 所有功能一网打尽

# 所有功能一网打尽
bbot -t evilcorp.com -p kitchen-sink

# 大致等价于:
bbot -t evilcorp.com -p subdomain-enum cloud-enum code-enum email-enum spider web paramminer webbrute web-screenshots
kitchen-sink.yml
description: Everything everywhere all at once

include:
  - subdomain-enum
  - cloud-enum
  - code-enum
  - email-enum
  - spider
  - web
  - paramminer
  - webbrute
  - web-screenshots
  - baddns-heavy

config:
  modules:
    dnsbrute:
      recursive_mutations: true
    dnscommonsrv:
      recursive_mutations: true
    webbrute:
      avoid_wafs: False
    wayback:
      urls: True
      parameters: True
      archive: True

工作原理

点击下方图表,探索 BBOT 的 内部工作原理

image

输出模块

……以及 更多

作为 Python 库使用 BBOT

同步

from bbot.scanner import Scanner

if __name__ == "__main__":
    scan = Scanner("evilcorp.com", presets=["subdomain-enum"])
    for event in scan.start():
        print(event)

异步

from bbot.scanner import Scanner

async def main():
    scan = Scanner("evilcorp.com", presets=["subdomain-enum"])
    async for event in scan.async_start():
        print(event.json())

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())
查看:这个邪恶的 Discord 机器人

一个响应 /scan 命令的 BBOT Discord 机器人。在您的 Discord 服务器中舒适地扫描互联网!

bbot-discord

功能概览

  • 支持多目标
  • Web 截图
  • 一套攻击性 Web 模块
  • NLP 驱动的子域名变异
  • 原生输出至 Neo4j(及更多)
  • 使用 Ansible 自动安装依赖
  • 使用自定义 YARA 规则搜索整个攻击面
  • Python API + 开发者文档

目标

BBOT 通过 -t 接受无限数量的目标。您可以直接在命令行或文件中指定目标(或同时使用):

bbot -t evilcorp.com evilcorp.org 1.2.3.0/24 -p subdomain-enum

目标可以是以下任意类型:

  • DNS 名称 (evilcorp.com)
  • IP 地址 (1.2.3.4)
  • IP 范围 (1.2.3.0/24)
  • 开放 TCP 端口 (192.168.0.1:80)
  • URL (https://www.evilcorp.com)
  • 电子邮件地址 ([email protected])
  • 组织 (ORG:evilcorp)
  • 用户名 (USER:bobsmith)
  • 文件系统 (FILESYSTEM:/tmp/asdf)
  • 移动应用 (MOBILE_APP:https://play.google.com/store/apps/details?id=com.evilcorp.app)

更多信息请参见 目标。要了解 BBOT 如何处理范围,请参见 范围

API 密钥

与 Amass 或 Subfinder 类似,BBOT 支持多种第三方服务(如 SecurityTrails 等)的 API 密钥。

标准做法是将 API 密钥填入 ~/.config/bbot/secrets.yml。注意,允许多个 API 密钥:

modules:
  shodan_dns:
    api_key: 4f41243847da693a4f356c0486114bc6
  c99:
    # multiple API keys
    api_key:
      - 21a270d5f59c9b05813a72bb41707266
      - ea8f243d9885cf8ce9876a580224fd3c
      - 5bc6ed268ab6488270e496d3183a1a27
  virustotal:
    api_key: dd5f0eee2e4a99b71a939bded450b246
  securitytrails:
    api_key: d9a05c3fd9a514497713c54b4455d0b0

您也可以在命令行中指定它们:

bbot -c modules.virustotal.api_key=dd5f0eee2e4a99b71a939bded450b246

详情请参见 配置

模块、标志等完整列表

文档

贡献

BBOT 的一些最佳模块来自社区。BBOT 在不断改进,每天都在变得更强大!

我们欢迎各种贡献,不仅是代码,还有想法!如果您有新功能的想法,请在 讨论区 告诉我们。如果您想亲自动手,请参阅 贡献。那里有设置说明和编写 BBOT 模块的简单教程。我们还提供了详尽的 开发者文档

感谢这些杰出人士对 BBOT 的贡献!❤️

特别感谢:

  • @TheTechromancer 创建了 BBOT
  • @liquidsec 在 BBOT 的 Web 黑客功能上做出了大量贡献,包括 badsecretsbaddns
  • Steve Micallef (@smicallef) 创建了 Spiderfoot
  • @kerrymilan 在 Neo4j 和 Ansible 方面的专业知识
  • @domwhewell-sage 提供的一系列强大代码掠夺模块
  • @aconite33 和 @amiremami 进行了严格的测试
  • Aleksei Kornev (@alekseiko) 授予我们 bbot Pypi 仓库的所有权 <3

分类