Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
OneForAll — Multi-Source-Subdomain-Enumerationstool mit über 50 Sammlungsmodulen, DNS-Brute-Force, passiver DNS-Analyse, Zertifikatstransparenz, Suchmaschinen-Scraping und Subdomain-Übernahmeerkennung für die Aufklärung. | Kitploit
Tools/GitHubGitHub/shmilylty/oneforall
OSINT (Open-Source-Intelligence)AufklärungInformationsbeschaffungPenetrationstestsSubdomain-EnumerationDNS-Analyse
GitHubshmilylty/oneforall

OneForAll

Multi-Source-Subdomain-Enumerationstool mit über 50 Sammlungsmodulen, DNS-Brute-Force, passiver DNS-Analyse, Zertifikatstransparenz, Suchmaschinen-Scraping und Subdomain-Übernahmeerkennung für die Aufklärung.

Repository anzeigen
10.0k1.4kvor 3 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

OneForAll

Build Status codecov Maintainability License python python

👊OneForAll ist ein leistungsstarkes Tool zur Subdomain-Sammlung 📝Englische Dokumentation

Beispiel

🚀Erste Schritte

📢 Bitte nehmen Sie sich die Zeit, dieses Dokument zu lesen – es hilft Ihnen, sich schnell mit OneForAll vertraut zu machen!

🐍Installationsvoraussetzungen

OneForAll basiert auf Python 3.6.0 und wurde damit entwickelt und getestet. OneForAll benötigt eine Python-Version höher als 3.6.0.
Eine Anleitung zur Installation der Python-Umgebung finden Sie im Python 3 Installationshandbuch. Überprüfen Sie Python- und pip3-Version mit folgenden Befehlen:

root@kitploit:~
python -V
pip3 -V

Wenn Sie eine ähnliche Ausgabe wie die folgende sehen, ist die Python-Umgebung in Ordnung:

root@kitploit:~
Python 3.6.0
pip 19.2.2 from C:\Users\shmilylty\AppData\Roaming\Python\Python36\site-packages\pip (python 3.6)
✔Installationsschritte (Git-Version)
  1. Herunterladen

Da sich das Projekt in der Entwicklung befindet und ständig aktualisiert wird, verwenden Sie beim Herunterladen git clone, um das neueste Repository zu klonen. Dies erleichtert auch spätere Aktualisierungen. Downloads von Releases werden nicht empfohlen, da diese Versionen nur langsam aktualisiert werden und auch das Aktualisieren umständlich ist.
Dieses Projekt wurde auf Gitee gespiegelt. Für Nutzer in China wird das Klonen von Gitee empfohlen, da es schneller ist:

root@kitploit:~
git clone https://gitee.com/shmilylty/OneForAll.git

oder:

root@kitploit:~
git clone https://github.com/shmilylty/OneForAll.git
  1. Installieren

Sie können die Abhängigkeiten von OneForAll mit pip3 installieren. Das Folgende ist ein Beispiel für die Installation mit pip3 unter Windows: Hinweis: Wenn Ihr Python3 im Systemverzeichnis Program Files installiert ist, z. B. C:\Program Files\Python36, führen Sie die Eingabeaufforderung cmd als Administrator aus und führen Sie die folgenden Befehle aus!

root@kitploit:~
cd OneForAll/
python3 -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
python3 oneforall.py --help

Für andere Systemplattformen siehe Abhängigkeiten installieren. Wenn beim Installieren einer Abhängigkeit ein Kompilierungsfehler auftritt, finden Sie Lösungen in der . Falls das Problem weiterhin besteht, können Sie gerne in der Gruppe Feedback geben.

✔Installationsschritte (Docker-Version)

Laden Sie zunächst die Konfigurationsdatei herunter und bearbeiten Sie sie, fügen Sie Ihre eigene api und individuelle Einstellungen hinzu und behalten Sie die ursprüngliche Dateistruktur bei.

root@kitploit:~
config
├── api.py
├── default.py
├── __init__.py
├── log.py
└── setting.py

Ziehen Sie das Image und führen Sie es aus. Ersetzen Sie ~/.config durch den Pfad zu Ihrem Konfigurationsordner.

root@kitploit:~
docker pull shmilylty/oneforall
docker run -it --rm -v ~/results:/OneForAll/results -v ~/.config:/OneForAll/config shmilylty/oneforall --target example.com run

