一款OSINT工具,用于检测公司成员是否存在泄露凭证。
EmploLeaks 是一款 OSINT(开源情报)工具,配备 CLI 界面,旨在发现并关联目标企业员工的相关信息。它能够收集 LinkedIn 个人资料、生成潜在的企业电子邮件、在泄露数据库中(内部基于 ClickHouse)搜索已泄露的凭证、通过 HaveIBeenPwned 验证已知漏洞、发现企业基础设施并在社交媒体中描绘员工画像。所有信息均本地存储在 SQLite 中,以供后续分析。
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
## 要求
- Python 3.10+
- pip
- 互联网连接
- **可选:** Docker 和 Docker Compose(用于本地启动 ClickHouse)
- **可选:** [gitleaks](https://github.com/gitleaks/gitleaks)(用于仓库中的密钥扫描)
- **可选:** [HaveIBeenPwned](https://haveibeenpwned.com/API/Key) 的 API 密钥
- LinkedIn 插件所需的会话 Cookie(`JSESSIONID` 和 `li_at`)
## 安装
1. 克隆仓库:```bash
git clone https://github.com/yourusername/emploleaks.git
cd emploleaks
3. (可选) 使用 Docker 启动 ClickHouse 用于泄露数据库:```bash
cd clickhouse-docker
docker compose up -d
cd ..
运行工具:```bash python emploleaks.py
使用调试模式:```bash
python emploleaks.py -d
| 命令 | 描述 |
|---|---|
help | 显示通用帮助 |
help <命令> | 显示特定命令的帮助 |
quit | 退出应用程序 |
| 命令 | 描述 |
|---|---|
add_company --name <名称> | 添加一家新公司 |
select_company --name <名称> | 选择一家公司进行操作 |
list_companies | 显示所有公司 |
delete_company --name <名称> | 删除一家公司及其所有数据 |
| 命令 | 描述 |
|---|---|
use --plugin <名称> | 激活一个插件(linkedin、github、hibp) |
deactivate | 停用当前插件 |
show options | 显示当前插件的选项 |
setopt <选项> [值] | 设置插件选项(若未提供值,则通过隐藏提示输入) |
autosave --enable / --disable | 启用/禁用将配置自动保存到 config/tokens.ini |
autoload --enable / --disable | 启用/禁用从 config/tokens.ini 自动加载配置 |
| 命令 | 描述 |
|---|---|
connect_leaks | 使用保存在 tokens.ini 中的配置连接到 ClickHouse |
connect_leaks --host <主机> --port <端口> --save | 使用特定参数连接并保存以供后续会话使用 |
disconnect_leaks | 断开与 ClickHouse 数据库的连接 |
import_leaks [目录] | 将凭证文件导入 ClickHouse(默认目录:leaks_data/) |
import_leaks --no-ai | 仅导入已知格式的文件,不使用 AI |
create_db --user <用户> --passwd <密码> --dbname <数据库> [--import-data <目录>] | 手动创建 ClickHouse 数据库(遗留方法) |
ClickHouse 的连接配置在 config/tokens.ini 中设置:```ini
[clickhouse]
host = localhost
port = 9000
user = default
passwd =
dbname = credentials_db
如果 ClickHouse 在 `tokens.ini` 中进行了配置,连接将在启动时自动建立。
### 凭证与泄露搜索
| 命令 | 描述 |
|---------|-------------|
| `find_passwords <modo>` | 在 ClickHouse + [ProxyNova COMB](https://www.proxynova.com/tools/comb/)(32 亿凭证)中搜索凭证。模式:`find_all`、`only_usernames`、`only_emails` |
| `find_passwords <modo> --no-proxynova` | 仅在本地 ClickHouse 中搜索 |
| `find_passwords <modo> --no-clickhouse` | 仅在 ProxyNova COMB 中搜索(无需 ClickHouse) |
| `find_passwords <modo> --email <email>` | 搜索特定邮箱的凭证 |
| `find_breaches` | 在 HIBP 中搜索公司所有邮箱的泄露事件(需启用 `hibp` 插件) |
**ProxyNova COMB** 是一个包含 32 亿条泄露凭证的公共数据库(多泄露综合库)。无需 API 密钥,每次搜索时自动查询。使用 `--no-proxynova` 可禁用它。
### 基础设施发现
| 命令 | 描述 |
|---------|-------------|
| `add_domain <dominio>` | 将域名关联到所选公司(例如:`add_domain faradaysec.com`) |
| `discover` | 针对公司所有域名执行子域名枚举,使用 `assetfinder`(可选 SecurityTrails),并解析 DNS |
| `print --data domains` | 显示已注册的域名及发现的子域名数量 |
| `print --data subdomains` | 显示所有子域名及其 IP、来源和发现日期 |
发现模块将被动枚举委托给 [`assetfinder`](https://github.com/tomnomnom/assetfinder),它内部聚合了 crt.sh、HackerTarget、BufferOver 及其他无需 API 密钥的来源的结果。需确保该二进制文件在 `$PATH` 中(安装方式:`go install github.com/tomnomnom/assetfinder@latest`)。
可选地,如果你配置了 SecurityTrails 的 API 密钥,其子域名将与 assetfinder 的结果合并。```ini
[discovery]
# securitytrails_key = your_key_here
| 命令 | 描述 |
|---|---|
lookup_emails | 使用Holehe在约120个平台上搜索已确认的电子邮件 |
lookup_emails --include-potential | 也包含生成的电子邮件 |
lookup_emails --email [email protected] | 搜索特定电子邮件 |
lookup_emails --all | 在120+个平台上搜索(不仅限于已配置的) |
lookup_emails --list-platforms | 列出所有可用平台 |
lookup_profiles | 使用Maigret按用户名搜索个人资料(需要已加载的用户名) |
lookup_profiles --employee "Juan" | 仅搜索特定员工 |
Holehe(电子邮件查找):使用“忘记密码”技术来确定电子邮件是否在每个平台上注册,而不会提醒用户。平台在tokens.ini中配置:```ini
[holehe]
platforms = google, discord, github, instagram, twitter, spotify, ...
**Maigret**(用户名查找):搜索用户名是否存在于500多个社交平台。用户名由员工通过webapp手动添加。平台可在 `tokens.ini` 中选择性过滤:```ini
[maigret]
# platforms = instagram, twitter, facebook, tiktok, reddit, github
| Comando | Descripción |
|---|---|
print --data emails | 显示已确认和潜在的电子邮件 |
print --data passwords | 显示找到的凭据 |
print --data breaches | 显示HIBP泄露事件 |
print --data gits | 显示GitHub账户 |
print --data twitters | 显示Twitter/X账户 |
print --data phones | 显示电话号码 |
print --data websites | 显示网站 |
print --data secrets | 显示在仓库中找到的机密 |
print --data domains | 显示注册的域名 |
print --data subdomains | 显示发现的子域名 |
print --data all | 显示按员工合并的所有数据 |
print --data all --html | 生成包含照片的交互式HTML报告 |
print --data all --html --ai | 生成使用AI按部门分组员工的HTML报告 |
print --data <tipo> --export | 将数据导出为带时间戳的CSV文件 |
| Comando | Descripción |
|---|---|
set_ai --endpoint <url> --key <key> --model <modelo> | 配置AI提供商 |
classify | 使用AI将员工分类到部门(保存到数据库) |
classify --force | 即使已分配部门也重新分类 |
AI分类分析员工的职称/角色,并按部门分组(如Engineering、Security、Sales等)。部门信息持久化存储在SQLite中,并在HTML报告和Web应用中可见。
支持的提供商(任何兼容OpenAI的API):
set_ai --endpoint http://localhost:11434/v1 --model llama3set_ai --endpoint https://api.openai.com/v1 --key sk-... --model gpt-4o-mini独立守护进程,使用个人Telegram账户(通过Telethon)加入已批准的频道/群组,下载 .txt/.csv/.dat/.zip/.gz 文件并放入 leaks_data/telegram/<chat>/。后续的 import_leaks 使用智能解析器将数据导入ClickHouse。与CLI解耦 — 作为独立进程运行,因此可以24/7运行而无需打开CLI。