
Finde viel mehr von der Wayback Machine, Common Crawl, Alien Vault OTX, URLScan, VirusTotal, GhostArchive & Intelligence X!
Die Idee hinter waymore ist es, noch mehr Links von der Wayback Machine (plus anderen Quellen) zu finden als andere vorhandene Tools.
👉 Der größte Unterschied zwischen waymore und anderen Tools ist, dass es auch die archivierten Antworten für URLs auf der Wayback Machine (und URLScan) herunterladen kann, sodass Sie diese dann nach noch mehr Links, Entwicklerkommentaren, zusätzlichen Parametern usw. durchsuchen können. 👉 Außerdem gehen andere Tools derzeit nicht mit der von den Quellen eingeführten Ratenbegrenzung um und brechen oft mit unvollständigen Ergebnissen ab, ohne Sie darüber zu informieren.
Jeder, der Bug Bounty betreibt, hat wahrscheinlich schon das großartige waybackurls von @TomNomNoms verwendet. Dieses Tool holt URLs von web.archive.org und zusätzliche Links (falls vorhanden) aus einer der Indexsammlungen auf index.commoncrawl.org. Sie haben wahrscheinlich auch das großartige gau von @hacker_ verwendet, das URLs aus dem Wayback Archive, Common Crawl, aber auch von Alien Vault, URLScan, Virus Total und Intelligence X findet. Nun holt waymore URLs von ALL diesen Quellen ebenfalls (mit der Möglichkeit, mehr zu filtern, um das zu bekommen, was Sie möchten):
👉 Es ist ein Punkt, den viele zu übersehen scheinen, also füge ich ihn noch einmal hinzu :) ... Der größte Unterschied zwischen waymore und anderen Tools ist, dass es auch die archivierten Antworten für URLs auf der Wayback Machine herunterladen kann, sodass Sie diese dann nach noch mehr Links, Entwicklerkommentaren, zusätzlichen Parametern usw. durchsuchen können.
👉 BITTE LESEN SIE ALLE INFORMATIONEN AUF DIESER SEITE, UM DIESES TOOL BESTMÖGLICH ZU NUTZEN, UND INSBESONDERE BEVOR SIE PROBLEME MELDEN 🤘
👉 DIESES TOOL KANN SEHR LANGSAM SEIN, ABER ES IST FÜR ABDECKUNG GEDACHT, NICHT FÜR GESCHWINDIGKEIT
⚠️ Ein häufiger Fehler ist, eine Datei mit Subdomains zu übergeben, um alles für eine Domain zu erhalten. TUN SIE ES NICHT! Übergeben Sie einfach nur die Domain, um alle Subdomains für diese Domain zu erhalten. Es wird SO viel schneller sein, und Sie werden nichts verpassen.
HINWEIS: Wenn Sie bereits eine config.yml-Datei haben, wird diese nicht überschrieben. Die Datei config.yml.NEW wird im selben Verzeichnis erstellt. Wenn Sie die neue Konfiguration benötigen, entfernen Sie config.yml und benennen Sie config.yml.NEW zurück in config.yml.
waymore unterstützt Python 3.7+ (Python 3.7 oder höher erforderlich für async/await-Unterstützung).
Installieren Sie waymore in der Standard- (globalen) Python-Umgebung.```bash
pip install waymore
ODER```bash
pip install git+https://github.com/xnl-h4ck3r/waymore.git -v
Sie können upgraden mit```bash pip install --upgrade waymore
### pipx
Schnelle Einrichtung in isolierter Python-Umgebung mit [pipx](https://pypa.github.io/pipx/)```bash
pipx install git+https://github.com/xnl-h4ck3r/waymore.git
| ------------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| -i | --input | Die Ziel-Domain (oder eine Datei mit Domains) für die Suche nach Links. Dies kann nur eine Domain oder eine Domain mit einem bestimmten Pfad sein. Wenn es nur eine Domain ist, um alles für diese Domain zu erhalten, nicht mit www. voranstellen. Sie können auch nur eine TLD angeben, indem Sie einen Punkt voranstellen, z.B. .mil, um alle Subs für alle Domains mit dieser TLD zu erhalten (HINWEIS: Die Alien Vault OTX-Quelle ist ausgeschlossen, wenn nach einer TLD gesucht wird, da eine vollständige Domain erforderlich ist). HINWEIS: Jedes Schema, jede Portnummer, Abfragezeichenfolge oder URL-Fragment wird aus den Eingabewerten entfernt. Wenn Sie jedoch einen Pfad angeben, wird dieser speziell durchsucht, was Ihre Ergebnisse einschränkt. |
| -mode | | Der auszuführende Modus: U (nur URLs abrufen), R (nur Antworten herunterladen) oder B (beide). Wenn -i nur eine Domain ist, wird -mode standardmäßig auf B gesetzt. Wenn eine Domain mit Pfad ist, wird standardmäßig auf gesetzt. |
| -oU | --output-urls | Die Datei zum Speichern der Links-Ausgabe, einschließlich Pfad falls nötig. Wenn das Argument nicht übergeben wird, wird ein -Verzeichnis im Pfad erstellt, der durch den Schlüssel in der -Datei angegeben ist (standardmäßig ). Innerhalb davon wird ein Verzeichnis mit der Ziel-Domain (oder Domain mit Pfad) erstellt, die mit übergeben wurde (oder für jede Zeile einer mit übergebenen Datei). Zum Beispiel: |
| -oR | --output-responses | Das Verzeichnis zum Speichern der Antwort-Ausgabedateien, einschließlich Pfad falls nötig. Wenn das Argument nicht übergeben wird, wird ein -Verzeichnis im Pfad erstellt, der durch den Schlüssel in der -Datei angegeben ist (standardmäßig ). Innerhalb davon wird ein Verzeichnis mit der Ziel-Domain (oder Domain mit Pfad) erstellt, die mit übergeben wurde (oder für jede Zeile einer mit übergebenen Datei). Zum Beispiel: |
| -n | --no-subs | Subdomains der Ziel-Domain nicht einbeziehen (wird nur verwendet, wenn die Eingabe keine Domain mit einem bestimmten Pfad ist). |
| -f | --filter-responses-only | Die anfänglichen Links von Quellen werden nicht gefiltert, nur die heruntergeladenen Antworten. Dies kann nützlich sein, um alle verfügbaren Pfade aus den Links zu sehen, auch wenn Sie den Inhalt nicht überprüfen möchten. |
| -fc | | HTTP-Statuscodes für abgerufene URLs und Antworten filtern. Kommagetrennte Liste von Codes (Standard: die -Werte aus ). Die Übergabe dieses Arguments überschreibt den Wert aus . |
| -ft | | MIME-Typen für abgerufene URLs und Antworten filtern. Kommagetrennte Liste von MIME-Typen (Standard: die -Werte aus ). Die Übergabe dieses Arguments überschreibt den Wert aus . . |
| -mc | | Nur HTTP-Statuscodes für abgerufene URLs und Antworten abgleichen. Kommagetrennte Liste von Codes. Die Übergabe dieses Arguments überschreibt die Konfiguration und . |
| -mt | | Nur MIME-Typen für abgerufene URLs und Antworten abgleichen. Kommagetrennte Liste von MIME-Typen. Die Übergabe dieses Arguments überschreibt die Konfiguration und . . |
| -l | --limit | Wie viele Antworten gespeichert werden (wenn oder übergeben wird). Ein positiver Wert holt die Ergebnisse, ein negativer Wert die Ergebnisse. Ein Wert von 0 holt Antworten (Standard: 5000). |
| -from | --from-date | Von welchem Datum Daten abgerufen werden sollen. Wenn nicht angegeben, wird von den frühestmöglichen Ergebnissen abgerufen. Ein Teilwert kann übergeben werden, z.B. , usw. |
| -to | --to-date | Bis zu welchem Datum Daten abgerufen werden sollen. Wenn nicht angegeben, wird bis zu den spätestmöglichen Ergebnissen abgerufen. Ein Teilwert kann übergeben werden, z.B. , usw. |
| -ci | --capture-interval | Filtert die Suche auf archive.org, um maximal 1 Erfassung pro Stunde (), Tag () oder Monat () zu erhalten. Dieser Filter wird nur für Antworten verwendet. Der Standardwert ist , kann aber auch auf gesetzt werden, um nichts zu filtern und alle Antworten zu erhalten. |
| -ra | --regex-after | RegEx für Filterzwecke gegen Links aus allen Quellen von URLs UND heruntergeladenen Antworten. |
| -url-filename | | Legen Sie den Dateinamen der heruntergeladenen Antworten auf die URL fest, die die Antwort erzeugt hat, andernfalls wird er auf den Hash-Wert der Antwort gesetzt. Die Verwendung des Hash-Werts bedeutet, dass mehrere URLs, die dieselbe Antwort erzeugt haben, nur zu einer gespeicherten Datei für diese Antwort führen. |
| -xwm | | Überprüfungen auf Links von Wayback Machine (archive.org) ausschließen |
| -xcc | | Überprüfungen auf Links von commoncrawl.org ausschließen |
| -xav | | Überprüfungen auf Links von alienvault.com ausschließen |
| -xus | | Überprüfungen auf Links von urlscan.io ausschließen |
| -xvt | | Überprüfungen auf Links von virustotal.com ausschließen |
| -xix | | Überprüfungen auf Links von Intelligence X.com ausschließen |
| -xga | | Überprüfungen auf Links von ghostarchive.org ausschließen |
| -lcc | | Begrenzen Sie die Anzahl der durchsuchten Common Crawl-Index-Sammlungen, z.B. durchsucht nur die letzten Sammlungen (Standard: 1). Stand November 2024 gibt es derzeit 106 Sammlungen. Setzen auf durchsucht Sammlungen. Wenn Sie Common Crawl gar nicht durchsuchen möchten, verwenden Sie die Option . |
| -t | --timeout | Dies gilt nur für archivierte Antworten! Wie viele Sekunden auf das Senden von Daten durch den Server gewartet wird, bevor aufgegeben wird (Standard: 30). |
| -p | --processes | Eine grundlegende Multithreading-Ausführung erfolgt beim Abrufen von Anforderungen für eine Datei mit URLs. Dieses Argument bestimmt die Anzahl der Prozesse (Threads), die verwendet werden (Standard: 2). |
| -r | --retries | Die Anzahl der erneuten Versuche für Anforderungen, die einen Verbindungsfehler oder eine Ratenbegrenzung erhalten (Standard: 1). |
| -sip | --source-ip OR --bind-ip | Binden Sie ausgehende HTTP/HTTPS-Anforderungen an diese Quell-IP (nützlich auf Multi-Homed-Hosts). Die Übergabe dieses Arguments überschreibt den -Wert in der -Datei. |
| -m | --memory-threshold | Der Speicherschwellenwert in Prozent. Wenn der Speicher der Maschine über diesen Schwellenwert steigt, wird das Programm gestoppt und vor einem Speichermangel ordnungsgemäß beendet (Standard: 95). |
| -ko | --keywords-only | Nur Links und Antworten zurückgeben, die Schlüsselwörter enthalten, an denen Sie interessiert sind. Dies kann die Zeit für das Erhalten von Ergebnissen verkürzen. Wenn Sie das Flag ohne Wert angeben, werden Schlüsselwörter aus der kommagetrennten Liste in der -Datei (normalerweise in ) mit dem Schlüssel übernommen, andernfalls können Sie einen spezifischen Regex-Wert übergeben, z.B. , um nur Links zu erhalten, die das Wort enthalten, oder , um nur JS-Dateien zu erhalten. Die Regex-Überprüfung ist nicht case-sensitiv. |
| -lr | --limit-requests | Begrenzen Sie die Anzahl der Anforderungen, die beim Abrufen von Links aus einer Quelle gestellt werden (dies gilt nicht für Common Crawl). Einige Ziele können eine enorme Menge an erforderlichen Anforderungen zurückgeben, die einfach nicht praktikabel sind, daher kann dies verwendet werden, um diese Situation zu verwalten. Der Standardwert ist 0 (Null), was bedeutet, dass es keine Begrenzung gibt. |
| -ow | --output-overwrite | Wenn die URL-Ausgabedatei (standardmäßig oder durch angegeben) bereits existiert, wird sie überschrieben, anstatt angehängt zu werden. |
| -nlf | --new-links-file | Wenn dieses Argument übergeben wird, wird auch eine Datei (oder wenn verwendet wird, der Name dieser Datei mit dem Suffix ) geschrieben, die Links für den letzten Durchlauf enthält. Dies kann für die kontinuierliche Überwachung eines Ziels verwendet werden (nur für , nicht für ). |
| | --stream | Ausgabe von URLs an STDOUT, sobald sie gefunden werden (Duplikate werden angezeigt). Funktioniert nur mit . Alle anderen Ausgaben werden unterdrückt, verwenden Sie daher , um Fehler zu sehen. Verwenden Sie , um Ergebnisse explizit in einer Datei zu speichern (Duplikate werden entfernt). |
| -c | --config | Pfad zur YML-Konfigurationsdatei. Wenn nicht übergeben, sucht es nach der Datei im Standardverzeichnis, normalerweise . |
| -wrlr | --wayback-rate-limit-retry | Die Anzahl der Minuten, die der Benutzer auf eine Pause aufgrund einer Ratenbegrenzung bei Wayback Machine (archive.org) warten möchte, anstatt mit einem -Fehler anzuhalten (Standard: 3). |
| -urlr | --urlscan-rate-limit-retry | Die Anzahl der Minuten, die der Benutzer auf eine Pause aufgrund einer Ratenbegrenzung bei URLScan.io warten möchte, anstatt mit einem -Fehler anzuhalten (Standard: 1). |
| -co | --check-only | Dies führt einige minimale Anforderungen durch, um anzuzeigen, wie viele Anforderungen und wie lange es ungefähr dauern könnte, um URLs von den Quellen und heruntergeladene Antworten von Wayback Machine zu erhalten (leider ist es nicht möglich zu überprüfen, wie lange das Herunterladen von Antworten von URLScan dauert). |
| -nd | --notify-discord | Ob eine Benachrichtigung an Discord gesendet werden soll, wenn waymore abgeschlossen ist. Erfordert, dass in der -Datei bereitgestellt wird. |
| -nt | --notify-telegram | Ob eine Benachrichtigung an Telegram gesendet werden soll, wenn waymore abgeschlossen ist. Erfordert, dass und in der -Datei bereitgestellt werden. |
| -oijs | --output-inline-js | Ob kombiniertes Inline-JavaScript aller relevanten Dateien im Antwortverzeichnis gespeichert werden soll, wenn (oder ) verwendet wurde. Die Dateien werden mit dem Namen gespeichert, wobei die Nummer der Datei ist, wobei 1000 eindeutige Skripte pro Datei gespeichert werden. Die Datei wird ebenfalls erstellt, die den -Wert aller externen Skripte enthält, auf die in den Dateien verwiesen wird. |
| -v | --verbose | Ausführliche Ausgabe |
| | --version | Aktuelle Versionsnummer anzeigen. |
| -h | --help | Hilfemeldung anzeigen und beenden. |## Mit Docker ausführen
Installieren Sie docker```bash git clone https://github.com/xnl-h4ck3r/waymore.git cd waymore
Image erstellen:```bash
docker build -t waymore .
Führe waymore mit diesem Befehl aus:```bash docker run -it --rm -v $PWD/results:/app/results waymore:latest -i example.com -oU example.com.links -oR results/example.com/
## Eingabe und Modus
Die Eingabe `-i` kann entweder nur eine Domain sein, z.B. `redbull.com` oder eine bestimmte Domain mit Pfad, z.B. `redbull.com/robots.txt`. Sie können auch eine Datei mit Domains/URLs zur Verarbeitung übergeben (oder Werte durch Piping von einem anderen Programm in der Befehlszeile übergeben). **HINWEIS: Jegliches Schema, Portnummer, Query-String oder URL-Fragment wird aus den Eingabewerten entfernt. Wenn Sie jedoch einen Pfad angeben, wird dieser spezifisch durchsucht, was Ihre Ergebnisse einschränkt.**
Es gibt verschiedene Modi, die für waymore ausgeführt werden können. Das Argument `-mode` kann 3 verschiedene Werte annehmen:
- `U` - URLs werden von archive.org (falls `-xwm` nicht übergeben), commoncrawl.org (falls `-xcc` nicht übergeben), otx.alienvault.com (falls `-xvv` nicht übergeben) und urlscan.io (falls `-xus` nicht übergeben) abgerufen.
- `R` - Antworten werden von archive.org heruntergeladen.
- `B` - Sowohl URLs als auch Antworten werden abgerufen.
Wenn die Eingabe eine spezifische URL war, z.B. `redbull.com/robots.txt`, dann wird `-mode` standardmäßig auf `R` gesetzt. Es werden nur Antworten heruntergeladen. Sie können den Modus nicht auf `U` oder `B` für eine Domain mit Pfad ändern, da es nicht notwendig ist, URLs für eine bestimmte URL abzurufen.
Wenn die Eingabe nur eine Domain ist, z.B. `redbull.com`, dann wird `-mode` standardmäßig auf `B` gesetzt. Es kann bei Bedarf auf `U` oder `R` geändert werden. Wenn nur eine Domain übergeben wird, werden alle URLs/Antworten für diese Domain (und Subdomains, falls nicht `-n` übergeben) abgerufen. Wenn die Option `-n` (keine Subdomains) übergeben wird, wird die Subdomain `www` standardmäßig dennoch eingeschlossen.
## config.yml
Die `config.yml`-Datei (normalerweise in `~/.config/waymore/`) enthält Werte, die an Ihre Bedürfnisse angepasst werden können. Filter werden alle als kommagetrennte Listen bereitgestellt:
- `FILTER_CODE` - Ausschlüsse, die verwendet werden, um Antworten auszuschließen, die wir von web.archive.org abrufen möchten, sowie für Dateinamen, wenn `-i` ein Verzeichnis ist, z.B. `301,302`. Dies kann mit dem Argument `-fc` überschrieben werden. Die Übergabe von `-mc` (um Statuscodes anstelle von Filtern zu matchen) überschreibt jeden Wert in `FILTER_CODE` oder `-fc`.
- `FILTER_MIME` - MIME Content-Typ-Ausschlüsse, die verwendet werden, um Links und Antworten von web.archive.org über deren API zu filtern, z.B. `'text/css,image/jpeg`. Dies kann mit dem Argument `-ft` überschrieben werden. Die Übergabe von `-mt` (um MIME-Typen anstelle von Filtern zu matchen) überschreibt jeden Wert in `FILTER_MIME` oder `-ft`.
- `FILTER_URL` - Antwortcode-Ausschlüsse, die wir verwenden, um Links und Antworten von web.archive.org über deren API zu filtern, z.B. `.css,.jpg`.
- `FILTER_KEYWORDS` - Nur Links und Antworten werden zurückgegeben, die die angegebenen Schlüsselwörter enthalten, wenn das Argument `-ko`/`--keywords-only` übergeben wird (ohne einen expliziten Wert in der Befehlszeile anzugeben), z.B. `admin,portal`.
- `URLSCAN_API_KEY` - Sie können sich bei [urlscan.io](https://urlscan.io/user/signup) anmelden, um einen **KOSTENLOSEN** API-Schlüssel zu erhalten (es sind auch kostenpflichtige Abonnements verfügbar). Es wird empfohlen, einen Schlüssel zu besorgen und in die Konfigurationsdatei einzutragen, damit Sie mehr (und schneller) von deren API erhalten. HINWEIS: Sie werden gedrosselt, es sei denn, Sie haben ein vollständiges kostenpflichtiges Abonnement.
- `CONTINUE_RESPONSES_IF_PIPED` - Wenn das Abrufen von Archivantworten nicht abgeschlossen wird, werden Sie beim nächsten Mal gefragt, ob Sie mit dem vorherigen Durchlauf fortfahren möchten. Wenn `stdout` jedoch an einen anderen Prozess weitergeleitet wird, wird angenommen, dass Sie keine interaktive Eingabeaufforderung wünschen. Ein Wert von `True` (Standard) stellt sicher, dass der vorherige Durchlauf fortgesetzt wird. Wenn Sie jedes Mal einen neuen Durchlauf wünschen, setzen Sie ihn auf `False`.
- `WEBHOOK_DISCORD` - Wenn das Argument `--notify-discord` übergeben wird, sendet `waymore` eine Benachrichtigung an diesen Discord-Webhook.
- `TELEGRAM_BOT_TOKEN` - Wenn das Argument `--notify-telegram` übergeben wird, verwendet `waymore` dieses Token, um eine Benachrichtigung an Telegram zu senden.
- `TELEGRAM_CHAT_ID` - Wenn das Argument `--notify-telegram` übergeben wird, sendet `waymore` die Benachrichtigung an diese Chat-ID.
- `DEFAULT_OUTPUT_DIR` - Dies ist der Standardspeicherort aller Ausgabedateien, die geschrieben werden, wenn die Argumente `-oU` und `-oR` nicht verwendet werden. Wenn der Wert dieses Schlüssels leer ist, wird standardmäßig der Speicherort der `config.yml`-Datei verwendet.
- `INTELX_API_KEY` - Sie können sich [hier bei intelx.io anmelden](https://intelx.io/product). Es erfordert einen akademischen oder kostenpflichtigen API-Schlüssel, um die `/phonebook/search` über deren API durchzuführen (Stand 2024-09-01 wurde der Phonebook-Dienst aufgrund ständigen Missbrauchs durch Spam-Konten auf akademische oder kostenpflichtige Benutzer beschränkt). Sie können einen kostenlosen API-Schlüssel für den akademischen Gebrauch erhalten, wenn Sie sich mit einer gültigen akademischen E-Mail-Adresse anmelden.
- `SOURCE_IP` - Optional. Binden Sie ausgehende HTTP/HTTPS-Anfragen an eine bestimmte Quell-IP auf Multi-Homed-Hosts. Kann auch über das CLI-Flag `--source-ip/--bind-ip` gesetzt werden (CLI hat Vorrang).
**HINWEIS: Die MIME-Typen können für Alien Vault OTX, Virus Total und Intelligence X nicht gefiltert werden, da diese keine Filterung nach MIME-Typ unterstützen. Manchmal verfügt URLScan nicht über einen definierten MIME-Typ für eine URL. In diesen Fällen werden URLs unabhängig von Filter oder Match einbezogen. Beachten Sie dies und erwägen Sie, bestimmte Anbieter auszuschließen, falls dies wichtig ist.**
## Output
Im Standard-Ausgabeverzeichnis, das in der `config.yml`-Datei mit `DEFAULT_OUTPUT_DIR` angegeben ist (falls leer, wird standardmäßig der Speicherort der `config.yml`-Datei selbst verwendet, typischerweise `~/.config/waymore/`), wird ein `results`-Verzeichnis erstellt. Darin wird ein Verzeichnis mit der Zieldomain (oder Domain mit Pfad) erstellt, die mit `-i` übergeben wurde (oder für jede Zeile einer Datei, die mit `-i` übergeben wurde). Alternativ können Sie das Argument `-oU` verwenden, um anzugeben, wo die URL-Links-Datei ausgegeben wird (und der Name der Datei). Sie können auch das Argument `-oR` verwenden, um ein Verzeichnis (oder einen Pfad) anzugeben, in dem die archivierten Antworten ausgegeben werden.
Bei der Ausführung werden im Zielverzeichnis die folgenden Dateien erstellt:
- `waymore.txt` - Wenn `-mode` auf `U` oder `B` gesetzt ist, enthält diese Datei Links von ausgewählten Quellen. Links werden von archive.org Wayback Machine (sofern nicht `-xwm` übergeben), commoncrawl.org (sofern nicht `-xcc` übergeben), otx.alienvault.com (sofern nicht `-xav` übergeben) und urlscan.io (sofern nicht `-xus` übergeben) abgerufen. Wenn auch die Option `-ow` übergeben wurde, wird eine vorhandene `waymore.txt`-Datei im Zielergebnisverzeichnis überschrieben, andernfalls werden neue Links angehängt und Duplikate entfernt.
- `index.txt` - Wenn `-mode` auf `R` oder `B` gesetzt ist und `-url-filename` nicht übergeben wurde, werden archivierte Antworten heruntergeladen und Hash-Werte für die gespeicherten Dateinamen verwendet. Diese Datei enthält eine kommagetrennte Liste von `<Hash>,<Archiv-URL>,<Zeitstempel>`, falls Sie wissen müssen, welche URLs welche Antwort erzeugt haben.
- `ALLE ANDEREN DATEIEN` - Diese archivierten Antwortdateien werden erstellt, wenn `-mode` auf `R` oder `B` gesetzt war. Wenn `-url-filename` übergeben wurde, sind die Dateinamen die Archiv-URLs, die die Antwort erzeugt haben, z.B. `https--example.com-robots.txt`, andernfalls ist der Dateiname ein Hash-Wert, z.B. `7960113391501.{EXT}`, wobei `{EXT}` die aus dem Pfad abgeleitete Erweiterung ist, andernfalls wird sie aus dem `content-type` der Antwort abgeleitet. Manchmal wird eine allgemeine Erweiterung vergeben, z.B. `.js` für jeden Inhaltstyp, der das Wort `javascript` enthält, andernfalls kann sie auf den letzten Teil des Typs gesetzt werden (z.B. wenn es `application/java-archive` ist, wird die Datei `7960113391501.java-archive` sein). Die Verwendung von Hash-Werten bedeutet, dass weniger Dateien geschrieben werden, da nur eine Datei pro eindeutiger Antwort vorhanden ist. Diese archivierten Antworten werden vor dem Speichern bearbeitet, um jeden Verweis auf `web.archive.org` zu entfernen.
## Info und Vorschläge
Die Anzahl der gefundenen Links und damit potenziell die Anzahl der heruntergeladenen archivierten Antwortdateien kann für viele Domains **GEWALTIG** sein. Dieses Tool dreht sich nicht um Geschwindigkeit, sondern darum, mehr zu finden, also haben Sie Geduld.
Es gibt eine Option `-p` zur Erhöhung der Prozessanzahl (verwendet beim Abrufen von Links aus allen Quellen und beim Herunterladen archivierter Antworten von archive.org). Obwohl es möglicherweise nicht so schnell ist, wie Sie möchten, würde ich empfehlen, `-p` auf dem Standardwert von 3 zu belassen, da ich persönlich Probleme mit dem Erhalten von Antworten bei höheren Werten hatte. Wir wollen diesen Diensten keine Probleme bereiten, also seien Sie vernünftig!
Ich verwende oft die Option `-f`, weil ich möchte, dass `waymore.txt` ALLE möglichen Links enthält. Auch wenn mir Bilder, Schriftarten usw. egal sind, könnte es dennoch nützlich sein, alle möglichen Pfade und vielleicht Parameter zu sehen. Filter werden jedoch immer auf das Herunterladen archivierter Antworten angewendet. Sie wollen keine Zeit damit verschwenden, Tausende von Bildern herunterzuladen!
Die Verwendung der Option `-v` kann helfen zu sehen, was im Hintergrund passiert, und könnte Ihnen helfen, wenn Sie nicht die erwartete Ausgabe erhalten.
Alle MIME Content-Typen der gefundenen URLs (von allen Quellen außer Alien Vault) werden angezeigt, wenn `-v` verwendet wird. Dies kann helfen, weitere Ausschlüsse hinzuzufügen, falls Sie feststellen, dass Sie immer noch Dinge erhalten, die Sie nicht sehen möchten. Wenn Sie einen MIME-Typ entdecken, der eingeschlossen wird, den Sie aber zukünftig nicht möchten, fügen Sie ihn zu `FILTER_MIME` in der `config.yml` hinzu.
Es ist zu beachten, dass der MIME-Typ auf archive.org manchmal als `unk` und `unknown` anstelle des echten MIME gespeichert ist, sodass der Filter sie nicht unbedingt aus den Ergebnissen entfernt. Die `FILTER_URL`-Konfigurationseinstellungen können verwendet werden, um diese nachträglich zu entfernen. Wenn beispielsweise ein GIF den MIME-Typ `unk` anstelle von `image/gif` hat (und das in `FILTER_MIME` enthalten ist), wird es nicht gefiltert. Wenn die URL jedoch `https://target.com/assets/logo.gif` lautet und `.gif` in `FILTER_URL` enthalten ist, wird es nicht angefordert.
Wenn `config.yml` nicht existiert oder die Filtereinträge nicht in der Datei vorhanden sind, werden Standardfilter verwendet. Es ist besser, die Datei zu haben und diese zu überprüfen, um sicherzustellen, dass Sie erhalten, was Sie benötigen.
Es können potenziell Millionen von Antworten sein, stellen Sie also sicher, dass Sie Filter setzen, aber auch das Limit (`-l`), Von-Datum (`-from`), Bis-Datum (`-to`) und/oder Erfassungsintervall (`-ci`), falls erforderlich. Das Limit ist standardmäßig 5000, aber angenommen, Sie möchten die neuesten 20.000 Antworten von 2015 bis Januar 2018 erhalten, würden Sie `-l -20000 -from 2015 -to 201801` übergeben. Das Erfassungsintervall bestimmt, wie viele Antworten für eine bestimmte URL innerhalb eines bestimmten Zeitraums heruntergeladen werden, z.B. wenn Sie auf `m` setzen, erhalten Sie nur eine Antwort pro Monat für eine URL. Der Standardwert `d` wird die Anzahl der Antworten wahrscheinlich stark reduzieren und es ist unwahrscheinlich, dass viele eindeutige Antworten übersehen werden, es sei denn, ein Ziel hat an einem bestimmten Tag mehr als einmal etwas geändert.
Ein weiteres nützliches Argument ist `-mc`, das nur Ergebnisse liefert, bei denen der HTTP-Statuscode mit der übergebenen kommagetrennten Liste übereinstimmt, z.B. `-mc 200` oder `-mc 200,403`.
Sie können die Anzahl (und damit die Ausführungszeit) von Links und Antworten erheblich reduzieren, indem Sie nur solche zurückgeben, die von Ihnen interessierende Schlüsselwörter enthalten. Sie können diese Schlüsselwörter in `config.yml` mit dem Schlüssel `FILTER_KEYWORDS` auflisten und dann das Argument `-ko`/`--keywords-only` übergeben, um diese zu verwenden, oder Sie können `-ko`/`--keywords-only` mit einem spezifischen Regex übergeben, z.B. `-ko "\.js(\?.*|$)"`, um nur JS-Dateien zu erhalten. **HINWEIS: Der CDX-Regex erfordert, dass alle Pfade mit der gesamten Zeichenkette übereinstimmen. Wenn `$` als Teil einer ODER-Gruppe verwendet wird, ist `.*` im Teil des Regex `(\?.*|$)` erforderlich.**
Wie bereits erwähnt, melden Sie sich bei [urlscan.io](https://urlscan.io/user/signup) an, um einen **KOSTENLOSEN** API-Schlüssel zu erhalten (es sind auch kostenpflichtige Abonnements verfügbar). Es wird empfohlen, einen Schlüssel zu besorgen und in die `config.yml`-Datei einzutragen, damit Sie mehr (und schneller) von deren API erhalten. HINWEIS: Sie werden gedrosselt, es sei denn, Sie haben ein vollständiges kostenpflichtiges Abonnement.
Die CDX-API der archive.org Wayback Machine kann manchmal eine enorme Anzahl von Anfragen erfordern, um alle Links zu erhalten. Wenn Sie zum Beispiel **waymore** für `-i twitter.com` ausführen, heißt es, dass **28.903.799** Anfragen an archive.org gestellt werden müssen (das könnte für manche Leute fast 1000 Tage dauern!!!). Das Argument `-lr` kann verwendet werden, um die Anzahl der Anfragen pro Quelle zu begrenzen (obwohl es normalerweise archive.org ist, das das Problem verursacht). Der Standardwert für das Argument ist 0 (Null), was keine Begrenzung bedeutet.
Es gibt auch ein Problem mit der CDX-API der Wayback Machine, bei dem die Anzahl der zurückgegebenen Seiten bei angewendeten Filtern nicht korrekt ist und Probleme verursachen kann (siehe https://github.com/internetarchive/wayback/issues/243). Bis dieses Problem behoben ist, kann die Einstellung des `-lr`-Arguments auf einen vernünftigen Wert kurzfristig bei diesem Problem helfen.
Die Common-Crawl-API hatte lange Zeit viele Probleme. Die Einbeziehung dieser Quelle könnte waymore viel länger laufen lassen und möglicherweise keine zusätzlichen Ergebnisse liefern. Sie können überprüfen, ob ein Problem vorliegt, indem Sie http://index.commoncrawl.org/collinfo.json besuchen und prüfen, ob dies erfolgreich ist. Erwägen Sie, Common Crawl ganz auszuschließen, indem Sie das `--providers`-Argument verwenden und `commoncrawl` nicht einschließen, oder das `-xcc`-Argument verwenden.
**Die API-Server der Anbieter sind nicht dafür ausgelegt, große Mengen zu bewältigen, also seien Sie vernünftig und rücksichtsvoll, was Sie ihnen zumuten!**
Beim Herunterladen archivierter Antworten kann dies lange dauern und kann manchmal aus irgendeinem Grund durch die Maschine oder manuell durch den Benutzer abgebrochen werden.
Im `results`-Verzeichnis des Ziels wird zu Beginn des Prozesses eine Datei namens `responses.tmp` erstellt, die alle Antwort-URLs enthält, die abgerufen werden. Es wird auch eine Datei namens `continueResp.tmp` geben, die den Index der zuletzt abgerufenen Antwort speichert. Wenn `waymore` ausgeführt wird, um Antworten zu erhalten (`-mode R` oder `-mode B`), und diese Dateien vorhanden sind, bedeutet dies, dass es einen vorherigen unvollständigen Durchlauf gab, und Sie werden gefragt, ob Sie stattdessen damit fortfahren möchten. Es wird dann dort fortgesetzt, wo es zuvor aufgehört hat.
## Einige grundlegende Beispiele
### Beispiel 1
Holen Sie nur die URLs von allen Quellen für `redbull.com` (`-mode U` ist nur für URLs, also werden keine Antworten heruntergeladen):
<center><img src="https://raw.githubusercontent.com/xnl-h4ck3r/waymore/main/waymore/images/example1.png"></center>
Die URLs werden im gleichen Pfad wie `config.yml` (typischerweise `~/.config/waymore`) unter `results/redbull.com/waymore.txt` gespeichert.
### Beispiel 2
Holen Sie ALLE URLs von Wayback für `redbull.com` (es werden keine Filter im `mode U` mit `-f` angewendet, und es werden keine URLs von Common Crawl, Alien Vault, URLScan und Virus Total abgerufen, da `-xcc`, `-xav`, `-xus`, `-xvt` jeweils übergeben werden. Dies kann auch erreicht werden, indem `--providers wayback` anstelle der Ausschlussargumente übergeben wird).
Speichern Sie die ERSTEN 200 Antworten, die ab 2022 gefunden werden (`-l 200 -from 2022`):
<center><img src="https://raw.githubusercontent.com/xnl-h4ck3r/waymore/main/waymore/images/example2.png"></center>
Der `-mode` wurde nicht explizit gesetzt, also standardmäßig auf `B` (Beides - URLs abrufen UND Antworten herunterladen).
Es wird eine Datei für jede eindeutige Antwort erstellt und ebenfalls in `results/redbull.com/` gespeichert:
<center><img src="https://raw.githubusercontent.com/xnl-h4ck3r/waymore/main/waymore/images/example3.png"></center>
Es wird auch eine Datei `results/redbull.com/index.txt` geben, die einen Verweis darauf enthält, welche URLs die Antwort für welche Datei geliefert haben, z.B.```
4847147712618,https://web.archive.org/web/20220426044405/https://www.redbull.com/additional-services/geo ,2022-06-24 20:07:50.603486
wobei 4847147712618 der Hash-Wert der Antwort in 4847147712618.xnl ist, der zweite Wert die Wayback Machine URL ist, unter der Sie die eigentliche archivierte Seite anzeigen können, und der dritte ein Zeitstempel des Zeitpunkts, zu dem die Antwort heruntergeladen wurde.
Sie können waymore an andere Tools weiterleiten. Fehler werden an stderr gesendet und gefundene Links an stdout. Die Ausgabedatei wird zusätzlich zu den an das nächste Programm weitergeleiteten Links erstellt. Allerdings werden archivierte Antworten nicht an das nächste Programm weitergeleitet, aber sie werden trotzdem in Dateien geschrieben. Zum Beispiel:```
waymore -i redbull.com -mode U | unfurl keys | sort -u
Sie können die Eingabe auch über `stdin` anstelle von `-i` übergeben.```
cat redbull_subs.txt | waymore
Manchmal möchten Sie vielleicht nur überprüfen, wie viele Anfragen und wie lange waymore voraussichtlich dauern würde, wenn Sie es für eine bestimmte Domain ausführen. Sie können eine schnelle Überprüfung durchführen, indem Sie das Argument -co/--check-only verwenden. Zum Beispiel:```
waymore -i redbull.com --check-only
<center><img src="https://raw.githubusercontent.com/xnl-h4ck3r/waymore/main/waymore/images/example4.png"></center>
## Noch mehr URLs finden!
Du hast jetzt also viele archivierte Antworten und möchtest zusätzliche Links finden? Einfach! Warum nicht [xnLinkFinder](https://github.com/xnl-h4ck3r/xnLinkFinder) verwenden?
Zum Beispiel:```
xnLinkFinder -i ~/Tools/waymore/results/redbull.com -sp https://www.redbull.com -sf redbull.com -o redbull.txt
Oder führen Sie andere Tools wie trufflehog oder gf über das Verzeichnis der Antworten aus, um noch mehr aus den archivierten Antworten zu finden!
Unten finden Sie einen ausführlichen Vortrag, den ich im März 2024 für Jason Haddix' Discord-Kanal gehalten habe, um ALLES abzudecken, was Sie über waymore wissen müssen.
HINWEIS: Dieses Video stammt vom März 2024, daher werden alle nach diesem Datum hinzugefügten Funktionen nicht gezeigt und einige Funktionen haben sich möglicherweise geändert. Bitte überprüfen Sie die aktuellen Anweisungen.
Sollten Sie auf Probleme stoßen oder Ideen für Verbesserungen haben, können Sie gerne ein Issue auf Github erstellen. Bei einem Problem ist es hilfreich, wenn Sie den genauen Befehl, den Sie ausgeführt haben, und eine detaillierte Beschreibung des Problems angeben. Führen Sie das Problem nach Möglichkeit mit -v aus, um es zu reproduzieren, und teilen Sie mir etwaige Fehlermeldungen mit.
-oos-Argument hinzu, das eine Datei mit Out-of-Scope-Subdomains/URLs akzeptiert, die nicht in der Ausgabe zurückgegeben werden und für die keine Antworten heruntergeladen werden.waymore_index.txt wird nicht dedupliziert, wenn sie mehrmals mit derselben Eingabe und -mode R oder -mode B ausgeführt wird.Viel Glück und gute Jagd! Wenn Sie das Tool (oder andere) wirklich lieben oder es Ihnen geholfen hat, eine tolle Bounty zu finden, überlegen Sie, MIR EINEN KAFFEE ZU KAUFEN! ☕ (Ich könnte das Koffein gebrauchen!)
🤘 /XNL-h4ck3r
-i-modeR-oR/resultsDEFAULT_OUTPUT_DIRconfig.yml~/.config/waymore/-i-i-oU ~/Recon/Redbull/waymoreUrls.txt/resultsDEFAULT_OUTPUT_DIRconfig.yml~/.config/waymore/-i-i-oR ~/Recon/Redbull/waymoreResponsesFILTER_CODEconfig.ymlconfig.ymlFILTER_MIMEconfig.ymlconfig.ymlFILTER_CODE-fcFILTER_MIME-ft-mode R-mode B20162018052021202112hdmdnone-ra '\.js(\?\|$)'-lcc 10100-xccSOURCE_IPconfig.ymlconfig.yml~/.config/waymore/FILTER_KEYWORDS-ko "admin"admin-ko "\.js(\?.*\|$)"waymore.txt-oUwaymore.new-oU.newmodus Umodus R-mode U-v-oUconfig.yml~/.config/waymore429429WEBHOOK_DISCORDconfig.ymlTELEGRAM_BOT_TOKENTELEGRAM_CHAT_IDconfig.yml-mode R-mode BcombinedInline{}.js{}combinedInlineSrc.txtsrc