
Outil de minage avancé pour le contenu sur Github
+---------------------------------------------------+
| LES DÉVELOPPEURS DÉCLINENT TOUTE RESPONSABILITÉ |
| ET NE SONT PAS RESPONSABLES DE TOUT USAGE ABUSIF |
| OU DOMMAGE CAUSÉ PAR CE PROGRAMME |
+---------------------------------------------------+
GitMiner v3 est un outil modulaire conçu pour découvrir des informations sensibles dans les dépôts GitHub publics. Il utilise des requêtes dork avancées, la correspondance de motifs regex et génère des rapports complets de renseignement sur les menaces.
Ce projet est une refonte complète du script Gitminer original, axée sur la maintenabilité, l'évolutivité et les principes d'architecture logicielle professionnelle.
Le projet est organisé en une structure modulaire pour séparer les préoccupations et améliorer la clarté.
gitminer_v3/
├── config/ # Fichiers de configuration
│ ├── paths.yaml # Chemins des répertoires, fichiers et API
│ ├── labels.yaml # Correspondances regex-vers-étiquettes pour les paramètres
│ └── patterns.yaml # Motifs regex pour la détection de secrets
├── data/ # Stockage persistant des données
│ └── gitminer_history.sqlite # Base de données SQLite pour l'historique
├── gitminer/ # Paquet Python principal
│ ├── __init__.py
│ ├── config_manager.py # Charge et gère toutes les configurations
│ ├── github_client.py # Gère toutes les interactions avec l'API GitHub
│ ├── file_manager.py # Gère les téléchargements et le stockage des fichiers
│ ├── pattern_analyzer.py # Analyse les fichiers à la recherche de secrets
│ ├── database.py # Gère les opérations de la base de données SQLite
│ ├── report_generator.py # Génère les rapports Markdown
│ └── utils.py # Fonctions utilitaires partagées
├── raw/ # Stocke les fichiers téléchargés depuis GitHub
├── reports/ # Stocke les rapports de renseignement sur les menaces générés
├── gitminer_v3.py # Script exécutable principal
├── requirements.txt # Dépendances Python
└── README.md # Ce fichier
public_repo.Clonez le dépôt ou téléchargez le code source.
Configurez votre jeton GitHub : GitMiner nécessite un jeton GitHub pour interagir avec l'API. Vous devez le définir comme variable d'environnement.
export GITHUB_TOKEN="votre_jeton_dacces_personnel_github_ici"
Installez les paquets Python requis :
pip install -r requirements.txt
Le comportement de GitMiner est contrôlé par les fichiers du répertoire config/.
paths.yamlCe fichier définit tous les chemins et paramètres API importants.
directories : Spécifie où stocker les fichiers bruts, les rapports et les données.files : Définit les noms de la base de données et de la sortie CSV par défaut.github : Contient les paramètres de l'API GitHub, tels que les URL, les délais d'attente et les limites de résultats par défaut.labels.yamlCe fichier fait correspondre les motifs regex à des étiquettes lisibles par l'humain. Il est principalement utilisé pour identifier les noms de paramètres (par exemple, ftp_user, api_key) dans le code.
# Format : "motif_regex" : "NOM_ÉTIQUETTE"
"(?i)(api[_\\- ]?key|apikey)": "API_KEY"
"(?i)(password|passwd)": "PASSWORD"
patterns.yamlCe fichier contient les motifs regex principaux utilisés pour détecter les valeurs sensibles comme les clés, jetons et identifiants.
# Format : NOM_MOTIF : "motif_regex"
GITHUB_TOKEN: "ghp_[A-Za-z0-9_]{36,255}"
AWS_ACCESS_KEY_ID: "AKIA[0-9A-Z]{16}"
Le script principal gitminer_v3.py est le point d'entrée pour toutes les opérations.
| Argument | Court | Description | Requis |
|---|---|---|---|
--dorks | -d | Fichier contenant les dorks (un par ligne) ou une chaîne de dork unique. | Oui |
--token | -t | Jeton GitHub (remplace la variable d'environnement GITHUB_TOKEN). | Non |
--max-results | -m | Nombre maximal de résultats à récupérer par dork. (Défaut : 200) | Non |
--per-page | -p | Résultats par page pour l'API. (Défaut : 30, Max : 100) | Non |
--output-csv | -o | Exporte un résumé des fichiers téléchargés vers un fichier CSV. | Non |
--report | Génère un rapport détaillé de renseignement sur les menaces en Markdown. | Non | |
--no-analyze | Ignore l'étape d'analyse locale des fichiers (télécharge uniquement les fichiers). | Non |
Recherche avec un dork unique et génération d'un rapport :
python3 gitminer_v3.py -d "filename:.env DB_PASSWORD" --report
Recherche avec un fichier contenant plusieurs dorks :
Créez un fichier nommé dorks.txt :
filename:wp-config.php DB_PASSWORD
filename:settings.py SECRET_KEY
extension:pem private
Puis exécutez la commande :
python3 gitminer_v3.py -d dorks.txt -m 500 --report
Export d'une liste de tous les fichiers téléchargés vers un CSV :