
Estrae segreti (password, chiavi API, token) da archivi web WARC usando le regole di Gitleaks. Supporta HTTP, S3, file locali e archivi compressi con elaborazione concorrente.
Troll-A è uno strumento da riga di comando per estrarre segreti come password, chiavi API e token da file WARC (Web ARChive). Troll-A è una soluzione facile da usare, completa e veloce per trovare segreti negli archivi web.
*.megawarc.warc.zst).c7g.12xlarge. Ciò può essere ulteriormente migliorato restringendo i record WARC da elaborare, tramite l'opzione --filter.Troll-A è distribuito come binari precompilati, come immagine Docker o in forma sorgente.Troll-A è disponibile sul container registry di GitHub e può essere utilizzato come segue:
docker run --rm ghcr.io/crissyfield/troll-a [flags] [url]
Troll-A è disponibile anche in forma binaria per macOS e Linux nella pagina delle release.
[!NOTE] A differenza dell'immagine Docker, i binari precompilati sono compilati utilizzando le espressioni regolari della libreria standard di Go e sono quindi notevolmente più lenti. Se si preferiscono binari nativi e le prestazioni sono cruciali, si consiglia di compilare i binari dal sorgente.
Per prestazioni migliori, si consiglia di compilare Troll-A dal sorgente, poiché ciò consente di utilizzare il motore di espressioni regolari ottimizzato fornito da go-re2. Affinché funzioni, è necessario installare prima la dipendenza RE2.
# Installa le dipendenze
brew install re2
# Installa con RE2 attivato
go install -tags re2_cgo github.com/crissyfield/[email protected]
# Installa le dipendenze
sudo apt install -u build-essential libre2-dev
# Installa con RE2 attivato
go install -tags re2_cgo github.com/crissyfield/[email protected]
Usage:
troll-a [flags] [url]
Questo strumento consente di estrarre segreti (potenziali) come password, chiavi API e token
da file WARC (Web ARChive). Le informazioni estratte vengono emesse come testo strutturato o
JSON, semplificando l'ulteriore elaborazione dei dati.
"url" può essere un riferimento HTTP o HTTPS regolare ("https://domain/path"), un riferimento
Amazon S3 ("s3://bucket/path"), un percorso file (sia "file:///path" che semplicemente "path"),
o un trattino ("-") per leggere da STDIN. Se "url" viene omesso, i dati vengono letti da STDIN.
Se i dati in input sono compressi con GZip, BZip2, XZ o ZStd, vengono automaticamente
decompressi. ZStd con un dizionario personalizzato preposto (come usato nei file
"*.megawarc.warc.zstd") viene gestito trasparentemente.
Questo strumento utilizza le regole del progetto Gitleaks (https://gitleaks.io) per rilevare
segreti.
Flags:
-c, --custom stringArray regola personalizzata aggiuntiva da applicare. Verranno
segnalati anche i segreti che corrispondono all'espressione
regolare data (usando la sintassi RE2). Può essere specificata
più volte.
-e, --enclosed segnala solo i segreti che sono racchiusi nel loro contesto
-f, --filter string filtro per l'URL target di ogni record WARC. Solo i record
WARC che corrispondono all'espressione regolare data (usando
la sintassi RE2) verranno controllati per i segreti. Un
filtro vuoto corrisponderà a tutto.
-h, --help aiuto per troll-a
-j, --jobs uint rileva segreti con questo numero di lavori concorrenti
(predefinito 8)
-s, --json emette i segreti rilevati come JSON
-p, --preset rules-preset preset di regole da utilizzare. Può essere uno dei seguenti:
all: Tutte le regole note verranno applicate, il che
può comportare una quantità significativa di
rumore per grandi set di dati.
most: La maggior parte delle regole viene applicata,
saltando i principali colpevoli di falsi
positivi.
secret: Vengono applicate solo le regole che hanno
maggiori probabilità di portare a una fuga di
segreti effettiva.
none: Nessuna regola viene applicata. Può essere
utilizzato in combinazione con regole
personalizzate tramite l'opzione --custom/-c.
Nessun altro valore è consentito. (predefinito secret)
-q, --quiet sopprime i messaggi di successo
-r, --retry retry-strategy strategia di ripetizione da utilizzare. Può essere uno dei
seguenti:
never: Questa strategia fallirà dopo il primo errore
di recupero e non tenterà di riprovare.
constant: Questa strategia tenterà di riprovare fino a 5
volte, con un ritardo di 5 secondi dopo ogni
tentativo.
exponential: Questa strategia tenterà di riprovare per 15
minuti, con un ritardo crescente in modo
esponenziale dopo ogni tentativo.
always: Questa strategia tenterà di riprovare per
sempre, senza alcun ritardo dopo ogni
tentativo.
Nessun altro valore è consentito. (predefinito never)
-t, --timeout duration timeout di recupero (non si applica ai file) (predefinito
30m0s)
-v, --version versione per troll-a