العودة إلى التحديثات
UpdatedSep 2, 2026

credential-attacks-toolkit — Updated!

مجموعة كاملة من هجمات بيانات الاعتماد للاختبار الأمني المصرح به — SSH, FTP, Web Login, Bruteforce, Dictionary attacks

مشاركة

CredAttack — مجموعة أدوات هجمات بيانات الاعتماد

Release Python Protocols Tests License

⚠️ إشعار قانوني — اختبارات الأمان المصرّح بها فقط.
استخدام هذه الأداة ضد أنظمة لا تملكها أو ليس لديك إذن كتابي صريح لاختبارها يُعد غير قانوني بموجب قانون الاحتيال وإساءة استخدام الحاسوب (الولايات المتحدة)، وقانون إساءة استخدام الحاسوب (المملكة المتحدة)، والقوانين المكافئة حول العالم. راجع SECURITY.md.


جدول المحتويات


ما هي CredAttack؟

CredAttack هي مجموعة اختبار بيانات اعتماد معيارية وجاهزة للإنتاج لعمليات اختبار الاختراق المصرّح بها. تغطي دورة حياة هجوم بيانات الاعتماد الكاملة:

المرحلةقدرة CredAttack
الاستطلاعقاعدة بيانات بيانات الاعتماد الافتراضية (أكثر من 200 زوج)، توليد أنماط ذكي مشتق من اسم المستخدم
الهجوم17 مهاجم بروتوكول، 6 أوضاع هجوم، حملات متعددة الأهداف
المراوغةكشف الإغلاق، تحديد معدل قابل للتكوين، التذبذب، تدوير البروكسي
إعداد التقاريرسجل تدقيق JSONL، تقرير HTML بـ Jinja2، لافتة بيانات الاعتماد المكتشفة + تفريغ ملف

أوضاع الهجوم

الوضعالأمرالوصف
القاموسssh, ftp, smb, …قائمة كلمات ضد مستخدم واحد
الرشsprayكلمة مرور واحدة عبر قائمة مستخدمين (آمن ضد الإغلاق)
الدمجcomboكل مستخدم × كل كلمة مرور
الذكيsmartتوليد أنماط مشتق من اسم المستخدم/الشركة
الافتراضياتdefaultsتجربة أكثر من 200 افتراضي معروف للخدمات
متعدد الأهدافmultiنفس الهجوم عبر قائمة مضيفين
خط أنابيب كاملfullجميع البروتوكولات، تقرير واحد

البروتوكولات المدعومة

#البروتوكولالوحدةالمنفذ الافتراضيملاحظات
1SSHssh.py22paramiko، مصادقة مفتاح/كلمة مرور
2FTPftp.py21الوضع النشط والسلبي
3نموذج HTTPhttp_form.py80/443كشف تلقائي لرمز CSRF
4HTTP Basichttp_basic.py80RFC 7617
5HTTP Digesthttp_digest.py80RFC 7616
6SMBsmb.py445impacket، NTLM
7RDPrdp.py3389impacket NLA
8SMTPsmtp.py587STARTTLS
9POP3pop3.py110دعم APOP
10IMAPimap.py143STARTTLS
11MySQLmysql.py3306mysql-connector-python
12MSSQLmssql.py1433pymssql
13Redisredis_proto.py6379أمر AUTH
14MongoDBmongodb.py27017pymongo
15WinRMwinrm.py5985NTLM، pywinrm
16LDAPldap_proto.py389ldap3، كشف تلقائي rootDSE
17Telnettelnet.py23TCP خام
18VNCvnc.py5900استجابة تحدي DES خام

البنية المعمارية

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           عرض المساعدة.

العلامات الشائعة (متاحة على جميع أوامر البروتوكول)

العلامةالمختصرالافتراضيالوصف
--target-tالمضيف / IP الهدف
--port0 (افتراضي البروتوكول)تجاوز منفذ TCP
--username-uاسم مستخدم واحد
--user-file-Uملف أسماء مستخدمين مفصولة بأسطر جديدة
--pass-file-Pملف كلمات مرور مفصولة بأسطر جديدة
--password-p2كلمة مرور واحدة
--threads-n10عمال متزامنون
--timeout-T5.0مهلة كل محاولة (ثانية)
--delay-d0.0تأخير ثابت بين المحاولات (ثانية)
--jitter0.0أقصى تذبذب عشوائي (ثانية)
--stop-on-firstTrueالتوقف لكل مستخدم بعد أول نجاح
--proxy-fileNoneقائمة بروكسي HTTP/SOCKS5
--output-dir-o./outputدليل النتائج
--verbosity-v1مستوى التسجيل (0-3)
--dry-runFalseعد الأزواج دون الاتصال

الأوامر الفرعية

# خاص بالبروتوكول (كل واحد يرتبط بمهاجم مخصص)
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 استراتيجيات قابلة للتركيب:

الاستراتيجيةالطريقةمثال المخرجات
لغة Leetleet_speak(word)p@ssw0rd, p455w0rd
الأحرف الكبيرةcapitalise_variants(word)PASSWORD, Password, pAsSwOrD
اللاحقةsuffix_append(word)password123, password@2025
البادئةprefix_append(word)!password, mypassword
مشي لوحة المفاتيحkeyboard_walk(word)qassword (a→q)
أنماط اسم المستخدمusername_patterns(user, company)john123, Doe1!, ACME2024!
الموسمي (v1.1)seasonal_patterns(company)Summer2024!, Winter25
تغليف الأحرف الخاصة (v1.1)special_char_wrap(word)!@Password, Password!@
الدمجcombine(word, strategies)يربط أي مما سبق
الذكي (الكل في واحد)smart_generate(user, company)تدفق بدون تكرار وبسقف محدد
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 اختباراً تغطي:

المجالالاختبارات
كاشف الإغلاق (نافذة منزلقة، أمان الخيوط)test_lockout.py
استراتيجيات محول كلمات المرورtest_mutator.py
استراتيجيات المحول الجديدة (موسمي، أحرف خاصة)test_mutator_extended.py
مدوّر البروكسي (فحص صحي، تخفيض رتبة)test_proxy.py
فئات بيانات Result و SessionReporttest_result.py
محاكاة بروتوكول SSHtest_protocols_ssh.py
محاكاة بروتوكول FTPtest_protocols_ftp.py
محاكاة HTTP Basic و Digesttest_protocols_http.py

قوائم الكلمات

⚠️ ملفات wordlists/ المرفقة هي نماذج اختبار دخان ضئيلة. قم بتوفير ملفاتك الخاصة للتقييمات الحقيقية.

مصادر موصى بها

قائمة الكلماتالحجمالأفضل لـ
rockyou.txt~14 Mقاموس عام
SecLists/Passwords/متنوعخاص بالبروتوكول
kaonashi.txt~64 Mتغطية متقدمة
مشتق من OSINTمتغيرهجمات مستهدفة
# استخدام أي قائمة كلمات خارجية
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)

معدلات نجاح الهجوم (استرشادية)

نوع كلمة المرورالقاموسالوضع الذكيالرش (شائع)
4 أحرف~90%~95%~60%
6 أحرف~65%~75%~25%
8 أحرف مختلطة~15%~25%~5%
10+ أحرف معقدة<5%<5%<1%

المساهمة

راجع CONTRIBUTING.md.
يرجى فتح مشكلة قبل تقديم طلبات سحب كبيرة.
يجب أن تلتزم جميع المساهمات بسياسة الاستخدام الأخلاقي في SECURITY.md.


استخدم بمسؤولية. اختبر أخلاقياً. ابق قانونياً.

الفئات