bbot
OSINT automation for hackers.
What it is and what it does
BBOT is a modular security scanner designed for reconnaissance, bug bounties, and attack surface management. It combines passive API sources with active techniques like DNS brute-forcing and web crawling to discover subdomains, email addresses, web vulnerabilities, and other reconnaissance data. The tool accepts multiple target types—domains, IPs, IP ranges, URLs, emails, and more—and can run preset scanning profiles (subdomain-enum, spider, email-enum, web, kitchen-sink) or be customized with individual modules.
As a Python library or CLI tool, BBOT outputs findings to multiple formats including Neo4j, databases, messaging platforms, and standard files. It emphasizes automation and scale: recursive DNS mutations, NLP-powered subdomain generation, web screenshots, and integration with Ansible for dependency management. The active maintenance, large dependency footprint, and AGPL license reflect its role as a comprehensive framework rather than a lightweight utility.
Use it for:
- Enumerate subdomains of a target domain using passive APIs and recursive DNS brute-force with target-specific mutations.
- Crawl a website to extract emails, URLs, and other reconnaissance data while respecting session integrity.
- Scan an entire IP range or multiple targets in parallel to map an organization's attack surface.
- Integrate reconnaissance into a security workflow via Python API for synchronous or asynchronous event processing.
- Output scan results directly to Neo4j, Elasticsearch, or messaging platforms for real-time analysis and alerting.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
BBOT is a multipurpose reconnaissance and vulnerability scanner that automates subdomain enumeration, web crawling, email discovery, and security scanning across targets ranging from domains to IP ranges to URLs.
Yes, if you need comprehensive reconnaissance automation for security testing or bug bounties. BBOT is actively maintained, has low install friction, and offers a large module ecosystem. However, verify that AGPL-3.0 licensing aligns with your use case, and be aware that the 36 runtime dependencies add complexity. Not suitable for minimal, lightweight scanning—consider simpler tools if you only need basic subdomain enumeration.
Install
bbot on PyPI
pip
pip install bbotuv
uv add bbotpoetry
poetry add bbotInstalling bbot
Before you install
Low friction install via pip or pipx. Actively maintained with a recent release (24 days old) and strong community signal (10362 GitHub stars). Requires Python 3.10 or later and brings in 36 runtime dependencies including Ansible, DNS tools, and web frameworks—manageable for a comprehensive security scanner.
License in practice
Licensed under AGPL-3.0, which requires that any modifications or derivative works distributed must also be released under AGPL-3.0. Suitable for internal security work and open-source projects, but commercial use or proprietary modifications require careful licensing review.
Quickstart
pip install bbot
from bbot.scanner import Scanner
scan = Scanner("evilcorp.com", presets=["subdomain-enum"])
for event in scan.start():
print(event)
Requires Python 3.10 or later. DNS resolver performance depends on unfiltered resolvers in /etc/resolv.conf; adding more resolvers significantly speeds up scans.
Verify before relying
- Whether the claimed 20-50% subdomain discovery advantage over other tools holds across different domain sizes and configurations.
- Performance characteristics and resource requirements for large-scale scans (e.g., scanning entire IP ranges or thousands of targets).
- Compatibility and stability of the 36 runtime dependencies in production environments.
Package facts
| License | AGPL-3.0 (agpl) |
| Python support | supports the current Python release (<3.15,>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 36 — ansible-core, ansible-runner, asndb, beautifulsoup4, blastdns, blasthttp, cachetools, cloudcheck, deepdiff, dnspython, idna, jinja2, lxml, mmh3, orjson, pip, psutil, puremagic, pycryptodome, pydantic, pyjwt, pyyaml, pyzmq, radixtarget, regex, setproctitle, socksio, tabulate, tldextract, unidecode |
| Maintenance | actively maintained — 24 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 77,007/month — #14,560 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: bbot-3.0.1-py3-none-any.whl
Keywords: attack-surface, automation, bugbounty, cli, command-line-tool, hacking, intelligence, neo4j, osint, osint-framework, osint-tool, pentesting, python, python-library, recon, recursion, scanner, security-tools, subdomain-enumeration, subdomain-scanner, subdomains, threat-intel
Tags
More Security packages
Provides Python bindings to the FreeDesktop.org…
permissive · top 1,000 on PyPI
msalMSAL for Python handles OAuth2 and OpenID…
permissive · top 1,000 on PyPI
joserfcjoserfc implements JOSE standards (JWS, JWE,…
permissive · top 1,000 on PyPI
AuthlibAuthlib provides a complete implementation of…
permissive · top 1,000 on PyPI
argon2-cffi-bindingsProvides low-level CFFI bindings to the…
permissive · top 1,000 on PyPI
adalADAL for Python authenticates applications with…
permissive · top 1,000 on PyPI
cisco-ai-skill-scannerScans AI Agent Skills for prompt injection,…
permissive · top 15,000 on PyPI
cisco-ai-mcp-scannerScans MCP (Model Context Protocol) servers and…
unclear · top 15,000 on PyPI
scanossScanoss provides a Python library and CLI tool…
permissive · top 15,000 on PyPI
sherlock-projectSearches for usernames across 400+ social…
permissive · top 15,000 on PyPI
kingfisher-binKingfisher is a command-line secret scanner…
permissive · top 15,000 on PyPI
bloodhoundBloodHound.py is a Python ingestor that…
permissive · top 15,000 on PyPI
zaproxyPython client library for the OWASP ZAP…
permissive · top 15,000 on PyPI
semgrepSemgrep is a static analysis tool that searches…
copyleft · top 1,000 on PyPI
pysonarA command-line scanner that integrates Python…
copyleft · top 15,000 on PyPI
python3-nmapWraps nmap port scanner commands as Python…
unclear · top 15,000 on PyPI