BBOT: Rekurzív felderítés a külső támadási felület feltérképezéséhez
Hogyan működik a blacklanternsecurity/bbot event-graph modellje, miben múlja felül az Amass és Subfinder pipeline-okat, és egy passive scan recept, amit tíz perc alatt le tudsz futtatni.
OSINT-eszközök mélyreható bemutatása
Kinek: Biztonsági szakemberek
A probléma, amelyet a BBOT megold
Egyetlen domain gyorsan szétgombolyodik: subdomainok, ASN-ek, tanúsítványrekordok, kiszivárgott hitelesítő adatok, felhőbucketek. Tucat egycélú eszközt összeilleszteni, hogy minden szálat kövessünk, lassú, hibalehetőségekkel teli és nehezen reprodukálható. A blacklanternsecurity/bbot (BBOT) egy nyílt forráskódú felderítési keretrendszer, amely egy eltérő alapelvre épül — az új megállapításokat visszatáplálja a futó vizsgálatba, rekurzívan, amíg az eszközgráf stabilizálódik.
Az írás pillanatában közel 10 000 GitHub-csillag. A projekt saját magát „a hackerek rekurzív internetszkennereként” jellemzi. Ez a megfogalmazás találó.
A BBOT belső működése
Az eseménygráf-modell
Minden feltárt adat — hostname, IP-cím, nyitott port, URL — egy típusos eseménnyé válik. A modulok eseményeket egyaránt termelnek és dolgoznak fel. Amikor bármely modul DNS_NAME eseményt bocsát ki, minden DNS_NAME bemenetet fogadó modul automatikusan megkapja azt. Adj meg egy célpont domaint, és a gráf kifelé terjeszkedik: egy új subdomain tanúsítványlekérést, HTTP probing-ot és további DNS-feloldást vált ki, amelyek mindegyike újabb subdomaineket hozhat felszínre. A ciklus addig fut, amíg egyetlen modulnak sincs feldolgozatlan új bemenete.
Ez architektúrálisan különbözik a pipeline-alapú eszközöktől. A Subfinder → httpx → Nuclei balról jobbra fut, majd megáll. A BBOT addig fut, amíg a gráf ki nem merül.
Modulkategóriák
A hivatalos dokumentáció a modulokat az alábbi csoportokba sorolja:
- Subdomain-felsorolás — certificate transparency (crt.sh), DNS-adathalmazok (Chaos, passzív források), aktív brute-force
- Portszkennelés — natív Nmap-integráció, beépített gyors sweep szkenner
- Web — HTTP probing, képernyőkép-készítés, spidering, Wappalyzer-alapú technológiai ujjlenyomat-felismerés
- Felhő — S3 bucket-permutáció, Azure blob-felsorolás, GCP-erőforrás-felderítés
- OSINT — HaveIBeenPwned, GitHub secret scanning, LinkedIn alkalmazotti felsorolás, Shodan, Censys, Hunter.io
- Riportálás — JSON, CSV, Neo4j, beépített webes felhasználói felület
A passzív és aktív modulok egyértelműen meg vannak jelölve a dokumentációban. Ez a megkülönböztetés a hatókör szempontjából kulcsfontosságú.
Presetek
A modulok kézi felsorolása helyett a BBOT presetek formájában érkezik — gondosan összeállított csomagokként a leggyakoribb munkafolyamatokhoz. A subdomain-enum a teljes passive DNS-csomagot és az aktív feloldást is behúzza. A web-basic HTTP probing-ot és technológiai ujjlenyomat-felismerést rétegez rá. A presetek egymásra rétegezhetők, és saját preset is írható YAML-ban — így szervezetspecifikus API-kulcsokat, hatókörlistákat és modulválasztásokat foglalhatsz reprodukálható szkennelési profilba.
Hol illik be a BBOT
A felderítésnek három szakasza van: vetés (amit te birtokolsz), felfedezés (teljes támadási felület), elemzés (az adatok értelmezése). A legtöbb eszköz egyetlen szakaszra specializálódik. A BBOT mindhárom szakaszt lefedi, de a felfedezésben a legerősebb.
| Szakasz | A BBOT szerepe | Kiegészítő eszközök |
|---|---|---|
| Vetés | Domaineket, IP-ket, CIDR-eket, ASN-eket fogad el | Eszközleltár-rendszerek, belső CMDB |
| Felfedezés | Rekurzív bővítés DNS-en, weben, felhőn, OSINT-on keresztül | Shodan/Censys nyers keresés, Amass |
| Elemzés | JSON/Neo4j kimenet, beépített webes felület | BloodHound, Maltego, egyedi SIEM-lekérdezések |
A Neo4j kimenet az a pont, ahol a BBOT az elemzés szakaszában igazán megmutatja az értékét. Amint egy vizsgálat adatai gráfadatbázisba kerülnek, a Cypher-lekérdezések egyszerűvé válnak: mely subdomainek osztanak meg TLS-tanúsítványt a fő domainnel? vagy mely IP-k oldódnak fel ötnél több különböző hosztnévre? Ezekre a kérdésekre lapos fájlokból fájdalmas választ adni.
BBOT vs. alternatívák
BBOT vs. Amass
Az Amass mélyebb DNS-fókuszú logikával rendelkezik, és zökkenőmentesen illeszkedik automatizált pipeline-okba. Ha a cél egy tiszta subdomain-összeírás, és már van egy működő Amass munkafolyamatod, nincs nyomós ok az átállásra. A BBOT előnye a szélességben rejlik: egyetlen menetben jutni el a „milyen subdomainek léteznek” kérdéstől a „mi fut rajtuk, és hol van még felhős kitettségük a szervezetnek” kérdésig. Erre a felhasználási esetre a BBOT hatékonyabb.
BBOT vs. Subfinder + httpx + Nuclei
Ez a pipeline gyors, moduláris, és jól illeszkedik a bug bounty munkafolyamatokhoz. A BBOT nem helyettesíti a Nuclei sablonkönyvtárát — azokat CVE-ellenőrzésekre és alkalmazás-ujjlenyomat-vételre fejlesztették, és a BBOT ezzel a lefedettséggel nem ér fel. A két megközelítés kiegészíti egymást: BBOT a rekurzív felületfeltáráshoz, Nuclei a kapott URL-lista ellen célzott sebezhetőség-vizsgálathoz.
BBOT vs. kereskedelmi ASM-platformok
A Censys ASM, a CyCognito és hasonló termékek folyamatos monitorozást, üzleti kontextus-jelölést és felügyelt integrációkat kínálnak. Ugyanakkor jelentős, felhasználónkénti költséggel járnak. Ad-hoc megbízásoknál, red team gyakorlatoknál vagy szűkös büdzsével futó programoknál a BBOT ugyanennek a felfedezési képességnek jelentős részét lefedi. A kompromisszum az üzemeltetési beállítási idő és a licencköltség között feszül — a rendszeres külső recon-t végző legtöbb csapat számára ez ésszerű csere.
Passzív Szkennelési Recept
A következő leírás kizárólag passzív modulokat alkalmaz. Az aktív felderítés saját infrastruktúrán kívüli rendszerek ellen – írásos engedély nélkül – a legtöbb jogrendszerben illegális.
Előfeltételek
- Python 3.9+
pipxaz izolált telepítéshez (vagy egy venv)- Opcionális: API-kulcsok a Shodan, Censys és SecurityTrails szolgáltatásokhoz a
~/.config/bbot/secrets.ymlfájlban
Telepítés
pipx install bbot
bbot --version
Passzív Subdomain Felsorolás
bbot -t example.com -p subdomain-enum -rf passive -o ~/bbot-output/example --silent
-t example.com— a célpont seed domain-p subdomain-enum— subdomain felsorolási preset-rf passive— kizárólag passzív modulok, közvetlen kapcsolat nélkül a célrendszerekkel-o ~/bbot-output/example— kimeneti könyvtár--silent— a folyamatjelző sáv elrejtése
Egy közepes méretű szervezet domainjén ez három-hét perc alatt fut le, az API rate limittektől függően.
Kimenet Áttekintése
ls ~/bbot-output/example/
# output.ndjson output.txt subdomains.txt scan.log
A subdomains.txt tartalmazza a deduplikált hosztnévlistát. A output.ndjson minden eseményt soronkénti JSON formátumban tárol:
cat ~/bbot-output/example/output.ndjson | jq 'select(.type=="DNS_NAME") | .data'
HTTP Vizsgálat Hozzáadása (Kizárólag Engedélyezett Célpontokon)
bbot -t example.com -p subdomain-enum web-basic -o ~/bbot-output/example-web
HTTP vizsgálatot, technológiai ujjlenyomat-felvételt és alapszintű pókozást ad hozzá. A rekurzív motor felveszi az URL-eket, visszavezeti őket a DNS-feloldáson, és feltárja az oldalak tartalmában vagy HTTP-fejlécekben hivatkozott további subdomaineket.
Neo4j Export (Opcionális)
bbot -t example.com -p subdomain-enum -om neo4j
A hivatalos dokumentáció részletesen ismerteti a Neo4j modul konfigurációját, a kapcsolati karakterlánc formátumát és a Cypher lekérdezési mintákat.
Üzemeltetési megjegyzések
A hatókör-kúszás valós jelenség. A BBOT a feltárt eszközöket kifelé követi. Egy szülődomainre indított szkennelés felszínre hozhat harmadik feles infrastruktúrát, felhőszolgáltatókat és SaaS-eszközöket, amelyek technikailag kapcsolódnak a célponthoz, de a megbízás hatókörén kívül esnek. Állíts össze egy engedélylistát:
# ~/.config/bbot/bbot.yml
scope_search_distance: 1
scope_dns_search_distance: 2
whitelist:
- example.com
- 203.0.113.0/24
Ha ezt kihagyod egy nagy szervezeti domainnél, könnyen 40 000 eseménnyel végzed, amelyek fél internetet lefednek.
API-kulcsok kezelése. Shodan, Censys, SecurityTrails, GitHub — a legjobb passzív források mind kulcsokat igényelnek. Tárold őket a ~/.config/bbot/secrets.yml fájlban, és kezeld a fájlt ennek megfelelően. A dokumentáció felsorolja, mely modulokhoz szükséges kulcs, és hol szerezheted be őket.
Zajprofil. A kizárólag passzív szkennelések nem generálnak forgalmat a célpont infrastruktúráján. Az aktív modulok naplóbejegyzéseket hagynak a célrendszereken — ez engedélyezett megbízásoknál elvárható, de a konfiguráció modulonkénti sebességkorlátozási beállításokat is kínál, ha szükséges csökkenteni az agresszivitást.
Verdikt
A BBOT valódi hiányt tölt be. Nem minden feladathoz ez az optimális választás — egy kisebb hatókörű gyors subdomain-lista nem igényel teljes BBOT-futást, és template-alapú sebezhetőség-lefedettség terén a Nuclei veretlen —, de külső támadási felület feltérképezésénél, ahol túl kell lépni a DNS-en, a BBOT rekurzív eseménygráfja és széleskörű modulkönyvtára nehezen vert az open-source térben.
A konfigurációs rendszer jól dokumentált, a preset-modell pedig sekélyen tartja a belépési küszöböt. Szánj egy délutánt a YAML-konfigra és a Neo4j kimeneti modulra. Amikor először futtatsz Cypher-lekérdezést egy scan eredményein, és felszínre kerülnek olyan certificate-megosztási kapcsolatok, amelyeket egy lapos subdomain-lista teljes egészében kihagyott volna — az befektetés megtérül.
Közzétevői nyilatkozat: Nincsenek affiliate-linkek. Minden hivatkozott eszköz ingyenes, nyílt forráskódú szoftver.