Parameter werden direkt am Ende des Befehls angehängt. Die Ergebnisse werden im lokalen Verzeichnis ~/results ausgegeben. Falls Sie sie an einem anderen Ort speichern möchten, können Sie dies selbst anpassen.

✨Nutzungsbeispiel

Wenn Sie die Abhängigkeiten mit pip3 installiert haben, führen Sie das folgende Beispiel aus:

root@kitploit:~
python3 oneforall.py --target example.com run
python3 oneforall.py --targets ./example.txt run

Beispiel

🧐Ergebnisbeschreibung

Nehmen wir den Befehl python3 oneforall.py --target example.com run als Beispiel. OneForAll erzeugt nach erfolgreicher Ausführung mit den Standardparametern die entsprechenden Ergebnisse im Verzeichnis results:

Ergebnis

example.com.csv enthält die Ergebnisse der Subdomain-Sammlung für jede Hauptdomain.

all_subdomain_result_1583034493.csv ist eine Zusammenfassung aller Subdomains, die bei jeder Ausführung von OneForAll gesammelt wurden, und enthält example.com.csv. Dies ist nützlich, um in Batch-Sammlungsszenarien alle Ergebnisse zu erhalten.

result.sqlite3 ist eine SQLite3-Ergebnisdatenbank, die die bei jeder Ausführung gesammelten Subdomains speichert. Die Datenbankstruktur ist unten dargestellt:

Datenbank

Die Tabelle example_com_origin_result speichert die ursprünglichen Subdomain-Ergebnisse jedes Moduls.

Die Tabelle example_com_resolve_result speichert die Ergebnisse nach der Auflösung der Subdomains.

🤔Nutzungshilfe

Die Befehlszeilenparameter bieten nur einige häufig verwendete Parameter. Ausführlichere Parameterkonfigurationen finden Sie in setting.py. Wenn Sie der Meinung sind, dass bestimmte Parameter häufig in der Befehlszeile verwendet werden sollten oder Parameter fehlen, freuen wir uns über Ihr Feedback. Aus bekannten Gründen konfigurieren Sie bitte zuerst einen Proxy in setting.py, wenn Sie blockierte Sammelschnittstellen verwenden möchten. Einige Sammelmodule erfordern eine API (die meisten können kostenlos durch Registrierung eines Kontos erworben werden). Wenn Sie diese verwenden möchten, konfigurieren Sie die API-Informationen in api.py. Andernfalls ignorieren Sie die entsprechenden Fehlermeldungen. (Ausführliche Module finden Sie im Sammelmodul-Handbuch)

Die OneForAll-Befehlszeilenschnittstelle basiert auf Fire. Weitere fortgeschrittene Verwendungsmöglichkeiten von Fire finden Sie in Using Fire CLI.

oneforall.py ist der Haupteinstiegspunkt. oneforall.py kann Module wie brute.py, takerover.py und dbexport.py aufrufen. Zur Vereinfachung der Subdomain-Brute-Force wurde brute.py eigenständig gemacht, zur Überprüfung auf Subdomain-Übernahme-Risiken takerover.py, und zum Export der Datenbank dbexport.py. Diese Module können alle einzeln ausgeführt werden und akzeptieren dabei etwas erweiterte Parameter. Wenn Sie diese Module separat verwenden möchten, lesen Sie bitte die .

🎉Projektbeschreibung

Projektadresse: https://github.com/shmilylty/OneForAll

Die Bedeutung der Informationssammlung während eines Penetrationstests ist unbestreitbar. Die Subdomain-Sammlung ist ein wesentlicher und sehr wichtiger Teil der Informationssammlung. Derzeit sind viele Open-Source-Tools zur Subdomain-Sammlung verfügbar, aber sie weisen oft einige der folgenden Probleme auf:

  • Nicht leistungsstark genug – zu wenige Schnittstellen zur Subdomain-Sammlung, keine automatische Sammlung in Batches, keine automatische Subdomain-Auflösung, -Verifikation, -FUZZ oder -Informationserweiterung.
  • Nicht benutzerfreundlich – Befehlszeilenmodule sind zwar praktisch, aber wenn viele Parameter zur Verfügung stehen und die durchzuführenden Operationen komplex sind, ist die Befehlszeile nicht sehr benutzerfreundlich. Eine interaktive, gut bedienbare Oberfläche würde die Benutzererfahrung erheblich verbessern.
  • Mangelnde Wartung – Viele Tools wurden seit Jahren nicht aktualisiert. Issues und PRs sind kein Thema.
  • Effizienzprobleme – Fehlende Nutzung von Multiprozess-, Multithreading- und asynchronen Coroutinen-Technologien führt zu geringer Geschwindigkeit.

