
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.
👊OneForAll ist ein leistungsstarkes Tool zur Subdomain-Sammlung 📝Englische Dokumentation
📢 Bitte nehmen Sie sich die Zeit, dieses Dokument zu lesen – es hilft Ihnen, sich schnell mit OneForAll vertraut zu machen!
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:
python -V
pip3 -V
Wenn Sie eine ähnliche Ausgabe wie die folgende sehen, ist die Python-Umgebung in Ordnung:
Python 3.6.0
pip 19.2.2 from C:\Users\shmilylty\AppData\Roaming\Python\Python36\site-packages\pip (python 3.6)
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:
git clone https://gitee.com/shmilylty/OneForAll.git
oder:
git clone https://github.com/shmilylty/OneForAll.git
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!
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 Dokumentation zu häufigen Problemen und Antworten. Falls das Problem weiterhin besteht, können Sie gerne in der Gruppe Feedback geben.
Führen Sie die folgenden Befehle aus, um das Projekt zu aktualisieren (Änderungen an /config/setting.py und /config/api.py bleiben erhalten):
git stash # lokale Änderungen zwischenspeichern
git fetch --all # Projekt-Updates abrufen
git pull # herunterladen und überschreiben
git stash pop # lokale Änderungen wiederherstellen
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.
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.
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.
Wenn Sie die Abhängigkeiten mit pip3 installiert haben, führen Sie das folgende Beispiel aus:
python3 oneforall.py --target example.com run
python3 oneforall.py --targets ./example.txt run
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:

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:

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.
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.