百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
E

emploleaks

> 测试质量
开源

一款 OSINT 工具,可帮助检测泄露凭证的公司成员

786 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

一款 OSINT 工具,可帮助检测泄露凭证的公司成员

EmploLeaks

EmploLeaks es una herramienta de OSINT (Open Source Intelligence) con una interfaz CLI , diseñada para descubrir y correlacionar información sobre empleados de una empresa objetivo. Permite recopilar perfiles de LinkedIn, generar emails corporativos potenciales, buscar credenciales filtradas en bases de datos de leaks (ClickHouse internamente), verificar brechas conocidas a través de HaveIBeenPwned, descubrir infraestructura de la empresa y perfilar empleados en redes sociales. Toda la información se almacena localmente en SQLite para su análisis posterior.

Características

  • Búsqueda y enumeración de empleados desde LinkedIn (scraping con cookies de sesión)
  • Generación automática de emails corporativos potenciales con formatos personalizables
  • Búsqueda de credenciales filtradas en base de datos ClickHouse propia
  • Verificación de brechas conocidas con la API de HaveIBeenPwned
  • Escaneo de secretos en repositorios GitHub/GitLab con gitleaks
  • Discovery de infraestructura: enumeración de subdominios con assetfinder + SecurityTrails
  • Profiling en redes sociales: búsqueda por email (Holehe, ~120 plataformas) y por username (Maigret, 500+ plataformas)
  • Telegram scraper (userbot): daemon standalone que se une a canales aprobados de Telegram y baja archivos de credenciales automáticamente
  • Parser de leaks 100% agéntico: sin regex hardcodeadas. Un agente IA propone schema, valida con score sobre la muestra, recibe feedback con ejemplos de errores, y reintenta hasta converger. Auto-detecta UTF-16/UTF-8, banners ASCII art, country code prefixes, stealer logs (Redline/Lumma/Raccoon), formatos email/user/url arbitrarios
  • Almacenamiento local de toda la información en SQLite
  • Generación de reportes HTML interactivos con fotos de perfil
  • Clasificación automática de empleados por departamento usando IA (OpenAI, Ollama, etc.)
  • Exportación de resultados a CSV
  • Sistema modular de plugins (LinkedIn, GitHub, HIBP)
  • Autoguardado y carga automática de configuración de plugins
  • Webapp administrativa con FastAPI + Next.js para triage de resultados

Estructura del Proyecto

…

Requisitos

  • Python 3.10+
  • pip
  • Conexión a Internet
  • Opcional: Docker y Docker Compose (para levantar ClickHouse localmente)
  • Opcional: gitleaks (para escaneo de secretos en repos)
  • Opcional: API key de HaveIBeenPwned
  • Cookies de sesión de LinkedIn (JSESSIONID y li_at) para el plugin de LinkedIn

Instalación

  1. Clonar el repositorio:
git clone https://github.com/yourusername/emploleaks.git
cd emploleaks
  1. Instalar dependencias:
pip install -r requirements.txt
  1. (Opcional) Levantar ClickHouse con Docker para la base de datos de leaks:
cd clickhouse-docker
docker compose up -d
cd ..

Uso

Ejecutar la herramienta:

python emploleaks.py

Con modo debug:

python emploleaks.py -d

Comandos Generales

Comando Descripción
help Muestra la ayuda general
help Muestra la ayuda de un comando específico
quit Sale de la aplicación

Gestión de Empresas

Comando Descripción
add_company --name Agrega una nueva empresa
select_company --name Selecciona una empresa para trabajar
list_companies Muestra todas las empresas
delete_company --name Elimina una empresa y todos sus datos

Gestión de Plugins

Comando Descripción
use --plugin Activa un plugin (linkedin, github, hibp)
deactivate Desactiva el plugin actual
show options Muestra las opciones del plugin activo
setopt [valor] Configura una opción del plugin (si no se pasa valor, se pide por prompt oculto)
autosave --enable / --disable Activa/desactiva el guardado automático de configuración en config/tokens.ini
autoload --enable / --disable Activa/desactiva la carga automática de configuración desde config/tokens.ini

Conexión a Base de Datos de Leaks (ClickHouse)

Comando Descripción
connect_leaks Conectar a ClickHouse usando la configuración guardada en tokens.ini
connect_leaks --host --port --save Conectar con parámetros específicos y guardarlos para futuras sesiones
disconnect_leaks Desconectar de la base de datos ClickHouse
import_leaks [directorio] Importar archivos de credenciales a ClickHouse (default: leaks_data/)
import_leaks --no-ai Importar solo archivos con formato conocido, sin usar IA
create_db --user --passwd --dbname [--import-data ] Crear la BD ClickHouse manualmente (legacy)

La conexión a ClickHouse se configura en config/tokens.ini:

[clickhouse]
host = localhost
port = 9000
user = default
passwd =
dbname = credentials_db

Si ClickHouse está configurado en tokens.ini, la conexión se establece automáticamente al iniciar.

Búsqueda de Credenciales y Brechas

Comando Descripción
find_passwords Busca credenciales en ClickHouse + ProxyNova COMB (3.2B credentials). Modos: find_all, only_usernames, only_emails
find_passwords --no-proxynova Solo busca en ClickHouse local
find_passwords --no-clickhouse Solo busca en ProxyNova COMB (no requiere ClickHouse)
find_passwords --email Busca credenciales para un email específico
find_breaches Busca brechas en HIBP para todos los emails de la empresa (requiere plugin hibp activo)

ProxyNova COMB es una base de datos pública con 3.2 mil millones de credenciales filtradas (Combination Of Many Breaches). No requiere API key y se consulta automáticamente en cada búsqueda. Usar --no-proxynova para desactivarla.

Discovery de Infraestructura

