
Un outil OSINT qui aide à détecter les membres d'une entreprise ayant des identifiants divulgués
EmploLeaks est un outil OSINT (Open Source Intelligence) avec une interface CLI, conçu pour découvrir et corréler des informations sur les employés d'une entreprise cible. Il permet de collecter des profils LinkedIn, générer des adresses e-mail professionnelles potentielles, rechercher des identifiants divulgués dans des bases de données de fuites (ClickHouse en interne), vérifier les violations connues via HaveIBeenPwned, découvrir l'infrastructure de l'entreprise et profiler les employés sur les réseaux sociaux. Toutes les informations sont stockées localement dans SQLite pour une analyse ultérieure.
emploleaks/ ├── emploleaks.py # Script principal (CLI interactiva con cmd2) ├── telegram_sync.py # Daemon userbot de Telegram (Telethon, standalone) ├── requirements.txt # Dependencias de Python ├── README.md ├── .gitignore ├── plugins/ │ ├── linkedin.py # Plugin de LinkedIn (scraping de empleados) │ ├── github.py # Plugin de GitHub (repos, stalk, secrets) │ └── hibp.py # Plugin de HaveIBeenPwned (brechas) ├── utils/ │ ├── logging_format.py # Configuración de logging con colores │ ├── ai_classifier.py # Clasificación de roles con IA (OpenAI/Ollama) │ ├── leak_parser.py # Parser de leaks 100% agéntico (loop de IA, sin regex) │ ├── email_lookup.py # Búsqueda de emails en redes sociales (Holehe) │ ├── profile_lookup.py # Búsqueda de usernames en redes sociales (Maigret) │ └── discovery.py # Enumeración de subdominios (assetfinder + SecurityTrails opcional) ├── clickhouse-docker/ # Docker Compose para levantar ClickHouse │ ├── docker-compose.yml │ └── config/ │ └── users.xml ├── leaks_data/ # Carpeta para archivos de leaks a importar (no en git) ├── config/ # Configuración (autogenerado) │ └── tokens.ini # Tokens y credenciales de plugins (no en git) ├── data/ # Base de datos local (autogenerado) │ └── emploleaks.db # SQLite con toda la información recopilada ├── webapp/ # Webapp administrativa │ ├── backend/ # FastAPI (Python) │ └── frontend/ # Next.js (React/TypeScript) └── logs/ # Archivos de log (autogenerado) └── log.txt
## Prérequis
- Python 3.10+
- pip
- Connexion Internet
- **Optionnel :** Docker et Docker Compose (pour lancer ClickHouse localement)
- **Optionnel :** [gitleaks](https://github.com/gitleaks/gitleaks) (pour le scan de secrets dans les dépôts)
- **Optionnel :** clé API de [HaveIBeenPwned](https://haveibeenpwned.com/API/Key)
- Cookies de session LinkedIn (`JSESSIONID` et `li_at`) pour le plugin LinkedIn
## Installation
1. Cloner le dépôt :```bash
git clone https://github.com/yourusername/emploleaks.git
cd emploleaks
3. (Optionnel) Lancer ClickHouse avec Docker pour la base de données de fuites :```bash
cd clickhouse-docker
docker compose up -d
cd ..
Exécuter l'outil :```bash python emploleaks.py
Avec le mode debug :```bash
python emploleaks.py -d
| Commande | Description |
|---|---|
help | Affiche l'aide générale |
help <comando> | Affiche l'aide d'une commande spécifique |
quit | Quitte l'application |
| Commande | Description |
|---|---|
add_company --name <nombre> | Ajoute une nouvelle entreprise |
select_company --name <nombre> | Sélectionne une entreprise pour travailler |
list_companies | Affiche toutes les entreprises |
delete_company --name <nombre> | Supprime une entreprise et toutes ses données |
| Commande | Description |
|---|---|
use --plugin <nombre> | Active un plugin (linkedin, github, hibp) |
deactivate | Désactive le plugin actuel |
show options | Affiche les options du plugin actif |
setopt <opción> [valor] | Configure une option du plugin (si aucune valeur n'est fournie, elle est demandée via une invite cachée) |
autosave --enable / --disable | Active/désactive la sauvegarde automatique de la configuration dans config/tokens.ini |
autoload --enable / --disable | Active/désactive le chargement automatique de la configuration depuis config/tokens.ini |
| Commande | Description |
|---|---|
connect_leaks | Connecter à ClickHouse en utilisant la configuration sauvegardée dans tokens.ini |
connect_leaks --host <host> --port <port> --save | Connecter avec des paramètres spécifiques et les sauvegarder pour les sessions futures |
disconnect_leaks | Déconnecter de la base de données ClickHouse |
import_leaks [directorio] | Importer des fichiers de credentials dans ClickHouse (par défaut: leaks_data/) |
import_leaks --no-ai | Importer uniquement les fichiers au format connu, sans utiliser IA |
create_db --user <user> --passwd <pass> --dbname <db> [--import-data <dir>] | Créer la base de données ClickHouse manuellement (legacy) |
La connexion à ClickHouse se configure dans config/tokens.ini :```ini
[clickhouse]
host = localhost
port = 9000
user = default
passwd =
dbname = credentials_db
Si ClickHouse est configuré dans `tokens.ini`, la connexion s'établit automatiquement au démarrage.
### Recherche d'Identifiants et de Violations de Données
| Commande | Description |
|---------|-------------|
| `find_passwords <modo>` | Recherche des identifiants dans ClickHouse + [ProxyNova COMB](https://www.proxynova.com/tools/comb/) (3,2 milliards d'identifiants). Modes : `find_all`, `only_usernames`, `only_emails` |
| `find_passwords <modo> --no-proxynova` | Recherche uniquement dans ClickHouse local |
| `find_passwords <modo> --no-clickhouse` | Recherche uniquement dans ProxyNova COMB (ne nécessite pas ClickHouse) |
| `find_passwords <modo> --email <email>` | Recherche des identifiants pour un email spécifique |
| `find_breaches` | Recherche les violations de données dans HIBP pour tous les emails de l'entreprise (nécessite le plugin `hibp` actif) |