Um diese Probleme zu lösen, wurde dieses Projekt ins Leben gerufen. Wie der Name vermuten lässt, soll OneForAll ein umfassendes, schnelles und leistungsstarkes Schweizer Taschenmesser für die Subdomain-Sammlung sein 🔨.

OneForAll befindet sich noch in der Entwicklung und weist sicherlich noch einige Mängel und Verbesserungsmöglichkeiten auf. Wir freuen uns über Issues und PRs von erfahrenen Entwicklern. Wenn Ihnen das Tool gefällt, geben Sie ihm bitte einen ⭐. Derzeit gibt es eine spezielle QQ-Gruppe 👨‍👨‍👦‍👦 für den Austausch und das Feedback zu OneForAll: 824414244 (Gruppenverifizierung: Informationssammlung).

👍Funktionen

  • Leistungsstarke Sammlung – Detaillierte Module finden Sie im Sammelmodul-Handbuch.
    1. Subdomain-Sammlung mittels Zertifikatstransparenz (derzeit 6 Module: censys_api, certspotter, crtsh, entrust, google, spyse_api)
    2. Subdomain-Sammlung durch Routineprüfungen (derzeit 4 Module: Ausnutzung des Domain-Zonen-Transfers axfr, Überprüfung der Cross-Domain-Policy-Datei cdx, Überprüfung des HTTPS-Zertifikats cert, Überprüfung der Content Security Policy csp, Überprüfung der robots.txt robots, Überprüfung der sitemap.xml sitemap, DNS-NSEC-Record-Traversal dnssec; später werden NSEC3-Records hinzugefügt)

Wenn Sie andere großartige Ideen haben, teilen Sie sie mir bitte mit! 😎

🌲Verzeichnisstruktur

Weitere Informationen finden Sie im Handbuch zur Verzeichnisstruktur.

Im docs-Verzeichnis dieses Projekts finden Sie auch einige Hilfen und Erklärungen, z. B. zur Quelle der Subdomain-Wörterbücher und zum Ablauf der Wildcard-Erkennung.

👏Verwendete Frameworks

  • aiohttp – Asynchroner HTTP-Client/Server-Framework
  • beautifulsoup4 – Python-Bibliothek zum einfachen Extrahieren von Daten aus HTML- oder XML-Dateien
  • fire – Python Fire – eine Bibliothek zur automatischen Generierung von Befehlszeilenschnittstellen (CLI) aus jedem Python-Objekt
  • loguru – Python-Bibliothek für angenehmes Logging
  • massdns – Hochleistungs-DNS-Resolver
  • records – Records ist eine sehr einfache, aber leistungsstarke Bibliothek für rohe SQL-Abfragen in den meisten relationalen Datenbanken.
  • requests – Der einzige nicht gentechnisch veränderte Python-HTTP-Bibliothek, die Menschen sicher verwenden können.
  • tqdm – Schnelle, erweiterbare Fortschrittsbalken-Bibliothek für Python und CLI

Danke an diese großartigen Python-Bibliotheken!

🔖Versionskontrolle

Dieses Projekt verwendet SemVer für die Versionsverwaltung. Informationen zu historischen Änderungen finden Sie im Änderungsprotokoll.

⌛Zukünftige Pläne

  • Kontinuierliche Optimierung und Verbesserung der Module
  • Implementierung einer leistungsstarken und benutzerfreundlichen Weboberfläche

Weitere Informationen finden Sie im Entwicklungsplan.

🙏Mitwirken

Wir begrüßen Beiträge von allen Entwicklern herzlich!

👨‍💻Mitwirkende

  • Jing Ling
    • Kernentwicklung

Eine Liste aller Mitwirkenden und ihrer Beiträge finden Sie im Mitwirkenden-Dokument. Vielen Dank, dass sie OneForAll leistungsstärker und benutzerfreundlicher gemacht haben.

☕Spenden

Wenn Ihnen dieses Projekt geholfen hat, können Sie gerne einen Kaffee spendieren :)

📄Lizenz

Dieses Projekt ist unter der GPL-3.0-Lizenz lizenziert. Details finden Sie in der LICENSE.

😘Danksagungen

