
أداة 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) (لمسح الأسرار في المستودعات)
- **اختياري:** مفتاح API من [HaveIBeenPwned](https://haveibeenpwned.com/API/Key)
- كوكيز جلسة LinkedIn (`JSESSIONID` و `li_at`) لإضافة LinkedIn
## التثبيت
1. استنساخ المستودع:```bash
git clone https://github.com/yourusername/emploleaks.git
cd emploleaks
3. (اختياري) تشغيل ClickHouse باستخدام Docker لقاعدة بيانات التسريبات:```bash
cd clickhouse-docker
docker compose up -d
cd ..
قم بتشغيل الأداة:```bash python emploleaks.py
مع وضع debug:```bash
python emploleaks.py -d
| الأمر | الوصف |
|---|---|
help | يعرض المساعدة العامة |
help <command> | يعرض المساعدة لأمر معين |
quit | الخروج من التطبيق |
| الأمر | الوصف |
|---|---|
add_company --name <name> | إضافة شركة جديدة |
select_company --name <name> | تحديد شركة للعمل عليها |
list_companies | عرض جميع الشركات |
delete_company --name <name> | حذف شركة وجميع بياناتها |
| الأمر | الوصف |
|---|---|
use --plugin <name> | تفعيل إضافة (linkedin, github, hibp) |
deactivate | إلغاء تنشيط الإضافة الحالية |
show options | عرض خيارات الإضافة النشطة |
setopt <option> [value] | تعيين خيار للإضافة (إذا لم يتم تمرير قيمة، يُطلب إدخالها بشكل مخفي) |
autosave --enable / --disable | تفعيل/تعطيل الحفظ التلقائي للإعدادات في config/tokens.ini |
autoload --enable / --disable | تفعيل/تعطيل التحميل التلقائي للإعدادات من config/tokens.ini |
| الأمر | الوصف |
|---|---|
connect_leaks | الاتصال بـ ClickHouse باستخدام الإعدادات المحفوظة في tokens.ini |
connect_leaks --host <host> --port <port> --save | الاتصال بمعاملات محددة وحفظها للجلسات المستقبلية |
disconnect_leaks | قطع الاتصال بقاعدة بيانات ClickHouse |
import_leaks [directory] | استيراد ملفات بيانات الاعتماد إلى ClickHouse (الافتراضي: leaks_data/) |
import_leaks --no-ai | استيراد الملفات ذات التنسيق المعروف فقط، دون استخدام الذكاء الاصطناعي |
create_db --user <user> --passwd <pass> --dbname <db> [--import-data <dir>] | إنشاء قاعدة بيانات 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/) (3.2 مليار بيانات اعتماد). الأوضاع: `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** هي قاعدة بيانات عامة تحتوي على 3.2 مليار بيانات اعتماد مسربة (Combination Of Many Breaches). لا تتطلب مفتاح 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`).