
Extrahiert Geheimnisse (Passwörter, API-Schlüssel, Token) aus WARC-Webarchiven mittels Gitleaks-Regeln. Unterstützt HTTP, S3, lokale Dateien und komprimierte Archive mit gleichzeitiger Verarbeitung.
Troll-A ist ein Kommandozeilenwerkzeug zum Extrahieren von Geheimnissen wie Passwörtern, API-Schlüsseln und Tokens aus WARC-Dateien (Web ARChive). Troll-A ist eine einfach zu verwendende, umfassende und schnelle Lösung zum Auffinden von Geheimnissen in Webarchiven.
*.megawarc.warc.zst-Dateien verwendet).c7g.12xlarge zu verarbeiten. Dies kann weiter verbessert werden, indem die zu verarbeitenden WARC-Datensätze über die Option --filter eingegrenzt werden.Troll-A wird als vorgefertigte Binärdateien, als Docker-Image oder im Quellcode vertrieben.Troll-A ist im Container-Registry von Github verfügbar und kann wie folgt verwendet werden:
docker run --rm ghcr.io/crissyfield/troll-a [flags] [url]
Troll-A ist auch in Binärform für macOS und Linux auf der Releases-Seite verfügbar.
[!NOTE] Im Gegensatz zum Docker-Image werden die vorgefertigten Binärdateien mit den regulären Ausdrücken von Gos Stdlib kompiliert und sind daher merklich langsamer. Wenn native Binärdateien bevorzugt werden und die Leistung entscheidend ist, wird empfohlen, die Binärdateien aus dem Quellcode zu erstellen.
Für eine bessere Leistung wird empfohlen, Troll-A aus dem Quellcode zu erstellen, da dies die Verwendung der optimierten Engine für reguläre Ausdrücke von go-re2 ermöglicht. Damit dies funktioniert, muss zunächst die Abhängigkeit RE2 installiert werden.
# Abhängigkeiten installieren
brew install re2
# Mit aktiviertem RE2 installieren
go install -tags re2_cgo github.com/crissyfield/[email protected]
# Abhängigkeiten installieren
sudo apt install -u build-essential libre2-dev
# Mit aktiviertem RE2 installieren
go install -tags re2_cgo github.com/crissyfield/[email protected]
Usage:
troll-a [flags] [url]
Dieses Werkzeug erlaubt es, (potenzielle) Geheimnisse wie Passwörter, API-Schlüssel und Tokens aus WARC-Dateien
(Web ARChive) zu extrahieren. Extrahierte Informationen werden als strukturierter Text oder JSON ausgegeben,
was die weitere Verarbeitung der Daten vereinfacht.
"url" kann entweder eine normale HTTP- oder HTTPS-Referenz ("https://domain/path"), eine Amazon
S3-Referenz ("s3://bucket/path"), ein Dateipfad (entweder "file:///path" oder einfach "path")
oder ein Bindestrich ("-") zum Lesen von STDIN sein. Wenn "url" weggelassen wird, werden die Daten von STDIN
gelesen. Wenn die Eingabedaten mit GZip, BZip2, XZ oder ZStd komprimiert sind, werden sie automatisch
dekomprimiert. ZStd mit einem vorangestellten benutzerdefinierten Wörterbuch (wie bei "*.megawarc.warc.zstd" verwendet)
wird ebenfalls transparent verarbeitet.
Dieses Werkzeug verwendet Regeln aus dem Gitleaks-Projekt (https://gitleaks.io) zur Erkennung von Geheimnissen.
Flags:
-c, --custom stringArray eine zusätzliche benutzerdefinierte Regel, die angewendet werden soll. Geheimnisse,
die auf den angegebenen regulären Ausdruck (unter Verwendung der RE2-Syntax) passen,
werden ebenfalls gemeldet. Kann mehrmals angegeben werden.
-e, --enclosed nur Geheimnisse melden, die in ihrem Kontext eingeschlossen sind
-f, --filter string Filter für die Ziel-URL jedes WARC-Datensatzes. Nur WARC-Datensätze,
die auf den angegebenen regulären Ausdruck (unter Verwendung der RE2-Syntax) passen,
werden auf Geheimnisse überprüft. Ein leerer Filter passt auf alles.
-h, --help Hilfe für troll-a
-j, --jobs uint Geheimnisse mit dieser Anzahl nebenläufiger Jobs erkennen (Standard 8)
-s, --json erkannte Geheimnisse als JSON ausgeben
-p, --preset rules-preset zu verwendende Regeln-Voreinstellung. Kann eine der folgenden sein:
all: Alle bekannten Regeln werden angewendet, was bei großen Datensätzen
zu einer erheblichen Menge an Rauschen führen kann.
most: Die meisten Regeln werden angewendet, wobei die größten Übeltäter
für Fehlalarme übersprungen werden.
secret: Es werden nur Regeln angewendet, die am ehesten zu einem tatsächlichen
Leck eines Geheimnisses führen.
none: Es werden überhaupt keine Regeln angewendet. Dies kann in Kombination
mit benutzerdefinierten Regeln über den Schalter --custom/-c verwendet werden.
Andere Werte sind nicht erlaubt. (Standard secret)
-q, --quiet Erfolgsmeldung(en) unterdrücken
-r, --retry retry-strategy zu verwendende Wiederholungsstrategie. Kann eine der folgenden sein:
never: Diese Strategie wird nach dem ersten Abruffehler fehlschlagen und
keinen Wiederholungsversuch unternehmen.
constant: Diese Strategie wird versuchen, bis zu 5 Mal zu wiederholen,
mit einer Verzögerung von 5s nach jedem Versuch.
exponential: Diese Strategie wird versuchen, 15 Minuten lang zu wiederholen,
mit einer exponentiell steigenden Verzögerung nach jedem Versuch.
always: Diese Strategie wird versuchen, für immer zu wiederholen,
ohne Verzögerung nach jedem Versuch.
Andere Werte sind nicht erlaubt. (Standard never)
-t, --timeout duration Abruf-Timeout (gilt nicht für Dateien) (Standard 30m0s)
-v, --version Version für troll-a
Common Crawl unterhält ein kostenloses, offenes Repository mit Web-Crawl-Daten, das von jedermann genutzt werden kann. Das Common-Crawl-Korpus enthält Petabytes an Daten, die seit 2008 regelmäßig gesammelt werden.
Um beispielsweise Geheimnisse aus allen 3,35 Milliarden Seiten des Crawls von November/Dezember 2023 (genannt CC-MAIN-2023-50) zu extrahieren, können Sie Folgendes tun:
# Liste aller 90.000 WARC-Pfade herunterladen
curl -sSL -O https://data.commoncrawl.org/crawl-data/CC-MAIN-2023-50/warc.paths.gz
# Durch alle Pfade mit 64 Scan-Jobs iterieren, Übereinstimmungen als JSON ausgeben
gzcat warc.paths.gz | \
xargs -I{} -- troll-a -e -s -j64 https://data.commoncrawl.org/{} > secrets.json
[!WARNING] Dies wird eine lange Zeit dauern! Abhängig von Ihrer Hardware und Internetverbindung kann dies zwischen einer Woche und mehreren Monaten dauern. Sie sollten dieses Beispiel möglicherweise nur für die ersten Zeilen von
warc.paths.gzausführen.
Das Archive Team ist eine Gruppe, die sich der digitalen Bewahrung und Webarchivierung widmet und 2009 gegründet wurde. Webarchive werden als WARC-Dateien (genauer gesagt im MegaWARC-Format) gespeichert und über das Internet Archive zugänglich gemacht.
Um beispielsweise Geheimnisse aus den 113.372 Seiten zu extrahieren, die das Archive Team im April 2023 von pastebin.com gecrawlt hat (hier ist die entsprechende Veröffentlichung im Internet Archive), können Sie Folgendes tun:
# Rufen Sie troll-a direkt mit der MegaWARC-URL auf
troll-a -e https://archive.org/download/archiveteam_pastebin_20230421003309_a3b951b4/pastebin_20230421003309_a3b951b4.1603050931.megawarc.warc.zst
...was zu folgender Ausgabe führt...
Detected: secret="acf30fb56amsh654fa8104418601p1e420cjsn3152a0032f0b" rule="rapidapi-access-token" uri="https://pastebin.com/raw/bKMJXkQE" line=36 column=15
Detected: secret="acf30fb56amsh654fa8104418601p1e420cjsn3152a0032f0b" rule="rapidapi-access-token" uri="https://pastebin.com/raw/bKMJXkQE" line=36 column=15
Detected: secret="acf30fb56amsh654fa8104418601p1e420cjsn3152a0032f0b" rule="rapidapi-access-token" uri="https://pastebin.com/raw/nferefe2" line=37 column=6
Detected: secret="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" rule="github-pat" uri="https://pastebin.com/print/cQEA2GCS" line=39 column=123
Detected: secret="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" rule="github-pat" uri="https://pastebin.com/embed_js/cQEA2GCS" line=11 column=2688
Detected: secret="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" rule="github-pat" uri="https://pastebin.com/embed_iframe/cQEA2GCS?theme=dark" line=49 column=123
Detected: secret="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" rule="github-pat" uri="https://pastebin.com/cQEA2GCS" line=222 column=123
Detected: secret="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" rule="github-pat" uri="https://pastebin.com/raw/cQEA2GCS" line=22 column=22
Detected: secret="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" rule="github-pat" uri="https://pastebin.com/embed_iframe/cQEA2GCS" line=48 column=123
Detected: secret="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" rule="github-pat" uri="https://pastebin.com/embed_js/cQEA2GCS?theme=dark" line=11 column=2796
Detected: secret="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" rule="github-pat" uri="https://pastebin.com/clone/cQEA2GCS" line=152 column=27
Success: Processed https://archive.org/download/archiveteam_pastebin_20230421003309_a3b951b4/pastebin_20230421003309_a3b951b4.1603050931.megawarc.warc.zst (113372 records)
Die Regelsammlung zur Erkennung der tatsächlichen Geheimnisse ist Teil des Gitleaks-Projekts. Wir sind sehr dankbar für die enorme Arbeit, die sie bei der Zusammenstellung all dieser Informationen geleistet haben!
Die Troll-A-Plattform ist eine Erdgasplattform im Troll-Öl- und Gasfeld vor der Westküste Norwegens. Mit Stand 2014 war sie das höchste Bauwerk, das jemals an einen anderen Ort bewegt wurde, relativ zur Erdoberfläche, und gehört zu den größten und komplexesten Ingenieurprojekten der Geschichte. 1996 stellte die Plattform den Guinness-Weltrekord für die größte Offshore-Gasplattform auf.
[!NOTE] Während wir die Ausbeutung natürlicher Ressourcen zutiefst ablehnen, bewundern wir die ingenieurtechnische Meisterleistung!