Dank an alle Open-Source-Projekte zur Subdomain-Sammlung im Internet!

Vielen Dank an die Kollegen von A-Team für die herzliche und selbstlose Beantwortung von Fragen!

📜Haftungsausschluss

Dieses Tool darf nur im Rahmen einer ordnungsgemäß autorisierten Unternehmenssicherheitsmaßnahme verwendet werden. Bei der Nutzung dieses Tools müssen Sie sicherstellen, dass alle Ihre Handlungen den geltenden Gesetzen und Vorschriften entsprechen.
Wenn Sie dieses Tool auf irgendeine rechtswidrige Weise nutzen, sind Sie allein für alle Konsequenzen verantwortlich. Alle Entwickler und Mitwirkenden dieses Tools übernehmen keinerlei rechtliche oder sonstige Haftung.
Wenn Sie diese Bedingungen nicht vollständig gelesen, verstanden und akzeptiert haben, installieren und verwenden Sie dieses Tool bitte nicht.
Ihre Nutzung oder jede andere ausdrückliche oder stillschweigende Zustimmung zu diesen Bedingungen gilt als Ihre Zustimmung und Ihr Einverständnis mit diesen Bedingungen.

💖Star-Trend

Stargazers over time

Tool herunterladen
Dokumentation zu häufigen Problemen und Antworten
  1. Aktualisieren

Führen Sie die folgenden Befehle aus, um das Projekt zu aktualisieren (Änderungen an /config/setting.py und /config/api.py bleiben erhalten):

root@kitploit:~
git stash        # lokale Änderungen zwischenspeichern
git fetch --all  # Projekt-Updates abrufen
git pull         # herunterladen und überschreiben
git stash pop    # lokale Änderungen wiederherstellen

Die Tabelle example_com_last_result speichert die Ergebnisse der letzten Subdomain-Sammlung (wird erst nach mindestens zwei Sammlungen erzeugt).

Die Tabelle example_com_now_result speichert die aktuellen Subdomain-Ergebnisse. In der Regel reicht es, sich auf diese Tabelle zu konzentrieren.

Weitere Informationen finden Sie unter Feldbeschreibungen.

Nutzungshilfe

❗ Hinweis: Wenn Sie bei der Verwendung auf Probleme oder Fragen stoßen, suchen Sie bitte zunächst in den Issues mit der Suchfunktion nach Antworten. Sie können auch die häufigen Fragen und Antworten lesen.

Hilfe zu oneforall.py

Die folgende Hilfeinformation ist möglicherweise nicht die aktuellste. Verwenden Sie python oneforall.py --help, um die aktuellste Hilfe zu erhalten.

root@kitploit:~
python oneforall.py --help
root@kitploit:~
NAME
    oneforall.py - OneForAll-Hilfe

SYNOPSIS
    oneforall.py COMMAND | --target=TARGET <flags>

DESCRIPTION
    OneForAll ist ein leistungsstarkes Werkzeug zur Subdomain-Sammlung

    Beispiel:
        python3 oneforall.py version
        python3 oneforall.py --target example.com run
        python3 oneforall.py --targets ./domains.txt run
        python3 oneforall.py --target example.com --valid None run
        python3 oneforall.py --target example.com --brute True run
        python3 oneforall.py --target example.com --port small run
        python3 oneforall.py --target example.com --fmt csv run
        python3 oneforall.py --target example.com --dns False run
        python3 oneforall.py --target example.com --req False run
        python3 oneforall.py --target example.com --takeover False run
        python3 oneforall.py --target example.com --show True run

    Hinweis:
        Der Parameter alive akzeptiert die Werte True, False und exportiert die aktiven bzw. alle Subdomain-Ergebnisse.
        Der Parameter port hat die Optionen 'default', 'small', 'large', siehe config.py für Details.
        Der Parameter fmt akzeptiert Formate 'csv', 'json'.
        Der Parameter path ist standardmäßig None und verwendet das Ergebnisverzeichnis von OneForAll.

ARGUMENTS
    TARGET
        Einzelne Domain (einer der beiden erforderlichen Parameter)
    TARGETS
        Dateipfad mit einer Domain pro Zeile (einer der beiden erforderlichen Parameter)

