
Extrait les secrets (mots de passe, clés API, jetons) des archives web WARC en utilisant les règles Gitleaks. Prend en charge HTTP, S3, fichiers locaux et archives compressées avec traitement concurrent.
Troll-A est un outil en ligne de commande pour extraire des secrets tels que mots de passe, clés API et jetons à partir de fichiers WARC (Web ARChive). Troll-A est une solution facile à utiliser, complète et rapide pour trouver des secrets dans une archive web.
*.megawarc.warc.zst).c7g.12xlarge. Cela peut être encore amélioré en réduisant les enregistrements WARC à traiter, via l'option --filter.Troll-A est distribué sous forme de binaires précompilés, d'image Docker ou de code source.Troll-A est disponible sur le registre de conteneurs de GitHub et peut être utilisé comme suit :
docker run --rm ghcr.io/crissyfield/troll-a [flags] [url]
Troll-A est également disponible sous forme de binaires pour macOS et Linux sur la page des versions.
[!NOTE] Contrairement à l'image Docker, les binaires précompilés sont compilés avec les expressions régulières de la bibliothèque standard de Go et sont donc sensiblement plus lents. Si les binaires natifs sont préférés et que les performances sont cruciales, il est recommandé de compiler les binaires à partir des sources.
Pour de meilleures performances, il est recommandé de compiler Troll-A à partir des sources, car cela permet d'utiliser le moteur d'expression régulière optimisé fourni par go-re2. Pour que cela fonctionne, la dépendance RE2 doit être installée au préalable.
# Install dependencies
brew install re2
# Install with RE2 activated
go install -tags re2_cgo github.com/crissyfield/[email protected]
# Install dependencies
sudo apt install -u build-essential libre2-dev
# Install with RE2 activated
go install -tags re2_cgo github.com/crissyfield/[email protected]
Usage:
troll-a [flags] [url]
This tool allows to extract (potential) secrets such as passwords, API keys, and tokens
from WARC (Web ARChive) files. Extracted information is output as structured text org
JSON, which simplifies further processing of the data.
"url" can be either a regular HTTP or HTTPS reference ("https://domain/path"), an Amazon
S3 reference ("s3://bucket/path"), a file path (either "file:///path" or simply "path"),
or a dash ("-") to read from STDIN. If "url" is omitted data is read from STDIN. If the
input data is compressed with either GZip, BZip2, XZ, or ZStd it is automatically
decompressed. ZStd with a prepended custom dictionary (as used by "*.megawarc.warc.zstd")
is also handled transparently.
This tool uses rules from the Gitleaks project (https://gitleaks.io) to detect secrets.
Flags:
-c, --custom stringArray additional custom rule to apply. Secrets that match the
given regular expression (using RE2 syntax) will also be
reported. Can be specified multiple times.
-e, --enclosed only report secrets that are enclosed within their context
-f, --filter string filter for the target URL of each WARC record. Only WARC
records that match the given regular expression (using RE2
syntax) will be checked for secrets. An empty filter will
match everything.
-h, --help help for troll-a
-j, --jobs uint detect secrets with this many concurrent jobs (default 8)
-s, --json output detected secrets as JSON
-p, --preset rules-preset rules preset to use. This could be one of the following:
all: All known rules will be applied, which can
result in a significant amount of noise for
large data sets.
most: Most of the rules are applied, skipping the
biggest culprits for false positives.
secret: Only rules are applied that are most likely
to result in an actual leak of a secret.
none: No rules at all are applied. This can be used
in combination with custom rules via the
--custom/-c switch.
No other values are allowed. (default secret)
-q, --quiet suppress success message(s)
-r, --retry retry-strategy retry strategy to use. This could be one of the following:
never: This strategy will fail after the first fetch
failure and will not attempt to retry.
constant: This strategy will attempt to retry up to 5
times, with a 5s delay after each attempt.
exponential: This strategy will attempt to retry for 15
minutes, with an exponentially increasing
delay after each attempt.
always: This strategy will attempt to retry forever,
with no delay at all after each attempt.
No other values are allowed. (default never)
-t, --timeout duration fetching timeout (does not apply to files) (default 30m0s)
-v, --version version for troll-a
Common Crawl maintient un référentiel gratuit et ouvert de données de crawl web qui peut être utilisé par tout le monde. Le corpus Common Crawl contient des pétaoctets de données collectées régulièrement depuis 2008.