BBOT

raw JSON →
2.8.4 verified Fri May 01 auth: no python

BBOT (Bighorn Buster OSINT Tool) is an OSINT automation framework for hackers and security researchers, combining subdomain enumeration, port scanning, web screenshots, and more into a single modular pipeline. Current version: 2.8.4. Released regularly (multiple minor versions per month) on PyPI.

pip install bbot
error ModuleNotFoundError: No module named 'bbot'
cause BBOT is not installed or is installed in a different environment.
fix
Run pip install bbot in the correct Python environment.
error AttributeError: module 'bbot' has no attribute 'Scanner'
cause Importing Scanner from the top-level `bbot` package instead of the submodule.
fix
Use from bbot.scanner import Scanner instead of from bbot import Scanner.
error ValueError: Scanner cannot be started twice with same target
cause Attempting to call `start()` on the same scanner instance more than once.
fix
Create a new scanner instance for each scan: s = scanner(target); s.start().
breaking BBOT 2.x introduced a completely rewritten API. Old scripts using `from bbot import scan` or `BBot()` will fail. The new entry point is `bbot.scanner.scanner`.
fix Update imports to `from bbot.scanner import scanner` and use `scanner()` function.
gotcha Do not call `scanner()` with the same target more than once in the same process; BBOT reuses state and may produce unexpected results. Create a new scanner instance for each scan.
fix Always instantiate a new scanner object per scan, e.g., `s = scanner(target)`.
gotcha Some modules require external tools (e.g., nuclei, ffuf) to be installed separately. BBOT will not warn if they are missing; scans may silently skip those steps.
fix Check the documentation for module prerequisites and ensure required tools are in your PATH.

Initialize the BBOT scanner with target domain, enable subdomain enumeration and port scan, output to CSV, and run.

from bbot.scanner import scanner

s = scanner("example.com", modules=["subdomain-enum", "portscan"], output_modules=["csv"], config={"modules": {"portscan": {"ports": [80, 443]}}})
s.start()
results = s.json
print(results[:2])