Comando Descripción
add_domain Asocia un dominio a la empresa seleccionada (ej: add_domain faradaysec.com)
discover Ejecuta enumeración de subdominios contra todos los dominios de la empresa usando assetfinder (+ SecurityTrails opcional), resolviendo DNS
print --data domains Muestra los dominios registrados y la cantidad de subdominios encontrados
print --data subdomains Muestra todos los subdominios con su IP, fuente y fecha de descubrimiento

El módulo de Discovery delega la enumeración pasiva a assetfinder, que internamente agrega resultados de crt.sh, HackerTarget, BufferOver y otras fuentes sin API key. Se espera el binario en $PATH (instalación: go install github.com/tomnomnom/assetfinder@latest).

Opcionalmente, si configurás una API key de SecurityTrails sus subdominios se mergean con los de assetfinder:

[discovery]
# securitytrails_key = your_key_here

Profiling en Redes Sociales

Comando Descripción
lookup_emails Busca emails confirmados en ~120 plataformas con Holehe
lookup_emails --include-potential Incluye también los emails generados
lookup_emails --email [email protected] Busca un email específico
lookup_emails --all Busca en las 120+ plataformas (no solo las configuradas)
lookup_emails --list-platforms Lista todas las plataformas disponibles
lookup_profiles Busca perfiles por username con Maigret (requiere usernames cargados)
lookup_profiles --employee "Juan" Busca solo para un empleado específico

Holehe (email lookup): utiliza la técnica de "forgot password" para determinar si un email está registrado en cada plataforma, sin alertar al dueño. Las plataformas se configuran en tokens.ini:

[holehe]
platforms = google, discord, github, instagram, twitter, spotify, ...

Maigret (username lookup): busca si un username existe en 500+ plataformas de redes sociales. Los usernames se agregan manualmente por empleado desde la webapp. Las plataformas se filtran opcionalmente en tokens.ini:

[maigret]
# platforms = instagram, twitter, facebook, tiktok, reddit, github

Visualización y Exportación

Comando Descripción
print --data emails Muestra emails confirmados y potenciales
print --data passwords Muestra credenciales encontradas
print --data breaches Muestra brechas de HIBP
print --data gits Muestra cuentas de GitHub
print --data twitters Muestra cuentas de Twitter/X
print --data phones Muestra números de teléfono
print --data websites Muestra sitios web
print --data secrets Muestra secretos encontrados en repositorios
print --data domains Muestra dominios registrados
print --data subdomains Muestra subdominios descubiertos
print --data all Muestra todo consolidado por empleado
print --data all --html Genera un reporte HTML interactivo con fotos
print --data all --html --ai Genera reporte HTML agrupando empleados por departamento usando IA
print --data --export Exporta los datos a un archivo CSV con timestamp

Configuración de IA y Clasificación

Comando Descripción
set_ai --endpoint --key --model Configura el proveedor de IA
classify Clasifica empleados en departamentos usando IA (se guarda en la BD)
classify --force Re-clasifica aunque ya tengan departamento asignado

La clasificación por IA analiza los títulos/roles de los empleados y los agrupa por departamento (Engineering, Security, Sales, etc.). Los departamentos se persisten en SQLite y son visibles en el reporte HTML y en la webapp.

Proveedores soportados (cualquier API compatible con OpenAI):

  • Ollama (local, por defecto): set_ai --endpoint http://localhost:11434/v1 --model llama3
  • OpenAI: set_ai --endpoint https://api.openai.com/v1 --key sk-... --model gpt-4o-mini
  • Cualquier otro compatible: LM Studio, Together AI, etc.

Telegram Scraper (Userbot)

Daemon standalone que usa una cuenta personal de Telegram (vía Telethon) para unirse a canales/grupos aprobados, descargar archivos .txt/.csv/.dat/.zip/.gz y dejarlos en leaks_data/telegram//. El import_leaks posterior los ingiere a ClickHouse usando el parser agéntico. Decoupled del CLI — corre como proceso aparte, así puede estar 24/7 sin que la CLI esté abierta.

Setup inicial (one-time):

  1. Crear app en https://my.telegram.org/apps para obtener api_id y api_hash.
  2. Agregar al config/tokens.ini:
    [telegram]
    api_id = 12345678
    api_hash = abcd1234...
    session = config/telegram.session
    download_root = leaks_data/telegram
    allowed_extensions = txt, csv, dat, zip, gz
    default_backfill_limit = 10
    
  3. Login interactivo (te pide tu número, código por app, opcionalmente 2FA):
    python3.13 telegram_sync.py login
    

Subcomandos:

Comando Descripción
login Autenticación inicial. Persiste sesión en config/telegram.session
list_groups Lista todos los chats/canales donde está tu cuenta, y los snapshotea en SQLite
approve [--limit N] Marca un chat como aprobado y corre backfill de los últimos N mensajes
unapprove Quita la aprobación
list_approved Tabla de chats aprobados con conteo de archivos bajados
backfill [--limit N] Re-baja los últimos N mensajes de un chat aprobado
run [--watch] Backfill de todos los aprobados; con --watch queda escuchando NewMessage events
status Resumen: aprobados / archivos bajados / disco usado

Tablas nuevas en data/emploleaks.db:

Tabla Descripción
telegram_groups Snapshot de chats (chat_id, title, username, approved, backfill_limit, last_sync_at)
telegram_files Archivos bajados con

Issues· 13 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Pythonbugbountycybersecurityleaked-secretsosint

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类测试质量
定价开源

> 相关工具

J
Jest
JavaScript 测试框架
P
Playwright
现代端到端测试框架
E
eslint-plugin-test-selectors
Enforces that data-test-id attributes are added to interactive DOM elements (JSX) to help with UI testing. JSX only.