
bbot v3.0.2
الماسح الضوئي التكراري للإنترنت للقراصنة. 🧡
BEE·bot هو ماسح ضوئي متعدد الأغراض مستوحى من Spiderfoot، صُمم لأتمتة الاستطلاع (Recon) ومكافآت الثغرات (Bug Bounties) وإدارة سطح الهجوم (ASM)!
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 على تغييرات جذرية (breaking changes) في واجهة سطر الأوامر (CLI) والإعدادات المسبقة والوحدات والأحداث وواجهة Python البرمجية. راجع دليل الترحيل من 2.x إلى 3.0 (المصدر) قبل الترقية.
نصيحة للأداء: محلل DNS الخاص بـ BBOT (blastdns) يشغّل عدة خيوط (threads) لكل محلل في
/etc/resolv.conf. إضافة المزيد من المحللات غير المفلترة يسرّع عمليات الفحص بشكل كبير. راجع نموذج resolv.conf والنصائح والحيل للتفاصيل.
أوامر أمثلة
1) أداة العثور على النطاقات الفرعية
مصادر 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.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% من الأدوات الأخرى. وكلما كان النطاق أكبر، كان الفارق أكبر. لمعرفة كيف يكون ذلك ممكنًا، راجع كيف يعمل.

2) زاحف الويب
# 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
3) جامع عناوين البريد الإلكتروني
# 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
4) ماسح الويب
# 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
5) كل شيء في كل مكان دفعة واحدة
# 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:
dnsbrute:
recursive_mutations: true
dnscommonsrv:
recursive_mutations: true
webbrute:
avoid_wafs: False
wayback:
urls: True
parameters: True
archive: True
كيف يعمل
انقر على الرسم البياني أدناه لاستكشاف الآلية الداخلية لـ BBOT.
وحدات الإخراج
...والمزيد!
BBOT كمكتبة بايثون
متزامن (Synchronous)
from bbot.scanner import Scanner
if __name__ == "__main__":
scan = Scanner("evilcorp.com", presets=["subdomain-enum"])
for event in scan.start():
print(event)
غير متزامن (Asynchronous)
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 يستجيب لأمر /scan. امسح الإنترنت ضوئيًا من داخل خادم Discord الخاص بك براحة تامة!

نظرة عامة على الميزات
- دعم أهداف متعددة
- لقطات شاشة للويب
- مجموعة من وحدات الويب الهجومية
- تحويرات النطاقات الفرعية المدعومة بتقنية معالجة اللغة الطبيعية (NLP)
- إخراج أصلي إلى Neo4j (والمزيد)
- تثبيت تلقائي للتبعيات باستخدام Ansible
- البحث في كامل سطح الهجوم بقواعد YARA مخصصة
- Python API + وثائق المطورين
الأهداف
يقبل BBOT عددًا غير محدود من الأهداف عبر -t. يمكنك تحديد الأهداف إما مباشرة في سطر الأوامر أو في ملفات (أو كلاهما!):
bbot -t evilcorp.com evilcorp.org 1.2.3.0/24 -p subdomain-enum
يمكن أن تكون الأهداف أيًا مما يلي:
- اسم DNS (
evilcorp.com) - عنوان IP (
1.2.3.4) - نطاق IP (
1.2.3.0/24) - منفذ TCP مفتوح (
192.168.0.1:80) - رابط URL (
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)، راجع النطاق.
مفاتيح API
على غرار Amass أو Subfinder، يدعم BBOT مفاتيح API لمختلف خدمات الجهات الخارجية مثل SecurityTrails وغيرها.
الطريقة القياسية للقيام بذلك هي إدخال مفاتيح API الخاصة بك في ~/.config/bbot/secrets.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
للتفاصيل، راجع الإعدادات.
قوائم كاملة بالوحدات والعلامات وغيرها
- قائمة كاملة بـالوحدات.
- قائمة كاملة بـالعلامات (Flags).
- قائمة كاملة بـالإعدادات المسبقة (Presets).
- قائمة كاملة بـخيارات الإعدادات العامة.
- قائمة كاملة بـخيارات إعدادات الوحدات.
التوثيق
- دليل المستخدم
- الأساسيات
- المسح الضوئي
- الوحدات
- الترحيل
- متنوع
- دليل المطورين
المساهمة
بعض أفضل وحدات BBOT كُتبت بواسطة المجتمع. يتم تحسين BBOT باستمرار؛ وكل يوم يصبح أكثر قوة!
نرحب بالمساهمات. ليس فقط الكود، بل الأفكار أيضًا! إذا كانت لديك فكرة لميزة جديدة، فيرجى إخبارنا في المناقشات. إذا كنت ترغب في البدء عمليًا، فراجع المساهمة. ستجد هناك تعليمات الإعداد ودروسًا بسيطًا حول كيفية كتابة وحدة BBOT. لدينا أيضًا توثيق مطورين شامل.
شكرًا لهؤلاء الأشخاص الرائعين لمساهمتهم في BBOT! ❤️
شكر خاص لـ:
- @TheTechromancer لإنشائه BBOT
- @liquidsec لعمله الموسّع على ميزات اختراق الويب في BBOT، بما في ذلك badsecrets وbaddns
- Steve Micallef (@smicallef) لإنشائه Spiderfoot
- @kerrymilan لخبرته في Neo4j وAnsible
- @domwhewell-sage لعائلته من وحدات سرقة الكود الرائعة
- @aconite33 و@amiremami لاختباراتهما الصارمة
- Aleksei Kornev (@alekseiko) لمنحنا ملكية مستودع bbot على Pypi <3

