
Mehrthreadiges Python-Tool zum Abfragen der FOFA-API, Extrahieren benutzerdefinierter Felder (IP, Port, cert, TLS usw.), Deduplizieren von Ergebnissen und Fortsetzen unterbrochener Suchvorgänge.
Ein leistungsstarkes Multithread-Python-Tool zum Abfragen der FOFA-API (Fofa.so), Extrahieren ausgewählter Felder und Speichern eindeutiger Ergebnisse mit intelligenter Formatierung.
ip, port, title, cert.*, tls.*, …)domains_*.txt, ips_*.txt)list-Befehl zeigt alle gültigen Felder)raw_input – leicht auf Python 3 übertragbar)requests-BibliothekAbhängigkeit installieren:
pip install requests
🔧 Konfiguration
API_KEY = "PUT UR TOKEN HERE"
import os
API_KEY = os.getenv("FOFA_API_KEY", "your_default_key")
🚀 Verwendung
Führen Sie das Skript aus:
python fofa_searcher.py
Sie werden interaktiv zur Eingabe aufgefordert:
[?] Enter FOFA query: domain="example.com"
[?] Enter max page to scrape [Default: 1]: 5
Jede Seite liefert bis zu SIZE_DEFAULT Ergebnisse.
[?] Enter fields [Default: host,ip,port]: host,ip,port,title,cert.sn
Geben Sie list ein, um alle gültigen Felder zu sehen (Basis, Zertifikat, TLS).
Alle Ergebnisse werden in OUTPUT_DIR mit einem beschreibenden Dateinamen gespeichert, z. B. results/domains_example_com_20250315_143022.txt
📂 Ausgabebeispiele
Einzelnes Feld – übersichtlich beschriftet:
IP: 93.184.216.34
Port: 443
Title: Example Domain
Mehrere Felder – kompaktes Format:
93.184.216.34 | Port:443 | [Example Domain] | {US}
Zertifikats- / TLS-Felder – deutliche Beschriftungen:
Cert Serial Number: 01:23:45:...
TLS version: TLSv1.2
🧩 Gültige Felder
Das Tool unterstützt alle gängigen FOFA-Felder sowie Zertifikats- (cert.) und TLS-Felder (tls.).
Basis-Felder (Auszug)
ip, port, protocol, base_protocol, host, domain, title, server, country, region, city, os, asn, org, banner, header, body, cname, icp, jarm, icon, fid, status_code, product
Zertifikats-Felder
cert, cert.sn, cert.not_after, cert.not_before, cert.domain, cert.subject.org, cert.subject.cn, cert.issuer.org, cert.issuer.cn, cert.is_valid, cert.is_match, cert.is_equal
TLS-Felder
tls.version, tls.ja3s
Geben Sie list in der Feldabfrage ein, um alle zu sehen.
⚙️ Konfigurationsvariablen (im Skript)
Variable Standard Beschreibung CONCURRENT_THREADS 10 Anzahl der parallelen Seitenanfragen SIZE_DEFAULT 100 Ergebnisse pro Seite (maximal von FOFA erlaubt) OUTPUT_DIR results Verzeichnis, in dem Ausgabedateien gespeichert werden
📝 Wichtige Hinweise
· Das Skript verwendet en.fofa.info als API-Endpunkt. · Die Deduplizierung basiert auf dem ersten Feldwert (z. B. IP oder Domain) und ist groß-/kleinschreibungsunabhängig. · Lange Zeichenketten (Titel, Banner, Header) werden in der Ausgabe zur besseren Lesbarkeit gekürzt. · Wenn Sie das Skript unterbrechen (Strg+C), wird es ordentlich beendet. · Das Skript verwendet derzeit Python-2-raw_input. Um es mit Python 3 auszuführen, ersetzen Sie raw_input durch input und passen Sie die print-Anweisungen an.
❗ Fehlerbehebung
Problem Lösung API_KEY nicht gesetzt Bearbeiten Sie das Skript und fügen Sie Ihren Schlüssel hinzu. Ungültige(s) Feld(er) Führen Sie das Skript aus und geben Sie list ein, um die zulässigen Felder zu sehen. Keine Ergebnisse Überprüfen Sie Ihre FOFA-Abfragesyntax und Ihre API-Credits. ImportError: No module named requests Installieren Sie requests mit pip install requests. UnicodeEncodeError Das Skript verarbeitet bereits UTF-8-Kodierung; stellen Sie sicher, dass Ihr Terminal dies unterstützt.
📄 Lizenz
MIT-Lizenz – zur freien Verwendung und Modifikation für Ihre eigenen Aufklärungszwecke. Hinweis: Die Nutzung der FOFA-API unterliegt den Nutzungsbedingungen von FOFA.
🙌 Danksagungen
Entwickelt für die FOFA-Suchmaschine – eine leistungsstarke IoT- und Asset-Suchplattform.
Viel Erfolg bei der Jagd! 🔍