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/DumpsterDiver

Overview

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)