
Orbis ist ein vollumfängliches, automatisiertes intelligentes Toolkit für externe Angriffsflächen.
Orbis kartiert automatisch die gesamte internetfähige Angriffsfläche Ihres Unternehmens: Subdomains, offene Ports, Webanwendungen, Cloud-Infrastruktur, TLS-Zertifikate, E-Mail-Posture, offengelegte Secrets, Login-Panels und mehr. Anschließend bewertet und rangiert es jedes entdeckte Asset, sodass Sie genau wissen, worauf Sie sich zuerst konzentrieren müssen.
Sie geben eine Liste von Domains ein. Es erledigt den Rest.
Sie geben eine Liste von Domains ein. Es erledigt den Rest.``` google.com → Frogy 2.0 discovers: apple.com • 2,000+ subdomains (passive + active enumeration) example.com • Every open port across all live hosts • Every web application — status, tech stack, redirects • Login panels, exposed .env files, leaked JS secrets • TLS certificates, cipher strengths, expiry dates • Subdomain takeover candidates (55+ service fingerprints) • Cloud asset inventory (AWS / Azure / GCP / Cloudflare) • SPF / DKIM / DMARC / DNSSEC / BIMI / MTA-STS / DANE • Third-party vendor dependencies across all surfaces • Interactive asset relationship graph → Risk-scored, prioritised, searchable HTML report
## Pipeline-Übersicht
Frogy 2.0 führt eine **31-schrittige Bash-Pipeline** gegen Ihre Ziele aus – vollautomatisiert von der Erkennung bis zum Bericht, alle Phasen werden bedingungslos ausgeführt.
| Phase | Schritte | Was passiert |
|-------|---------|--------------|
| **Seed-Erweiterung** | 1–3 | crt.sh org filter · ARIN RDAP ASN→CIDR · TLD-Scan · Marken-Variation · SEC EDGAR · WhoisXML-Registrant-Pivot (API-optional) |
| **Entdeckung** | 4–9 | Subfinder + Assetfinder + crt.sh + GAU + Wayback CDX + RapidDNS + OTX/VT (API-optional) → Zusammenführen + Ausschlussfilter |
| **DNS & Takeover** | 10–11 | DNSX vollständige Auflösung (A/AAAA/CNAME/MX/NS/SPF/DMARC/DKIM/DNSSEC/BIMI/MTA-STS/DANE) · CDN/Cloud-Tier-Klassifizierung · 55+ Dangling-DNS-Fingerabdrücke |
| **Port + Web** | 12–16 | IPv6-Entdeckung · Naabu-Portscan (~500 Ports, CDN-bewusst) · Web-Port-URL-Erweiterung · HTTPX-Fingerprinting · Shodan-Banner-Anreicherung (API-optional) |
| **Crawl + JS** | 18–19 | Katana Deep Crawl (JS-bewusst, Tiefe 3) → JS-Datei-Analyse (Geheimnisse, Endpunkte, SDK-Referenzen) |
| **Sicherheitsanalyse** | 21–23 | Login-Panel-Erkennung · TLS/Chiffre-Bewertung · Sicherheitsheader-Compliance · CORS / BIMI / MTA-STS / DANE / WHOIS-strukturierte Felder |
| **Intelligenz** | 24–29 | SaaS-Mandanten · Drittanbieter-Intelligenz (100+ Muster) · API-Oberfläche · Kollegen-Identifikation · GitHub-Org-Oberfläche · Favicon-Hash-Clustering |
| **Cloud** | 30 | Cloud-Infrastruktur-Inventar + WAF-Schutzstatus · Prüfung auf offene Speicher · Bucket-Permutation |
| **Bewertung + Bericht** | 31 | Drei-Eimer-Risikobewertung (70+ Signale) → Eigenständiger HTML-Bericht mit 11 Registerkarten |
---
## Hauptmerkmale
<details>
<summary><b>Subdomain-Erkennung & DNS-Intelligenz</b></summary>
- Aggregation aus **Subfinder**, **Assetfinder**, **crt.sh**, **GAU** (Wayback Machine), RapidDNS, OTX, VirusTotal
- Vollständige DNS-Auflösung: A, AAAA, CNAME, MX, NS, SPF, DMARC, DKIM, DNSSEC
- BIMI-, MTA-STS-, DANE/TLSA-Einträge pro Domain
- WHOIS: Registrar, Erstellungsdatum, Ablaufdatum, RegistrantOrg, RegistrantLand pro Domain
- **Projektbezogene Ausschlussliste** – als nicht zum Umfang gehörig markierte Assets werden vor der DNS-Auflösung und bei allen zukünftigen Rescans gefiltert
</details>
<details>
<summary><b>Web-Fingerprinting mit Weiterleitungs-Intelligenz</b></summary>
- HTTPX mit `-follow-redirects` erfasst **Metadaten des letzten Hops** (nicht die Weiterleitungsseite)
- **Weiterleitungs-Deduplizierung** in Berichten: HTTP:80 wird unterdrückt, wenn HTTPS:443 für denselben Host existiert – vermeidet Doppelzählung
- Technologie-Stack, Webserver + Version, CDN/WAF, Content-Length, Statuscodes
</details>
<details>
<summary><b>Subdomain-Übernahmeerkennung</b></summary>
- 55+ Dienst-Fingerabdrücke: GitHub Pages, AWS S3, Heroku, Netlify, Vercel, Azure, Fastly, Fly.io und mehr
- Verifiziert durch Abruf des erwarteten Fehlerseiten-Bodys
- Klassifizierung: **Bestätigt** / **Potentiell** / **Sicher**
- Übernahmestatus fließt direkt in den Risikoscore ein
</details>
<details>
<summary><b>TLS/SSL-Tiefenanalyse</b></summary>
- Chiffre-Suite-Prüfung: markiert NULL, ANON, RC4, DES, 3DES, CBC
- Protokollversion (TLS 1.3 bis hinab zu SSL 3.0)
- Erkennung selbstsignierter Zertifikate, Wildcard-SAN-Erkennung, fehlgeschlagene Handshakes
- Zertifikatsablauf mit farbcodierter Dringlichkeit (abgelaufen → innerhalb 7 Tagen → innerhalb 30 Tagen → ok)
- **Schlüsselalgorithmus** (RSA / ECDSA) und **Schlüsselgröße** (farbcodiert: rot < 2048, gelb = 2048, grün ≥ 4096 / jedes ECDSA)
- **CA-Typ**-Erkennung: Let's Encrypt vs. kostenpflichtige CA
- **Zertifikatsnote A–F** (0–100) pro Zertifikat – TLS-Version + Chiffre + Ablauf + Schlüssel + selbstsigniert + Wildcard
</details>
<details>
<summary><b>Mail-Infrastruktur-Kartierung</b></summary>
- Pro-Domain **MX-Eintrags**-Sammlung + automatische Mail-Anbietererkennung (Google Workspace, Microsoft 365, ProofPoint, Mimecast, usw.)
- **SPF / DKIM / DMARC / DNSSEC** pro Domain ausgewertet
- **BIMI**-Eintragserkennung, **MTA-STS**-Modus (enforce/testing/none), **DANE/TLSA**-Einträge (Ports 443 und 25)
- Eigener **Mail-Infrastruktur**-Berichtstab mit pro-Domain **E-Mail-Risikoscore 0–100**
</details>
<details>
<summary><b>Domain-Intelligenz-Anreicherung</b></summary>
- Strukturierte **WHOIS**-Felder pro Domain: Registrar, DomainCreated, DomainExpires, DomainAge, RegistrantOrg, RegistrantCountry
- **NS-Cluster-Abzeichen** – gruppiert Domains, die dieselben Nameserver teilen
- **Shodan-Dienstbanner** in der IP-Adresstabelle (Port · Protokoll · Dienst-Pills)
</details>
<details>
<summary><b>Login-Oberflächenerkennung</b></summary>
- Multi-Signal-Heuristiken: Passwort/Benutzernamenfelder, CSRF-Tokens, HTTP 401/403/407, JS-Auth-Bibliotheken, mehrsprachige Anmelde-Keywords, CAPTCHA-Indikatoren
- Strukturierte JSON-Ausgabe mit **Login-Panel-Typ** (phpMyAdmin, Jenkins, Kubernetes Dashboard, Grafana, CMS-Admin, Remote-Access-Gateways)
- Typ wird von der Bewertungsmaschine verwendet, um höhere Strafen für hochwertige Panels zu vergeben
</details>
<details>
<summary><b>Cloud-Infrastruktur-Kartierung</b></summary>
- Umfasst AWS, Azure, GCP, Cloudflare, Vercel, Netlify, Fastly, Heroku, Fly.io, DigitalOcean, Hetzner
- Ressourcentyp-Klassifizierung: CDN, Load Balancer, Objektspeicher, Managed DB, API-Gateway, Serverless
- Schutzstatus: WAF/CDN-geschützt vs. direkte Ursprungsfreigabe
</details>
<details>
<summary><b>Crawl-basierte Komplexitätsbewertung</b></summary>
- Katana durchsucht jede Live-Seite (Tiefe 3)
- **Deduplizierte eindeutige Seitenanzahl** pro Endpunkt: numerische Pfadsegmente normalisiert (`/users/123` → `/users/{id}`), Query-Strings entfernt
- Logarithmisch skalierter Score-Beitrag (+2 bis +12) – misst die tatsächliche Anwendungskomplexität, keine URL-Anzahlinflation
</details>
<details>
<summary><b>Drittanbieter-Intelligenz</b></summary>
- Multi-Quellen-Sammlung: CSP-Header, Katana-JS-Analyse, MX/SPF/CNAME-Einträge, HTTP-Response-Header
- **100+ Anbietermuster** klassifizieren in Analytics, CDN, Auth/Identity, Payment, Marketing, Cloud, Monitoring und mehr
- Eigener **Drittanbieter**-Berichtstab mit Zusammenfassung pro Kategorie und vollständiger Anbieterdetailtabelle
</details>
<details>
<summary><b>Asset-Topologie-Graph</b></summary>
- Interaktiver **D3 v7 Force-Directed-Graph** im Bericht – keine externen Abhängigkeiten
- **8 Knotentypen**: Domain · IP · ASN · NS · MX · Cloud · TLS-Zertifikat · Anbieter
- **11 Kantentypen**: DNS · CNAME · NS · MX · ASN · Cloud · TLS-SAN · Anbieter · Übernahme · Weiterleitung · Favicon
- Klicken Sie auf einen Knoten für Ego-Netzwerk-Highlight; filtern nach Knotentyp oder Kantentyp; suchen nach Name
</details>
<details>
<summary><b>Interaktives Berichts-UI</b></summary>
- **Anklickbare Scorekarte pro Endpunkt** – klicken Sie auf einen Angriffsflächen-Score, um eine Aufschlüsselung jedes beitragenden Signals zu sehen
- **Spalten-Sichtbarkeitsumschalter** pro Tabelle – Spalten ein-/ausblenden, Status in localStorage gespeichert
- **Bereichs-Intelligenz-Schublade** – ⓘ-Schaltfläche in jedem Bereich öffnet eine analystemgeschriebene Erklärung mit roten Flaggen, auf die zu achten ist
- **Spalten-Micro-Tooltips** – fahren Sie mit der Maus über den `?`-Chip in einem beliebigen Spaltenkopf für eine einzeilige Definition und den Anwendungsfall für Angreifer
- **9-Diagramm-Analyse-Raster** in der Übersicht
- **Dunkles / Helles Thema** – geteilt zwischen Dashboard und Bericht
</details>
## Risikobewertung
Jeder Endpunkt wird anhand von **drei gedeckelten Eimern** (max. 100) bewertet. Der aggregierte Berichtswert ist der **Mittelwert der Top-5-Domain-Endpunkt-Scores**.
| Eimer | Deckel | Misst |
|-------|--------|-------|
| **Sensitivität** | 40 | Asset-Kritikalität, Stack-Komplexität, Datenverarbeitungs-Klassifizierung |
| **Exposition** | 35 | Direkt gefährliche oder erreichbare Angriffsflächen |
| **Hygiene** | 25 | Fehlkonfigurationen, Zertifikatszustand, Compliance-Lücken |
<details>
<summary><b>Sensitivitätssignale</b></summary>
| Signal | Punkte |
|--------|--------|
| Mitarbeiterorientiertes / internes Asset | +12 |
| Admin-/Überwachungstool im Stack (Kibana, Grafana, Jenkins, phpMyAdmin, k8s Dashboard) | +12 |
| Crawl-Oberflächengröße – eindeutige deduplizierte Seiten (logarithmisch skaliert) | bis zu +12 |
| Identitäts-/Auth-Dienst (Keycloak, Okta, Auth0, LDAP, SAML) | +8 |
| Objektspeicher-Endpunkt offengelegt | +8 |
| Fehler-/Debug-Seite öffentlich sichtbar | +8 |
| Nicht-Produktionsumgebung im Titel (dev / staging / test / UAT) | +6 |
| API-Oberfläche erkannt | +6 |
| CMS-Admin-Oberfläche (WordPress, Drupal, Magento) | +6 |
| Managed Database-Fußabdruck erreichbar | +7 |
| Geschäftskritische TLD / finanziell gethemter Pfad im Crawl | bis zu +8 |
| Hochrisiko-Drittanbieter in Verwendung | bis zu +6 |
| Cloud API / Serverless-Ressource | +5 |
| SaaS-Mandanten-Fußabdruck erkannt | +3 |
| Cloud-verwaltete Oberfläche | +3 |
| Full-Stack-Framework erkannt | +2 |
| Authentifizierungsgeschützte Oberfläche (HTTP 401) | +3 |
</details>
<details>
<summary><b>Expositionssignale</b></summary>
| Signal | Punkte |
|--------|--------|
| Offener / öffentlich zugänglicher Cloud-Speicher-Bucket | +20 |
| Login-Oberfläche über HTTP bereitgestellt | +20 |
| Authentifizierte Oberfläche (HTTPS-Login) | +12 |
| Hochwertiges Login-Panel (phpMyAdmin, Jenkins, k8s, Portainer, Grafana, Remote-Access) | +8 – +10 Bonus |
| Bestätigte Subdomain-Übernahme | +15 – +20 |
| Potentielle Subdomain-Übernahme (dangling CNAME) | +8 – +12 |
| Admin-Tool im Seitentitel sichtbar (Kibana, Grafana, Jenkins…) | +10 |
| Directory Listing aktiviert (`Index of /`) | +10 |
| Management-Port(s) offengelegt | bis zu +15 |
| Datenbank-Port(s) offengelegt | bis zu +12 |
| Offene Internetdienste (Portanzahl) | bis zu +14 |
| Eindeutige crawlbare Seiten (logarithmisch skaliert) | bis zu +12 |
| Cloud-Workload / CDN ohne WAF-Schutz | +8 – +12 |
| Infrastruktur-Management-Interface im Tech-Stack | +6 |
| TLS-Handshake-Fehler | +6 |
| HTTP 403 (Ressource existiert, durch Auth blockiert) | +4 |
| 5xx-Serverfehler | +4 |
</details>
<details>
<summary><b>Hygienesignale</b></summary>
| Signal | Punkte |
|--------|--------|
| TLS-Zertifikat abgelaufen | +20 |
| Veraltetes SSL 3.0-Protokoll | +18 |
| NULL / anonyme Chiffre-Suite | +18 |
| RC4 / DES / 3DES kaputte Chiffre | +12 |
| Legacy TLS 1.0 / 1.1 | +12 |
| CORS-Wildcard `*` | +12 |
| CORS-Null-Origin erlaubt | +10 |
| Server am Ende der Lebensdauer (Apache 2.x / nginx ≤1.17 / PHP 5–7) | +10 |
| Zertifikat läuft innerhalb von 7 Tagen ab | +12 |
| Selbstsigniertes Zertifikat | +8 |
| Fehler-/Debug-/Stacktrace-Seite öffentlich | +8 |
| CBC-Chiffre in Verwendung (BEAST / POODLE) | +6 |
| Entwicklungsserver offengelegt (Werkzeug, Flask dev) | +6 |
| Zertifikat läuft innerhalb von 30 Tagen ab | +6 |
| HTTP → HTTPS Weiterleitungsdowngrade erkannt | +6 |
| Schwacher RSA-Schlüssel < 2048 Bit | +8 |
| Fehlende Sicherheitsheader (HSTS, CSP, X-Frame-Options…) | bis zu +12 |
| DMARC nicht veröffentlicht | +6 |
| SPF nicht veröffentlicht | +4 |
| Zertifikatsgültigkeit unbekannt | +4 |
| Wildcard TLS-Zertifikat | +4 |
| DKIM nicht veröffentlicht | +3 |
| DNSSEC nicht aktiviert | +2 |
| Serverversion in Headern offengelegt | +5 |
</details>
> **Warum es wichtig ist:** Ein internes Admin-Panel mit einem abgelaufenen selbstsignierten Zertifikat, einem Wildcard-CORS-Header und Port 3306 offen erzielt einen weit höheren Score als eine statische Marketing-Seite – so überspringt Ihr Team das Rauschen und beginnt dort, wo es darauf ankommt.
# Screenshots
<img width="1236" height="747" alt="image" src="https://assets.kitploit.com/production/public/readmes/6630/ee8282f09e3b62496fcf2f8881000a92cb7e8314e8c0e64222d31601763dc64d.png" />
<img width="1217" height="755" alt="image" src="https://assets.kitploit.com/production/public/readmes/6630/a6301fc3325e2f604d2f87ad1ab436ce7bb37e1110fcb01ccc4edb8bdc06d542.png" />
<img width="1219" height="755" alt="image" src="https://assets.kitploit.com/production/public/readmes/6630/c96a4abb42a9062b07c999f15dc9ac0b8cd06be365310abfc087d1fe3460e0c7.png" />
<img width="1218" height="743" alt="image" src="https://assets.kitploit.com/production/public/readmes/6630/a372ce2eb3eb6f748f6bc8b2b9d893b6e2906765675fdf78e2ec181bc4d82146.png" />
## Schnellstart
### 1. Docker-Image erstellen```bash
git clone https://github.com/iamthefrogy/frogy2.0.git
cd frogy2.0
chmod 777 *
docker build -t frogy:latest .
Linux (nativer Docker — --network host funktioniert):```bash
docker run --rm --network host --privileged --cap-add=NET_RAW
-v "$(pwd)/output:/opt/frogy/output"
frogy:latest
**macOS / Windows** (Docker Desktop — ohne `--network host`):```bash
docker run --rm --privileged --cap-add=NET_RAW \
-p 8787:8787 \
-v "$(pwd)/output:/opt/frogy/output" \
frogy:latest
-v "$(pwd)/output:/opt/frogy/output"bewahrt den Scan-Verlauf über Container-Neustarts hinweg.
### 4. Starten Sie Ihren ersten Scan
1. Klicken Sie auf **+ Neuer Scan** — geben Sie einen Projektnamen ein und fügen Sie Ihre Domains ein (eine pro Zeile)
2. Fügen Sie optional **nicht zum Umfang gehörende Werte** im Textfeld der Ausschlussliste ein (genaue oder Suffix-Übereinstimmung)
3. Klicken Sie auf **Jetzt ausführen** oder **Zur Warteschlange hinzufügen**
4. Beobachten Sie den Live-Fortschritt: `Schritt X von 31`, verstrichene Zeit, Live-Log-Streaming
5. Wenn abgeschlossen, klicken Sie auf **Bericht →**, um den eigenständigen HTML-Bericht zu öffnen
Results are written to `output/run-<timestamp>/`.
## Berichtstour
Der generierte Bericht ist eine **eigenständige HTML-Datei** — kein Server erforderlich, in jedem Browser öffnen.
| Registerkarte | Inhalt |
|-----|----------|
| **Übersicht** | Executive-Banner (Asset-Tiers + 5 Metrikgruppen) · 9-Diagramm-Analyse-Raster · Risiko-Rangliste mit klickbarem Attack Surface Score |
| **Domain-Intelligenz** | Alle Subdomains · DNS-Einträge · NS-Cluster-Badge · Registrar · Domain-Alter · BIMI/MTA-STS/DANE-Badges · WHOIS-strukturierte Felder |
| **Anwendungs-Endpunkte** | Jeder Live-Endpunkt — Status, Titel, Technologie-Stack, Erkennung von Logins, Sicherheitsheader, CORS, CDN |
| **IP-Adressen** | Reverse DNS · ASN · Netzwerkblöcke · Geolokalisierung · Shodan-Dienstbanner (Port/Protokoll/Dienst/Version-Pills) |
| **Mail-Infrastruktur** | Pro Domain: MX-Routing · automatisch erkannte Mail-Anbieter · SPF/DKIM/DMARC/BIMI/MTA-STS/DANE-Badges · E-Mail-Risikoscore 0–100 |
| **TLS-Zertifikate** | Cipher · Protokollversion · Ablauf (farbcodiert) · SANs · Aussteller · Zertifikat-Score A–F · Schlüsselalgorithmus · Schlüsselgröße · Wildcard-Flag · Self-Signed-Flag · CA-Typ |
| **Cloud-Infrastruktur** | Asset-Karte nach Anbieter · Ressourcentyp · Schutzstatus |
| **Internet-Fußabdruck** | CIDR-Blöcke · crt.sh-Org-Subdomains · TLD-Sweep-Ergebnisse · WHOIS-Registrant-Pivot-Kandidaten |
| **SaaS-Mandanten** | SaaS-Mandanten-Fußabdruck · offene/zugängliche Cloud-Speicher-Buckets |
| **Drittanbieter** | Anbieterklassifikation aus CSP, JS-Referenzen, MX/SPF/CNAME und Antwort-Headern · 100+ Anbietermuster |
| **Asset-Topologie** | Interaktiver D3-Kraft-gesteuerter Graph · 8 Knotentypen · 11 Kantentypen · Ego-Netzwerk-Klick · Suche · Typ-Filter |
**Jede Tabelle** hat eine Volltextsuche, einen **Spaltensichtbarkeits-Umschalter** (ausgeblendete Spalten werden pro Browser gespeichert) und die Schaltfläche **ⓘ Info** erklärt, was jeder Abschnitt bedeutet und worauf zu achten ist.
## Orbis-Dashboard
Die Weboberfläche unter `localhost:8787` trägt den Namen **Orbis – Full-Spectrum Attack Surface Intelligence**.
- **Projektkarten** — Status-Badge, Live-Fortschrittsbalken (`Schritt X von 31`), verstrichene/gesamte Dauer
- **KPI-Zeile** — Gesamtprojekte · Aktive Scans · Abgeschlossen · In der Warteschlange
- **Filter-Registerkarten** — Alle / Laufend / Fertig / In Warteschlange
- **📋 Logs anzeigen** — Live-Log-Streaming-Seitenpanel, fragt alle 1,5 s bei aktiven Scans ab
- **Projektdetailseite** — vollständiger, projektspezifischer Ausführungsverlauf mit individuellem Bericht und Log-Zugriff
- **Massenoperationen** — mehrere Projekte für die Stapellöschung auswählen
- **Ändern / Erneut scannen / Abbrechen** eines beliebigen Projekts über das `···`-Kontextmenü
- **Projektspezifische Ausschlussliste** — nicht zum Umfang gehörende Assets im Modal „Neuer Scan / Ändern“ bearbeiten
- **API-Schlüssel-Panel** — optionale Anreicherungsschlüssel mit Live-Validierung und individuellen Löschen-Buttons konfigurieren
- **Dunkles / Helles Design** — wird über den `frogyTheme`-localStorage-Schlüssel gespeichert (mit Berichten geteilt)
## Technologie-Stack
| Komponente | Technologie |
|-----------|-----------|
| Web-Dashboard | Python · Flask 3.x |
| Scanner-Pipeline | Bash 5.x · 22-Schritt-Workflow |
| Subdomain-Erkennung | Subfinder · Assetfinder · crt.sh · GAU |
| DNS-Auflösung | DNSX |
| Port-Scanning | Naabu |
| Web-Fingerprinting | HTTPX |
| Web-Crawling | Katana |
| TLS-Analyse | tlsx |
| System-Dienstprogramme | jq · curl · whois · dnsutils · openssl |
| Container-Basis | Ubuntu 24.04 · Go 1.24 (Tool-Kompilierung) |
## Konfiguration
Rufen Sie das **API-Schlüssel**-Panel aus der Seitenleiste auf (`🔑 API-Schlüssel`), um zu konfigurieren:
### API-Schlüssel (optional, schalten aber zusätzliche Quellen frei)
| Schlüssel | Schaltet frei |
|-----|---------|
| `github_token` | GitHub-Org-Oberflächenerkennung, Erkennung von Geheimnissen |
| `shodan_api_key` | Shodan-Banner-Anreicherung (Nicht-HTTP-Ports) + Favicon-Hash-Clustering (MMH3) |
| `censys_api_key` | Censys-Favicon-Hash-Clustering (MD5) — einzelner Schlüssel, neues Plattformformat |
| `otx_api_key` | AlienVault OTX erweitertes passives DNS |
| `virustotal_api_key` | VirusTotal passiver Subdomain-Feed |
| `whoisxml_api_key` | WHOIS-Registrant-Pivot zur Saaterweiterung / Org-ASN-Zuordnung |
| `chaos_api_key` | ProjectDiscovery PDCP — führt `chaos` CLI pro Domain für Live-Subdomain-Ergebnisse aus |
Alle Schlüssel sind **optional** — die Pipeline läuft vollständig ohne sie, überspringt nur die Anreicherungsschritte, die einen bestimmten Schlüssel erfordern. Jeder Schlüssel hat einen **Live-Validierungstest** und einen **Löschen**-Button im API-Schlüssel-Panel.
## Technologie-Stack
| Komponente | Technologie |
|-----------|-----------|
| Web-Dashboard | Python · Flask 3.x |
| Scanner-Pipeline | Bash 5.x · 31-Schritt-Workflow |
| Subdomain-Erkennung | Subfinder · Assetfinder · crt.sh · GAU · Wayback CDX · RapidDNS · OTX · VirusTotal |
| DNS-Auflösung | DNSX (A, AAAA, CNAME, MX, NS, SPF, DMARC, DKIM, DNSSEC, BIMI, MTA-STS, DANE) |
| Port-Scanning | Naabu (CDN/Cloud-Tier-Klassifizierung über Team Cymru ASN) |
| Web-Fingerprinting | HTTPX (Follow-Redirects, CORS, Redirect-Deduplizierung) |
| Web-Crawling | Katana (Unique-Page-Deduplizierung, Normalisierung numerischer Segmente) |
| TLS-Analyse | tlsx (Cipher, Schlüsselalgorithmus, Schlüsselgröße, Wildcard, Self-Signed, CA-Typ, Zertifikat-Score A–F) |
| Banner-Anreicherung | Shodan API · Censys API (beide API-optional) |
| E-Mail-/DNS-Intel | dig · BIMI · MTA-STS · DANE/TLSA · strukturierte WHOIS-Felder |
| Berichtsvisualisierung | Chart.js (9 Diagramme) · D3 v7 (Asset-Topologie-Kraftgraph) |
| System-Dienstprogramme | jq · curl · whois · dnsutils · openssl |
| Container-Basis | Ubuntu 24.04 · Go 1.24 (Tool-Kompilierung) |
## BlackHat Arsenal
Frogy wurde auf der **BlackHat Arsenal** vorgestellt. Sehen Sie sich die vollständige Demo an:
[](https://www.youtube.com/watch?v=IayqiBe21h4)
## Danksagungen
Besonderer Dank gilt dem Team von [Project Discovery](https://projectdiscovery.io) für die Entwicklung der Open-Source-Tools, die diese Pipeline antreiben (Subfinder, DNSX, Naabu, HTTPX, Katana, tlsx), und [tomnomnom](https://github.com/tomnomnom) für Assetfinder. Rockt die Community weiter!
Erstellt von [Chintan Gurjar](https://chintangurjar.com)
# Zukünftige Roadmap
- Abgeschlossen ✅ ~~Hinzufügen von sicherheits- und compliancebezogenen Daten (SSL/TLS-Hygiene, SPF, DMARC, Header usw.)~~
- Abgeschlossen ✅ ~~Ermöglichen des Filterns von Spaltendaten.~~
- Abgeschlossen ✅ ~~Hinzufügen weiterer Analysen basierend auf neuen Daten.~~
- Abgeschlossen ✅ ~~Identifizieren von Login-Portalen.~~
- Abgeschlossen ✅ ~~Basis-Dashboard/Analysen, falls möglich.~~
- Abgeschlossen ✅ ~~Anzeigen aller offenen Ports in einer der Tabellenspalten.~~
- Abgeschlossen ✅ ~~Paginierung zum schnelleren Zugriff auf Informationen ohne Verlangsamung oder Verzögerung auf der Startseite.~~
- Abgeschlossen ✅ ~~Ändern der Schriftfarbe im Dunkelmodus.~~
- Abgeschlossen ✅ ~~Identifizieren traditioneller Endpunkte vs. API-Endpunkte.~~
- Abgeschlossen ✅ ~~Identifizieren von kundenorientierten vs. kollegenorientierten Anwendungen.~~
- Abgeschlossen ✅ ~~Verbesserung der Priorisierung für die Zielauswahl. (Bewertung basierend auf Management-Ports, Login gefunden, kunden- vs. kollegenorientierte Apps, nicht gesetzte Sicherheitsheader, SSL/TLS-Nutzung usw.)~~
- Abgeschlossen ✅ ~~Implementierung von parallelem Lauf und Timeout-Funktionalität.~~
- Abgeschlossen ✅ ~~SSL/TLS-Scan für das URL:Port-Muster und nicht nur für das Domain:443-Muster.~~
- Abgeschlossen ✅ ~~Durch Mouseover auf dem Score der Angriffsflächenspalte können Sie jetzt sehen, warum und wie der Score berechnet wird.~~
- Abgeschlossen ✅ ~~CSV-Ausgabe wie HTML-Tabelle generieren.~~
- Abgeschlossen ✅ ~~Eigenständige HTML-Ausgabe wird jetzt generiert. Keine Notwendigkeit mehr, eine Datei auf einem Webserver zu hosten, um auf Ergebnisse zuzugreifen.~~
- Abgeschlossen ✅ ~~Hinzufügen aller DNS-Einträge (A, MX, SOA, SRV, CNAME, CAA usw.)~~
- Abgeschlossen ✅ ~~Konsolidierung der beiden CDN-Diagramme in eines.~~
- Abgeschlossen ✅ ~~PTR-Eintragsspalte zur Haupttabelle hinzugefügt.~~
- Abgeschlossen ✅ ~~Horizontales und vertikales Scrollen für Tabellen und Diagramme implementiert, mit eingefrorener erster Titelzeile für einfacheren Datenbezug beim Scrollen.~~
- Abgeschlossen ✅ ~~Screenshot-Funktionalität hinzugefügt.~~
- Abgeschlossen ✅ ~~Protokollierungsfunktion hinzugefügt. Logs werden unter /logs/logs.log gespeichert.~~
- Abgeschlossen ✅ ~~Zusätzlichen Score für exponierte Management- und Datenbank-Ports hinzugefügt.~~
- Abgeschlossen ✅ ~~Dockerisierte Version erstellt.~~
- Abgeschlossen ✅ ~~Neue Subdomain-Enumeration-Fähigkeit mit GAU (waybackurls) hinzugefügt.~~
- Abgeschlossen ✅ ~~Jetzt in der Lage, Links pro Live-Anwendung zu crawlen und den Score der gecrawlten Links zum Gesamtscore hinzuzufügen.~~
- Abgeschlossen ✅ ~~check_dependencies hinzugefügt, um zu überprüfen, ob alle erforderlichen Tools installiert sind (subfinder, assetfinder, dnsx, naabu, httpx, katana, jq, curl, whois, dig, openssl, xargs, unzip, grep, sed, awk). Das Skript bricht jetzt mit einer klaren Liste fehlender Tools ab.~~
- Abgeschlossen ✅ ~~check_dependencies hinzugefügt, um zu überprüfen, ob alle erforderlichen Tools installiert sind (subfinder, assetfinder, dnsx, naabu, httpx, katana, jq, curl, whois, dig, openssl, xargs, unzip, grep, sed, awk). Das Skript bricht jetzt mit einer klaren Liste fehlender Tools ab.~~
- Abgeschlossen ✅ ~~Neuer Trap auf ERR mit kontextueller Nachricht (Exit-Code, Befehl, Datei:Zeile). Neues script_cleanup, das an EXIT gehängt ist, gibt eine Zusammenfassung von Erfolg/Fehler aus und verweist auf das Trace-Log.~~
- Abgeschlossen ✅ ~~Verbesserte CLI-Validierung (Nutzungshinweis, Dateiexistenz- und Lesbarkeitsprüfungen).~~
- Abgeschlossen ✅ ~~Optionale Domänenzeilen-Plausibilitätsprüfung hinzugefügt.~~
- Abgeschlossen ✅ ~~Überprüft, ob run/log-Verzeichnisse beschreibbar sind; behält xtrace nur in logs.log.~~
- Abgeschlossen ✅ ~~Assetfinder: umgestellt auf parallele Ausführung über xargs -P 10 über Eingabedomains.~~
- Abgeschlossen ✅ ~~dnsx: Ratenbegrenzung und Thread-Tuning hinzugefügt (-rl 50 -t 25).~~
- Abgeschlossen ✅ ~~katana: Nebenläufigkeit/Ratenbegrenzung und Timeouts hinzugefügt (-c 5 -rl 30 -timeout 15), KATANA_DEPTH/KATANA_TIMEOUT werden weiterhin beachtet.~~
- Abgeschlossen ✅ ~~httpx: optimierte Threads/Ratenbegrenzung/Timeouts hinzugefügt (-t 25 -rl 80 -timeout 15).~~
- Abgeschlossen ✅ ~~naabu überspringt das Scannen mit einer klaren Warnung, wenn master_subdomains.txt leer ist.~~
- Abgeschlossen ✅ ~~httpx führt jetzt zuerst einen JSON-Durchlauf durch, um httpx.json und Live-Zahlen zu erstellen, dann einen zweiten Durchlauf für Screenshots.~~
- Abgeschlossen ✅ ~~Überprüft, ob Standard-Artefaktverzeichnisse vor der Erfassung beschreibbar sind.~~
- Abgeschlossen ✅ ~~BLOCK_DETECTION_THRESHOLD eingeführt (Standard 20%). Wenn weniger als der Schwellenwert der Web-Ziele antwortet (abgeleitet aus httpx.json vs. naabu live targets), stoppt der Lauf mit Anleitung zum Rotieren der IP/des VPN.~~
- Abgeschlossen ✅ ~~Überarbeitung der Login-Oberflächenerkennung – Verwendet pro Anfrage mktemp-Dateien und explizite curl-Timeouts.~~
- Abgeschlossen ✅ ~~Erweiterte Heuristiken (Passwort/Benutzername-Felder, Formularattribute, Submit-Labels, CSRF-Tokens, Meta-Hinweise, CAPTCHA, modale Hinweise, mehrsprachige Schlüsselwörter, JS-Auth-Bibliotheken, 401/403/407, WWW-Authenticate, Session-Cookies, Login-Redirects, URL-Muster und Abfrageparameter).~~
- Abgeschlossen ✅ ~~Gibt strukturiertes JSON aus und erhöht LOGIN_FOUND_COUNT bei Erkennung.~~
- Abgeschlossen ✅ ~~Farbige Fehlerausgabe; klarere Fortschrittsschritte (z. B. [n/15]).~~
- Abgeschlossen ✅ ~~Komplett überarbeitetes Design für einfache Navigation.~~
- Abgeschlossen ✅ ~~Seitenpanel hinzugefügt, um Daten auf Domain-Intel, Anwendungs-Intel, Zertifikats-Intel, IP-Intel und Cloud-Intel zu verteilen.~~
- Abgeschlossen ✅ ~~Datenqualitätsprüfungen (gültige Domänensyntax, Duplikaterkennung, Abschluss der Anreicherung) vor dem Speichern von Datensätzen durchsetzen.~~
- Abgeschlossen ✅ ~~Option zum Ausblenden des Seitenpanels bereitstellen.~~
- Abgeschlossen ✅ ~~Bericht im CSV- + JSON-Format exportieren.~~
- Abgeschlossen ✅ ~~Dieselbe Suchleiste zu allen Seitenpanel-Berichten hinzufügen.~~
- Abgeschlossen ✅ ~~Benutzer soll die UI direkt öffnen und dort nur Ziele hinzufügen können.~~
- Abgeschlossen ✅ ~~Implementierung einer brandneuen Bewertungslogik.~~
- Abgeschlossen ✅ ~~Implementierung einer brandneuen GUI, schlankes Design und mehr Anpassungsfähigkeit~~
- Abgeschlossen ✅ ~~Behebung des URL-Weiterleitungsproblems, das den Score und die Anzahl der Endpunkte erhöhte.~~