Рекурсивный OSINT-сканер для разведки attack surface от Black Lantern Security. 100+ модулей: поддомены (dnsx, amass, subfinder), сканирование портов, web-crawling, технологический стек, email-адреса, утечки паролей, интеграция с Shodan/SecurityTrails/VirusTotal. Строит граф зависимостей.
pip install bbot # Перечисление поддоменов bbot -t example.com -p subdomain-enum # Web-разведка bbot -t example.com -p web # Максимально полный скан bbot -t example.com -p kitchen-sink -o /tmp/results
https://github.com/blacklanternsecurity/bbot/assets/20261699/e539e89b-92ea-46fa-b893-9cde94eebf81
Сканирование BBOT в реальном времени — визуализация с помощью VivaGraphJS
# stable version
pipx install bbot
# bleeding edge (dev branch)
pipx install --pip-args '\--pre' bbot
Для получения дополнительных способов установки, включая Docker, см. раздел Начало работы
Обновление с 2.x? BBOT 3.0 содержит обратно несовместимые изменения в CLI, пресетах, модулях, событиях и Python API. Перед обновлением ознакомьтесь с Руководством по миграции с 2.x → 3.0 (исходник).
Совет по скорости: DNS-резолвер BBOT (blastdns) запускает несколько потоков на один резолвер, указанный в
/etc/resolv.conf. Добавление большего количества нефильтрованных резолверов значительно ускоряет сканирования. Подробности см. в примере resolv.conf и разделе Советы и рекомендации.
Пассивные API-источники плюс рекурсивный DNS-брутфорс с мутациями поддоменов, специфичными для целевого домена.
# find subdomains of evilcorp.com
bbot -t evilcorp.com -p subdomain-enum
# passive sources only
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% больше поддоменов, чем другие инструменты. Чем больше домен, тем больше разница. Чтобы узнать, как это возможно, см. раздел Как это работает.
# crawl evilcorp.com, extracting emails and other goodies
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
# quick email enum with free APIs + scraping
bbot -t evilcorp.com -p email-enum
# pair with subdomain enum + web spider for maximum yield
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
# run a light web scan against www.evilcorp.com
bbot -t www.evilcorp.com -p web
# run a heavy web scan against www.evilcorp.com
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
# everything everywhere all at once
bbot -t evilcorp.com -p kitchen-sink
# roughly equivalent to:
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:
baddns:
enable_references: True
dnsbrute:
recursive_mutations: true
dnscommonsrv:
recursive_mutations: true
webbrute:
avoid_wafs: False
wayback:
urls: True
parameters: True
archive: True
Нажмите на график ниже, чтобы изучить внутренний механизм 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-бот
BBOT Discord Bot, который отвечает на команду /scan. Сканируйте интернет прямо из вашего Discord-сервера!
BBOT принимает неограниченное количество целей через -t. Вы можете указать цели либо напрямую в командной строке, либо в файлах (или и так, и так!):
bbot -t evilcorp.com evilcorp.org 1.2.3.0/24 -p subdomain-enum
Целями могут быть любые из следующих:
evilcorp.com)1.2.3.4)1.2.3.0/24)192.168.0.1:80)https://www.evilcorp.com)bob@evilcorp.com)ORG:evilcorp)USER:bobsmith)FILESYSTEM:/tmp/asdf)MOBILE_APP:https://play.google.com/store/apps/details?id=com.evilcorp.app)Для получения дополнительной информации см. раздел Цели. Чтобы узнать, как BBOT обрабатывает область видимости, см. раздел Область видимости (Scope).
Аналогично Amass или Subfinder, BBOT поддерживает API-ключи для различных сторонних сервисов, таких как SecurityTrails и т.д.
Стандартный способ сделать это — ввести ваши API-ключи в ~/.config/bbot/bbot.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
Подробности см. в разделе Конфигурация.
- [Начало работы](https://www.blacklanternsecurity.com/bbot/Stable/)
- [Как это работает](https://www.blacklanternsecurity.com/bbot/Stable/how_it_works)
- [Сравнение с другими инструментами](https://www.blacklanternsecurity.com/bbot/Stable/comparison)
- **Сканирование**
- [Обзор сканирования](https://www.blacklanternsecurity.com/bbot/Stable/scanning/)
- **Пресеты**
- [Обзор](https://www.blacklanternsecurity.com/bbot/Stable/scanning/presets)
- [Список пресетов](https://www.blacklanternsecurity.com/bbot/Stable/scanning/presets_list)
- [События](https://www.blacklanternsecurity.com/bbot/Stable/scanning/events)
- [Вывод](https://www.blacklanternsecurity.com/bbot/Stable/scanning/output)
- [Советы и рекомендации](https://www.blacklanternsecurity.com/bbot/Stable/scanning/tips_and_tricks)
- [Продвинутое использование](https://www.blacklanternsecurity.com/bbot/Stable/scanning/advanced)
- [Конфигурация](https://www.blacklanternsecurity.com/bbot/Stable/scanning/configuration)
- [Проверка сканирования](https://www.blacklanternsecurity.com/bbot/Stable/scanning/scan_sanity)
- **Модули**
- [Список модулей](https://www.blacklanternsecurity.com/bbot/Stable/modules/list_of_modules)
- [Внутренние модули](https://www.blacklanternsecurity.com/bbot/Stable/modules/internal_modules)
- [Nuclei](https://www.blacklanternsecurity.com/bbot/Stable/modules/nuclei)
- [Wayback](https://www.blacklanternsecurity.com/bbot/Stable/modules/wayback)
- [Пользовательские правила YARA](https://www.blacklanternsecurity.com/bbot/Stable/modules/custom_yara_rules)
- [Lightfuzz](https://www.blacklanternsecurity.com/bbot/Stable/modules/lightfuzz)
- [Webbrute](https://www.blacklanternsecurity.com/bbot/Stable/modules/webbrute)
- **Миграция**
- [Изменения, ломающие обратную совместимость в версии 2.x → 3.0](https://www.blacklanternsecurity.com/bbot/Stable/migration/3.0_breaking_changes)
- **Разное**
- [Участие в разработке](https://www.blacklanternsecurity.com/bbot/Stable/contribution)
- [История выпусков](https://www.blacklanternsecurity.com/bbot/Stable/release_history)
- [Устранение неполадок](https://www.blacklanternsecurity.com/bbot/Stable/troubleshooting)
Некоторые из лучших модулей BBOT были написаны сообществом. BBOT постоянно совершенствуется; с каждым днём он становится всё мощнее!
Мы приветствуем ваш вклад. Не только в коде, но и идеями! Если у вас есть идея для новой функции, пожалуйста, сообщите нам в разделе Обсуждения. Если вы хотите собственноручно попробовать свои силы, см. раздел Участие в разработке. Там вы найдёте инструкции по настройке и простое руководство по написанию модуля для BBOT. У нас также есть обширная Документация для разработчиков.
Благодарим этих замечательных людей за вклад в BBOT! :heart:
Особая благодарность: