
해커를 위한 재귀적 인터넷 스캐너. 🧡
https://github.com/blacklanternsecurity/bbot/assets/20261699/e539e89b-92ea-46fa-b893-9cde94eebf81
VivaGraphJS로 시각화한 실시간 BBOT 스캔
# stable version
pipx install bbot
# bleeding edge (dev branch)
pipx install --pip-args '\--pre' bbot
Docker를 포함한 더 많은 설치 방법은 Getting Started를 참조하세요
2.x에서 업그레이드하시나요? BBOT 3.0에는 CLI, 프리셋, 모듈, 이벤트 및 Python API에 대한 주요 변경 사항이 포함되어 있습니다. 업그레이드 전에 2.x → 3.0 마이그레이션 가이드(소스)를 확인하세요.
속도 팁: BBOT의 DNS 리졸버(blastdns)는
/etc/resolv.conf의 리졸버마다 여러 스레드를 생성합니다. 필터링되지 않은 리졸버를 더 추가하면 스캔 속도가 크게 빨라집니다. 자세한 내용은 샘플 resolv.conf와 팁과 요령을 참조하세요.
패시브 API 소스와 타겟별 서브도메인 변형을 이용한 재귀적 DNS 무차별 대입(brute-force).
# 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.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% 더 많은 서브도메인을 찾아냅니다. 도메인이 클수록 그 차이는 더 커집니다. 이것이 어떻게 가능한지 알아보려면 작동 방식을 참조하세요.

# crawl evilcorp.com, extracting emails and other goodies
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
# 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.ymldescription: 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.ymldescription: Quick web scan
include:
- iis-shortnames
flags:
- web
web-heavy.ymldescription: 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.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이 범위(scope)를 처리하는 방법을 알아보려면 범위를 참조하세요.
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은 지속적으로 개선되고 있으며, 나날이 더 강력해지고 있습니다!
코드뿐만 아니라 아이디어도 환영합니다! 새로운 기능에 대한 아이디어가 있다면 Discussions에서 알려주세요. 직접 참여하고 싶다면 기여를 참조하세요. 여기에서 BBOT 모듈 작성 방법에 대한 설정 지침과 간단한 튜토리얼을 찾을 수 있습니다. 또한 방대한 개발자 문서도 제공됩니다.
BBOT에 기여해 주신 놀라운 분들께 감사드립니다! ❤️
특별히 감사드립니다: