
해커를 위한 재귀적 인터넷 스캐너. 🧡
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 및 팁과 요령을 참조하세요.
수동 API 소스 및 대상별 서브도메인 변이를 이용한 재귀적 DNS 무차별 대입
# evilcorp.com의 서브도메인 찾기
bbot -t evilcorp.com -p subdomain-enum
# 수동 소스만 사용
bbot -t evilcorp.com -p subdomain-enum -rf passive
subdomain-enum.ymldescription: 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% 더 많은 서브도메인을 찾습니다. 도메인이 클수록 차이가 더 큽니다. 이것이 어떻게 가능한지 알아보려면 작동 방식을 참조하세요.

# evilcorp.com을 크롤링하여 이메일 등 수집
bbot -t evilcorp.com -p spider
spider.ymldescription: 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
# 무료 API + 스크래핑으로 빠른 이메일 수집
bbot -t evilcorp.com -p email-enum
# 최대 수집량을 위해 서브도메인 열거 + 웹 스파이더와 함께 사용
bbot -t evilcorp.com -p email-enum subdomain-enum spider
email-enum.ymldescription: Enumerate email addresses from APIs, web crawling, etc.
flags:
- email-enum
output_modules:
- emails
# www.evilcorp.com에 대해 가벼운 웹 스캔 실행
bbot -t www.evilcorp.com -p web
# www.evilcorp.com에 대해 무거운 웹 스캔 실행
bbot -t www.evilcorp.com -p web-heavy
web.ymldescription: Quick web scan
include:
- iis-shortnames
flags:
- web
web-heavy.ymldescription: Aggressive web scan
include:
# include the web preset
- web
flags:
- web-heavy
# 모든 것을 한 번에
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.ymldescription: 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의 내부 작동 방식을 살펴보세요.
...그 외 더 많은 기능!
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())
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)[email protected])ORG:evilcorp)USER:bobsmith)FILESYSTEM:/tmp/asdf)MOBILE_APP:https://play.google.com/store/apps/details?id=com.evilcorp.app)자세한 내용은 대상을 참조하세요. BBOT가 범위를 처리하는 방법을 알아보려면 범위를 참조하세요.
Amass나 Subfinder와 유사하게, BBOT는 SecurityTrails 등 다양한 타사 서비스의 API 키를 지원합니다.
표준 방법은 ~/.config/bbot/secrets.yml 에 API 키를 입력하는 것입니다. 여러 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에 기여해 주신 이 놀라운 분들께 감사드립니다! ❤️
특별히 감사드립니다: