mrkeyoor.com_
Fri 06 Nov 08:01 UTC
Automationevaluationupdated 06 Nov 2026

bbot review

BBOT is a reconnaissance scanner that combines subdomain discovery, web crawling and other collection tasks through presets and modules. It can write findings to files or external systems. This review separates its documented capabilities from the installation and build checks completed in our sandbox.

Verdict

BBOT merits a scoped evaluation when you need several reconnaissance tasks in one workflow. Our installation and build succeeded, but pytest rejected the test command and scan behavior remains unverified. Inspect module configuration rather than treating a passive flag as a verified operating guarantee, identify the audit advisory and complete a representative scan before scheduling recurring work.

We ran it

Lab card: what happened when we ran bbotScreenshot of bbot (www.blacklanternsecurity.com/bbot)
Install✓ · 19s90 packages · 175 MB
Build✓ · 1s
Tests✗ · 2sran, no count parsed
Known vulns1(pip-audit)
Repo609 files~98,057 lines of source · 9.7 MB · 7 CI workflows · Dockerfile

Answers from our run

Does bbot build from source?

Dependencies installed in 19 seconds (90 packages), and the build succeeded in 1 seconds. We cloned commit a6fb827 into a clean Debian container with 3 CPUs and no project-specific setup.

Do bbot's tests pass?

No. The project's own test command exited unsuccessfully after 2 seconds, and its output did not expose an individual test count.

Does bbot have known vulnerabilities in its dependencies?

pip-audit flagged 1 known advisory in the dependency tree at the time of our run.

Who should not use bbot?

Researchers who need a verified passive-only workflow immediately: the README's passive filter is a starting point, but an open issue questions whether static module flags capture configuration-dependent behavior.

What are the alternatives to bbot?

Subfinder, SpiderFoot. BBOT merits a scoped evaluation when you need several reconnaissance tasks in one workflow.

SetupN/AInstallation succeeded in the recorded sandbox, but we did not reproduce a documented supported setup or complete a scan. That evidence is insufficient to rate the overall setup experience.
Docs3/5On the visible five-point documentation rubric, 3 means a concrete evaluation path is documented. The README supplies installation, presets, outputs and migration guidance. We did not execute its examples or verify operating limits, and the supplied issue about configuration-dependent module behavior limits confidence in passive filtering.
CommunityN/AThe supplied issues extract shows dated reports and a module proposal. It does not establish support responsiveness, adoption or successful resolution, so no numerical community score is assigned.
MaturityN/AThe pinned release and successful installation and build establish a versioned evaluation starting point. They do not establish scan correctness, module reliability or production suitability.

Who it’s for

Security engineers combining reconnaissance tasks on assets they are authorized to assess.
Bug bounty researchers prepared to inspect presets, module settings and permitted target interactions.
Python developers evaluating an event-based reconnaissance workflow and willing to check version compatibility.

Who it’s NOT for

Researchers who need a verified passive-only workflow immediately: the README's passive filter is a starting point, but an open issue questions whether static module flags capture configuration-dependent behavior.
Existing BBOT 2.x integrations expecting an unchanged upgrade: the README warns of breaking changes in 3.0.
Users who need demonstrated scan correctness or production reliability before evaluation: our run did not establish either.

Setup reality

Our November 5, 2026 sandbox run at commit a6fb827 installed successfully in 19 seconds, recording 90 dependencies and 175 MB on disk. The build succeeded in 1 second. The test command exited 4 after 2 seconds because pytest rejected --benchmark-skip. This was a command-level rejection; the log does not establish passing assertions, failing scanner assertions or why the argument was unavailable.

pip-audit reported one known vulnerability. The supplied record does not identify the affected package, advisory or severity, so the finding remains unresolved. The record also does not establish a completed reconnaissance scan or validated output integration.

The README documents installation through pipx, mentions Docker and shows optional service credentials. These documentation examples were not executed in our run. The sandbox configuration listed 3 CPUs, 8 GB RAM and ghcr.io/astral-sh/uv:python3.12-bookworm; those labels do not establish actual runtime versions. Before adopting BBOT, reproduce the relevant checks, obtain the audit details and inspect the chosen modules and their configuration on an authorized target.

Choose the collection behavior before the preset

BBOT's subdomain preset combines passive API sources with recursive DNS brute-force and target-specific mutations. If your task permits only passive collection, that distinction matters before you run a command.

BBOT coordinates reconnaissance tasks through presets and modules. Its README documents subdomain discovery, email collection, web crawling and web scanning, with file outputs and external destinations. That breadth makes it worth evaluating when several tasks belong in the same workflow. Our sandbox run did not measure discovery coverage or establish that a scan completed.

What happened when we ran it

At commit a6fb827 on November 5, 2026, installation succeeded in 19 seconds and the build succeeded in 1 second. The run recorded 90 dependencies occupying 175 MB. The checkout contained 609 files occupying 9.7 MB.

The test command exited 4 after 2 seconds. Its log reported an unrecognized --benchmark-skip argument and identified pyproject.toml as the configuration file. Pytest rejected the command, so this result provides no passing-test count or scanner assertion result. The supplied log does not explain why the argument was unavailable.

pip-audit reported one known vulnerability without identifying its package, advisory or severity in the supplied record. Obtain those details before deciding whether the installed dependencies are acceptable for your environment.

The recorded sandbox configuration was 3 CPUs, 8 GB RAM and image ghcr.io/astral-sh/uv:python3.12-bookworm. These configuration labels do not establish the actual runtime or operating-system version. The repository scan found a Dockerfile and seven CI workflow files. Its negative tests-directory signal does not establish that the repository has no tests.

A passive filter still needs configuration review

The README shows a subdomain command with -rf passive and labels it "passive sources only." This is a documentation example, unexecuted in our run.

The supplied issues page also lists an open report titled "Module flags are static, but some modules are active or passive depending on config," opened July 30, 2026. The issue title records a reported limitation; it does not prove how every module behaves. It does mean this review cannot treat the README filter as independently verified assurance of passive operation. Inspect the selected modules and settings against your permitted collection behavior.

API-backed modules may also require service credentials. The README shows configuration for services including SecurityTrails and VirusTotal. Installation alone does not establish access to those sources or permission for a particular use.

For an evaluation, record the authorized target, preset, module configuration and available sources. Inspect the resulting events and files before expanding the scope. This is a proposed procedure; our run did not execute it.

Broader presets require broader inspection

The kitchen-sink preset combines subdomain, cloud, code and email enumeration with crawling and web-related tasks. Choose it only after deciding that the included work fits your assessment. A narrower task is easier to evaluate against an existing workflow.

The README distinguishes a light web scan from a heavy preset described as aggressive. These are documented descriptions, not measured request-volume or runtime comparisons. We did not run those examples.

Output choices need their own evaluation. The README lists JSON and CSV alongside destinations such as Neo4j and Postgres. Begin with an output you can inspect, then validate the destination your workflow needs. Our run did not verify integration credentials or delivery reliability.

Match the release to the evidence

The supplied release record identifies v3.0.2, published August 24, 2026, at a6fb827, the commit used in our sandbox. The pinned release page connects the measured checkout to that release. The supplied README and issues extracts describe repository documentation and reported concerns; they are not a separate execution record for v3.0.2.

The README warns that BBOT 3.0 contains breaking changes to the CLI, presets, modules, events and Python API. Existing integrations need migration checks, especially if they consume scan events. Its synchronous and asynchronous Python examples provide integration starting points, but neither was executed in our run.

The supplied issues extract includes a module proposal opened November 4, 2026. It establishes that a proposal was filed, without demonstrating implementation, maintainer response time or release reliability.

When a narrower tool fits

Subfinder uses passive online sources for subdomain discovery. Evaluate it when that is the whole task. SpiderFoot supports a web interface and command-line operation. Evaluate it when a browser interface matters to your OSINT workflow. These are documented scope and interface distinctions; we measured no winner on speed or discovery quality.

Our documentation rubric uses a five-point scale: 1 means essential evaluation instructions are missing; 2 means instructions leave major evaluation steps unclear; 3 means the documentation provides a concrete evaluation path; 4 requires that path to be independently checked with its consequential limits; 5 requires broader verification across the documented workflows. BBOT receives 3 for its installation route, preset examples, output options and migration warning. The commands and operating limits were not independently verified. Setup ease, community support and production maturity remain unassessed.

Before recurring use, resolve the test-command rejection, identify the audit advisory and complete a representative authorized scan. Save its configuration and output so later changes can be investigated.

Alternatives

ProjectWhat it isPick it when
SubfinderSubfinder uses passive online sources for subdomain discovery.Evaluate it when passive subdomain enumeration is the complete task. We did not compare discovery quality or speed.
SpiderFoot gh↗SpiderFoot supports a web interface and command-line operation.Evaluate it when a browser interface is a requirement for your OSINT workflow. We did not test its installation or results.

What people are saying

  1. [github-trending] blacklanternsecurity/bbot

Sources

  1. BBOT README
  2. BBOT open issues
  3. BBOT v3.0.2 release
  4. Subfinder README
  5. SpiderFoot README

More automation reviews

switch · Horizon · ai-goofish-monitor · agent-desktop · Microsoft-Rewards-Script · moli · the whole board →