CredAttack — مجموعة أدوات هجمات بيانات الاعتماد
⚠️ إشعار قانوني — اختبارات الأمان المصرّح بها فقط.
استخدام هذه الأداة ضد أنظمة لا تملكها أو ليس لديك إذن كتابي صريح لاختبارها يُعد غير قانوني بموجب قانون الاحتيال وإساءة استخدام الحاسوب (الولايات المتحدة)، وقانون إساءة استخدام الحاسوب (المملكة المتحدة)، والقوانين المكافئة حول العالم. راجع SECURITY.md.
جدول المحتويات
ما هي CredAttack؟
CredAttack هي مجموعة اختبار بيانات اعتماد معيارية وجاهزة للإنتاج لعمليات اختبار الاختراق المصرّح بها. تغطي دورة حياة هجوم بيانات الاعتماد الكاملة:
| المرحلة | قدرة CredAttack |
|---|
| الاستطلاع | قاعدة بيانات بيانات الاعتماد الافتراضية (أكثر من 200 زوج)، توليد أنماط ذكي مشتق من اسم المستخدم |
أوضاع الهجوم
البروتوكولات المدعومة
البنية المعمارية
credattack.py ← غلاف رفيع: `python credattack.py ...` من نسخة مستخرجة
│
├── credattack/cli.py ← CLI (Typer) — 8 أوامر فرعية لأوضاع الهجوم؛ وأيضاً
│ سكربت وحدة التحكم `credattack` عند التثبيت عبر pip
├── credattack/core/
│ ├── config.py ← إعدادات Pydantic v2، تجاوزات متغيرات البيئة CREDATTACK_*
│ ├── engine.py ← AttackEngine (ThreadPoolExecutor + واجهة تقدم Rich)
│ ├── lockout.py ← LockoutDetector (نافذة منزلقة، آمن للخيوط)
│ ├── proxy.py ← ProxyRotator (round-robin، فحص صحي، تخفيض الرتبة)
│ ├── mutator.py ← PasswordMutator (leet، موسمي، لاحقة، مشي لوحة المفاتيح…)
│ ├── result.py ← فئات بيانات AttemptResult + SessionReport
│ ├── report.py ← مولّد تقارير HTML بـ Jinja2
│ └── logger.py ← تسجيل Rich + كاتب تدقيق JSONL
│
├── credattack/protocols/
│ └── *.py ← 18 تنفيذ ProtocolAttacker
│
├── credattack/data/
│ ├── default_creds.json ← أكثر من 200 زوج بيانات اعتماد افتراضية حقيقية
│ ├── smart_patterns.json ← أكثر من 140 قالب كلمة مرور مؤسسية
│ └── wordlists/ ← قوائم كلمات مرور افتراضية لكل خدمة
│
└── tests/ ← أكثر من 50 اختبار pytest (وحدة + محاكاة بروتوكول)
بدء سريع
# الاستنساخ والإعداد
git clone https://github.com/amibhai/credential-attacks-toolkit.git
cd credential-attacks-toolkit
python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
# التحقق من الإصدار
python credattack.py --version
# تشغيل تجريبي (بدون اتصالات — تحقق من قوائم الكلمات)
python credattack.py ssh -t 192.168.1.100 -u admin -P wordlists/common_passwords.txt --dry-run
# هجوم قاموس SSH حقيقي
python credattack.py ssh -t 192.168.1.100 -u admin -P /path/to/rockyou.txt
# رش كلمات المرور (محدود المعدل، آمن ضد الإغلاق)
python credattack.py spray -t 192.168.1.100 --protocol ssh -U users.txt -p "Summer2024!" --delay 30
# الوضع الذكي — توليد أنماط من اسم المستخدم + الشركة
python credattack.py smart -t 192.168.1.100 --protocol ssh -u john.doe --company ACME
# تجربة افتراضيات الخدمة
python credattack.py defaults -t 192.168.1.100 --protocol mysql
# حملة متعددة الأهداف
python credattack.py multi --targets hosts.txt --protocol ssh -U users.txt -P passes.txt
التثبيت
الخيار أ — pip + virtualenv (موصى به)
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install --upgrade pip
pip install -r requirements.txt
الخيار ب — اختصارات Makefile
make install # التبعيات الأساسية
make install-dev # + pytest-cov, ruff, mypy
الخيار ج — تثبيت pip (قابل للتحرير أو من حزمة)
pip install -e . # التبعيات الأساسية فقط
pip install -e .[full] # + SMB/RDP/MySQL/MSSQL/Redis/MongoDB/WinRM/LDAP
pip install -e .[dev] # + pytest/ruff/mypy
credattack --version # سكربت وحدة التحكم، مكافئ لـ `python credattack.py`
الخيار د — Docker
docker build -t credattack -f docker/Dockerfile .
docker run --rm credattack --help
# تركيب قوائم الكلمات وجمع المخرجات
docker run --rm \
-v $(pwd)/wordlists:/app/wordlists:ro \
-v $(pwd)/output:/app/output \
credattack ssh -t 192.168.1.100 -u admin -P wordlists/common_passwords.txt
مرجع سطر الأوامر
الخيارات العامة
python credattack.py [OPTIONS] COMMAND [ARGS]...
Options:
-V, --version عرض الإصدار والخروج.
--help عرض المساعدة.
العلامات الشائعة (متاحة على جميع أوامر البروتوكول)
الأوامر الفرعية
# خاص بالبروتوكول (كل واحد يرتبط بمهاجم مخصص)
python credattack.py ssh|ftp|smb|rdp|smtp|pop3|imap|mysql|mssql|redis|mongodb|winrm|ldap|telnet|vnc \
-t HOST -u USER -P passes.txt
# HTTP (نموذج / basic / digest)
python credattack.py http -t http://target/login --mode form \
--form-user-field username --form-pass-field password --success-string "Dashboard"
# الرش — كلمة مرور واحدة، مستخدمون كثيرون، تأخير طويل
python credattack.py spray -t HOST --protocol ssh -U users.txt -p "Password1" --delay 30
# الدمج — حاصل الضرب الديكارتي مستخدمون × كلمات مرور
python credattack.py combo -t HOST --protocol smb -U users.txt -P passes.txt
# الذكي — توليد مشتق من OSINT
python credattack.py smart -t HOST --protocol ssh -u firstname.lastname --company TargetCorp
# الافتراضيات — تجربة بيانات اعتماد افتراضية من البائع
python credattack.py defaults -t HOST --protocol mysql
# المتعدد — نفس الهجوم عبر مضيفين متعددين
python credattack.py multi --targets hosts.txt --protocol ssh -U users.txt -P passes.txt
# الكامل — جميع البروتوكولات بالتسلسل
python credattack.py full -t HOST -U users.txt -P passes.txt
محرك تحويل كلمات المرور
يدعم PasswordMutator في credattack/core/mutator.py استراتيجيات قابلة للتركيب:
from credattack.core.mutator import PasswordMutator
m = PasswordMutator(max_mutations=5000)
# جميع الاستراتيجيات مجتمعة
for pw in m.smart_generate("john.doe", company="ACME"):
print(pw)
# الأنماط الموسمية فقط
for pw in m.seasonal_patterns(company="Contoso"):
print(pw)
قاعدة بيانات بيانات الاعتماد الافتراضية
يحتوي credattack/data/default_creds.json على أكثر من 200 زوج بيانات اعتماد افتراضية حقيقية عبر:
Cisco · F5 · Juniper · Palo Alto · VMware · Jenkins · GitLab · Tomcat · WordPress · MySQL · MSSQL · Redis · MongoDB · PostgreSQL · Elasticsearch · RabbitMQ · Splunk · Nagios · Zabbix · pfSense · MikroTik · Huawei · HP iLO · Dell iDRAC · IPMI
# عرض جميع الافتراضيات لخدمة معينة
python credattack.py defaults -t HOST --protocol mysql --dry-run
# التشغيل ضد الهدف
python credattack.py defaults -t 10.0.0.1 --protocol ssh
تدوير البروكسي
مرر ملف بروكسي (بروكسي واحد لكل سطر، بصيغة host:port):
# proxies.txt
192.168.1.10:1080
192.168.1.11:1080
socks5://10.0.0.5:9050
python credattack.py ssh -t TARGET -u admin -P passes.txt --proxy-file proxies.txt
يقوم ProxyRotator بإجراء فحوصات صحية عند بدء التشغيل ويخفض رتبة البروكسيات التي تتجاوز عتبة معدل الفشل. يتم استبعاد البروكسيات الميتة تلقائياً.
تقارير HTML
بعد كل هجوم غير تجريبي يتم إنشاء تقرير HTML تلقائياً في ./output/:
- بطاقات إحصائية: إجمالي المحاولات، معدل النجاح، المدة، المحاولات/الثانية
- جدول بيانات الاعتماد المكتشفة: المضيف · البروتوكول · اسم المستخدم · كلمة المرور (نسخ إلى الحافظة)
- قالب Jinja2 بسمة داكنة
# الفتح بعد التشغيل
start output/report_*.html # Windows
open output/report_*.html # macOS
الإعدادات ومتغيرات البيئة
يمكن تجاوز جميع الإعدادات في credattack/core/config.py عبر متغيرات البيئة CREDATTACK_*:
export CREDATTACK_THREADS=20
export CREDATTACK_TIMEOUT=3.0
export CREDATTACK_DELAY=1.0
export CREDATTACK_JITTER=0.5
export CREDATTACK_LOCKOUT_THRESHOLD=3
export CREDATTACK_VERBOSITY=2
أو على مستوى CLI بالعلامات القياسية (--threads, --timeout, إلخ).
Docker
# بناء الصورة
docker build -t credattack -f docker/Dockerfile .
# التشغيل مع Docker Compose
cd docker
docker compose run credattack ssh -t 192.168.1.100 -u admin -P /app/wordlists/common_passwords.txt
# ضبط الإعدادات عبر البيئة
docker run --rm \
-e CREDATTACK_THREADS=20 \
-e CREDATTACK_TIMEOUT=3 \
-v $(pwd)/output:/app/output \
credattack defaults -t 10.0.0.1 --protocol mysql
الاختبار
# تشغيل جميع الاختبارات
pytest -q
# مع التغطية
pytest --cov=credattack --cov-report=term-missing -q
# اختصار Makefile
make test-cov
المجموعة الحالية: أكثر من 50 اختباراً تغطي:
قوائم الكلمات
⚠️ ملفات wordlists/ المرفقة هي نماذج اختبار دخان ضئيلة. قم بتوفير ملفاتك الخاصة للتقييمات الحقيقية.
مصادر موصى بها
# استخدام أي قائمة كلمات خارجية
python credattack.py ssh -t TARGET -u admin -P /opt/wordlists/rockyou.txt
هيكل المشروع
credential-attacks-toolkit/
├── credattack.py # غلاف رفيع -> credattack.cli:app (استخدام نسخة المصدر)
├── pyproject.toml # إعداد بناء وأدوات PEP 517/518
├── requirements.txt # تبعيات التشغيل
├── Makefile # اختصارات المطور
├── VERSION # مصدر واحد لحقيقة الإصدار
├── CHANGELOG.md
├── SECURITY.md
├── .github/
│ └── workflows/ci.yml # GitHub Actions: lint + مصفوفة اختبار + mypy
├── docker/
│ ├── Dockerfile
│ └── docker-compose.yml
├── credattack/
│ ├── cli.py # CLI (Typer) — معبأ، يدعم سكربت وحدة التحكم
│ ├── core/
│ │ ├── config.py # إعدادات Pydantic v2
│ │ ├── engine.py # AttackEngine (ThreadPoolExecutor)
│ │ ├── lockout.py # LockoutDetector (نافذة منزلقة)
│ │ ├── proxy.py # ProxyRotator
│ │ ├── mutator.py # PasswordMutator
│ │ ├── result.py # AttemptResult, SessionReport
│ │ ├── report.py # مولّد تقارير HTML
│ │ └── logger.py # مسجل Rich + كاتب JSONL
│ ├── protocols/ # 18 تنفيذ ProtocolAttacker
│ │ └── base.py # ProtocolAttacker مجرد
│ └── data/
│ ├── default_creds.json # أكثر من 200 افتراضي من البائعين
│ ├── smart_patterns.json # أكثر من 140 قالب مؤسسي
│ └── wordlists/ # قوائم بداية لكل خدمة
├── attacks/ # أدوات ملف واحد مستقلة (تسبق credattack/؛
│ └── *.py # محفوظة للنصوص غير المنقولة بعد: تكسير JWT،
│ # كشف WAF، تعداد المستخدمين بتوقيت)
├── utils/
│ └── credential_utils.py # مساعدات مشتركة لنصوص attacks/
├── tests/
│ ├── conftest.py # تركيبات مشتركة
│ ├── test_lockout.py
│ ├── test_mutator.py
│ ├── test_mutator_extended.py
│ ├── test_proxy.py
│ ├── test_result.py
│ ├── test_protocols_ssh.py
│ ├── test_protocols_ftp.py
│ └── test_protocols_http.py
├── wordlists/ # نماذج اختبار دخان ضئيلة
└── output/ # السجلات والتقارير المولدة (مستثناة من git)
معدلات نجاح الهجوم (استرشادية)
المساهمة
راجع CONTRIBUTING.md.
يرجى فتح مشكلة قبل تقديم طلبات سحب كبيرة.
يجب أن تلتزم جميع المساهمات بسياسة الاستخدام الأخلاقي في SECURITY.md.
استخدم بمسؤولية. اختبر أخلاقياً. ابق قانونياً.