FLAGS
    --brute=BRUTE
        Brute-Force-Subdomains (Standard: True)
    --dns=DNS
        DNS-Auflösung von Subdomains (Standard: True)
    --req=REQ
        HTTP-Anfragen an Subdomains (Standard: True)
    --port=PORT
        Portbereich für Anfragen zur Subdomain-Validierung (Standard nur Port 80)
    --valid=VALID
        Nur aktive Subdomain-Ergebnisse exportieren (Standard: False)
    --fmt=FMT
        Format der Ergebnisausgabe (Standard: csv)
    --path=PATH
        Pfad zur Ergebnisausgabe (Standard: None)
    --takeover=TAKEOVER
        Überprüfung auf Subdomain-Übernahme (Standard: False)
  • Subdomain-Sammlung aus Web-Crawl-Archiven (derzeit 2 Module: archivecrawl, commoncrawl; diese Module befinden sich noch in der Testphase und werden weiter ergänzt und verbessert)
  • Subdomain-Sammlung mittels DNS-Datensätzen (derzeit 24 Module: bevigil_api, binaryedge_api, bufferover, cebaidu, chinaz, chinaz_api, circl_api, cloudflare, dnsdb_api, dnsdumpster, hackertarget, ip138, ipv4info_api, netcraft, passivedns_api, ptrarchive, qianxun, rapiddns, riddler, robtex, securitytrails_api, sitedossier, threatcrowd, wzpc, ximcx)
  • Subdomain-Sammlung mittels DNS-Abfragen (derzeit 5 Module: Auflistung gängiger SRV-Records und Abfrage zur Subdomain-Sammlung srv, sowie Abfrage von DNS-Records (MX, NS, SOA, TXT) zur Subdomain-Sammlung)
  • Subdomain-Sammlung aus Bedrohungsdaten-Plattformen (derzeit 6 Module: alienvault, riskiq_api, threatbook_api, threatminer, virustotal, virustotal_api; diese Module werden noch ergänzt und verbessert)
  • Subdomain-Entdeckung durch Suchmaschinen (derzeit 18 Module: ask, baidu, bing, bing_api, duckduckgo, exalead, fofa_api, gitee, github, github_api, google, google_api, shodan_api, so, sogou, yahoo, yandex, zoomeye_api). Mit Ausnahme spezieller Suchmaschinen unterstützen alle gängigen Suchmaschinen automatische Ausschlusssuche, vollständige Suche und rekursive Suche.
  • Unterstützt Subdomain-Brute-Force – Dieses Modul bietet sowohl konventionelle Wörterbuch-Brute-Force als auch benutzerdefinierte Fuzz-Modi. Es unterstützt Batch- und rekursive Brute-Force sowie die automatische Erkennung und Behandlung von Wildcard-Auflösungen.
  • Unterstützt Subdomain-Validierung – Standardmäßig aktiviert. Automatische DNS-Auflösung der Subdomains, automatisches Abrufen von Titel und Banner der Subdomains sowie umfassende Beurteilung der Erreichbarkeit.
  • Unterstützt Subdomain-Crawling – Basierend auf vorhandenen Subdomains werden die Antworttexte und darin enthaltenen JavaScript-Dateien durchsucht, um neue Subdomains zu entdecken.
  • Unterstützt Subdomain-Permutation – Basierend auf vorhandenen Subdomains werden Subdomain-Substitutionstechniken eingesetzt, um weitere Subdomains zu entdecken.
  • Unterstützt Subdomain-Übernahme – Standardmäßig aktiviert, prüft auf Risiken einer Subdomain-Übernahme. Unterstützt automatische Übernahmeerkennung (derzeit nur GitHub, noch in Entwicklung) und Batch-Überprüfung.
  • Leistungsstarke Verarbeitung – Die gefundenen Subdomain-Ergebnisse werden automatisch bereinigt, DNS-Auflösung durchgeführt, HTTP-Anfragen gestellt, aktive Subdomains automatisch gefiltert und Banner-Informationen erweitert. Unterstützte Exportformate: txt, csv, json.
  • Hohe Geschwindigkeit – Sammelmodule nutzen Multithreading, Brute-Force-Modul verwendet massdns und erreicht eine DNS-Auflösungsrate von über 350.000 Domains pro Sekunde. Bei der Subdomain-Validierung werden DNS-Auflösung und HTTP-Anfragen mit asynchronen Coroutinen durchgeführt, und die Überprüfung auf Subdomain-Übernahme erfolgt multithreaded.
  • Gute Benutzererfahrung – Jedes Modul verfügt über eine Fortschrittsanzeige, die Ergebnisse werden asynchron gespeichert.