dumpsterdiver
Scanner de secrets pour le stockage cloud. Recherche dans les buckets AWS S3, les blobs Azure et Google Cloud Storage des identifiants exposés, des clés API, des clés privées et des fichiers de configuration sensibles. Cloud storage secrets scanner. Searches through AWS S3 buckets, Azure blobs, and Google Cloud Storage for exposed credentials, API keys, private keys, and sensitive configuration files.
↗ https://github.com/securing/DumpsterDiverOverview
DumpsterDiver analyzes files in cloud storage buckets to find exposed secrets. It searches for entropy-based anomalies (high-entropy strings likely to be keys/tokens), specific patterns (AWS keys, private keys, passwords), and sensitive file types — automating the manual process of reviewing exposed bucket contents.
Installation
git clone https://github.com/securing/DumpsterDiver
cd DumpsterDiver
pip3 install -r requirements.txt
Basic Usage
Analyze a local directory of downloaded files
python3 DumpsterDiver.py -p /path/to/files/
With rule files (custom patterns)
python3 DumpsterDiver.py -p /path/to/files/ --rules rules.yaml
Analyze specific file types
python3 DumpsterDiver.py -p /path/to/files/ --extension .py,.js,.env
Save results to JSON
python3 DumpsterDiver.py -p /path/to/files/ -o results.json
Scanning Cloud Storage
First: download bucket contents AWS S3 public bucket
aws s3 sync s3://target-bucket ./downloaded/ --no-sign-request
Then analyze
python3 DumpsterDiver.py -p ./downloaded/
Azure Blob (public)
az storage blob download-batch -d ./downloaded/ --source CONTAINER_URL
For GCP
gsutil -m cp -r gs://bucket-name ./downloaded/
Configuration and Rules
# Custom rules file (YAML):
# rules.yaml example:
# - name: "AWS Access Key"
# pattern: "AKIA[0-9A-Z]{16}"
# severity: high
# - name: "Private Key"
# pattern: "-----BEGIN.*PRIVATE KEY-----"
# severity: critical
python3 DumpsterDiver.py -p ./files/ --rules rules.yaml
Adjust entropy threshold (default: 4.5)
python3 DumpsterDiver.py -p ./files/ --min_key_len 20 --entropy 4.0
What DumpsterDiver Finds
# High-value findings:
# AWS Access Keys (AKIA...)
# RSA/SSH private keys (-----BEGIN RSA PRIVATE KEY-----)
# API tokens and secrets
# Database connection strings
# .env files with credentials
# Configuration files (config.yml, settings.py)
# Hardcoded passwords in source code
Combining with Other Tools
Find buckets first with s3scanner
s3scanner scan --buckets-file companies.txt --dump
Then analyze dumps
python3 DumpsterDiver.py -p ./s3scanner_output/
Or with cloud_enum
cloud_enum -k "targetcompany" | tee buckets.txt
→ Download and analyze found buckets
Tips
- Focus on .env, .config, .yml, .json, .py, .js files — highest yield for secrets
- High entropy strings in non-text positions often indicate base64-encoded credentials
- AWS_ACCESS_KEY_ID always starts with AKIA — easy to grep for
- Check JavaScript bundles from web apps — often contain API keys
- Combine with trufflehog for git repository scanning
Help / Man page
DumpsterDiver.py [options]
-p PATH Path to scan (directory)
-o FILE Output JSON file
--rules FILE Custom rules YAML file
--extension E Comma-separated file extensions to scan
--entropy N Minimum entropy threshold (default: 4.5)
--min_key_len N Minimum key length (default: 20)
--max_key_len N Maximum key length (default: 80)
Vue d’ensemble
DumpsterDiver analyse les fichiers dans les buckets de stockage cloud pour trouver des secrets exposés. Il recherche des anomalies basées sur l’entropie (chaînes à haute entropie susceptibles d’être des clés/tokens), des motifs spécifiques (clés AWS, clés privées, mots de passe), et des types de fichiers sensibles : automatisant le processus manuel de revue du contenu de buckets exposés.
Installation
git clone https://github.com/securing/DumpsterDiver
cd DumpsterDiver
pip3 install -r requirements.txt
Utilisation de base
# Analyser un répertoire local de fichiers téléchargés
python3 DumpsterDiver.py -p /path/to/files/
# Avec des fichiers de règles (motifs personnalisés)
python3 DumpsterDiver.py -p /path/to/files/ --rules rules.yaml
# Analyser des types de fichiers spécifiques
python3 DumpsterDiver.py -p /path/to/files/ --extension .py,.js,.env
# Sauvegarder les résultats en JSON
python3 DumpsterDiver.py -p /path/to/files/ -o results.json
Scan du stockage cloud
D’abord : télécharger le contenu d’un bucket S3 public
aws s3 sync s3://target-bucket ./downloaded/ --no-sign-request
Puis analyser
python3 DumpsterDiver.py -p ./downloaded/
Azure Blob (public)
az storage blob download-batch -d ./downloaded/ --source CONTAINER_URL
Pour GCP
gsutil -m cp -r gs://bucket-name ./downloaded/
Configuration et règles
# Fichier de règles personnalisées (YAML) :
# exemple rules.yaml :
# - name: "AWS Access Key"
# pattern: "AKIA[0-9A-Z]{16}"
# severity: high
# - name: "Private Key"
# pattern: "-----BEGIN.*PRIVATE KEY-----"
# severity: critical
python3 DumpsterDiver.py -p ./files/ --rules rules.yaml
Ajuster le seuil d’entropie (par défaut : 4.5)
python3 DumpsterDiver.py -p ./files/ --min_key_len 20 --entropy 4.0
Ce que DumpsterDiver trouve
# Findings à forte valeur :
# Clés d'accès AWS (AKIA...)
# Clés privées RSA/SSH (-----BEGIN RSA PRIVATE KEY-----)
# Tokens API et secrets
# Chaînes de connexion à des bases de données
# Fichiers .env avec des identifiants
# Fichiers de configuration (config.yml, settings.py)
# Mots de passe codés en dur dans le code source
Combinaison avec d’autres outils
Trouver d’abord des buckets avec s3scanner
s3scanner scan --buckets-file companies.txt --dump
Puis analyser les dumps
python3 DumpsterDiver.py -p ./s3scanner_output/
Ou avec cloud_enum
cloud_enum -k "targetcompany" | tee buckets.txt
→ Télécharger et analyser les buckets trouvés
Conseils
- Concentrez-vous sur les fichiers .env, .config, .yml, .json, .py, .js : rendement le plus élevé pour les secrets
- Les chaînes à haute entropie dans des positions non textuelles indiquent souvent des identifiants encodés en base64
- AWS_ACCESS_KEY_ID commence toujours par AKIA : facile à grep
- Vérifiez les bundles JavaScript des applications web : ils contiennent souvent des clés API
- Combinez avec trufflehog pour le scan de dépôts git
Aide / Page de manuel
DumpsterDiver.py [options]
-p PATH Path to scan (directory)
-o FILE Output JSON file
--rules FILE Custom rules YAML file
--extension E Comma-separated file extensions to scan
--entropy N Minimum entropy threshold (default: 4.5)
--min_key_len N Minimum key length (default: 20)
--max_key_len N Maximum key length (default: 80)