
مجموعة كاملة من هجمات بيانات الاعتماد للاختبار الأمني المصرح به — SSH, FTP, Web Login, Bruteforce, Dictionary attacks
⚠️ إشعار قانوني — اختبارات الأمان المصرّح بها فقط.
استخدام هذه الأداة ضد أنظمة لا تملكها أو ليس لديك إذن كتابي صريح لاختبارها يُعد غير قانوني بموجب قانون الاحتيال وإساءة استخدام الحاسوب (الولايات المتحدة)، وقانون إساءة استخدام الحاسوب (المملكة المتحدة)، والقوانين المكافئة حول العالم. راجع SECURITY.md.
CredAttack هي مجموعة اختبار بيانات اعتماد معيارية وجاهزة للإنتاج لعمليات اختبار الاختراق المصرّح بها. تغطي دورة حياة هجوم بيانات الاعتماد الكاملة:
| المرحلة | قدرة CredAttack |
|---|---|
| الاستطلاع | قاعدة بيانات بيانات الاعتماد الافتراضية (أكثر من 200 زوج)، توليد أنماط ذكي مشتق من اسم المستخدم |
| الهجوم | 17 مهاجم بروتوكول، 6 أوضاع هجوم، حملات متعددة الأهداف |
| المراوغة | كشف الإغلاق، تحديد معدل قابل للتكوين، التذبذب، تدوير البروكسي |
| إعداد التقارير | سجل تدقيق JSONL، تقرير HTML بـ Jinja2، لافتة بيانات الاعتماد المكتشفة + تفريغ ملف |
| الوضع | الأمر | الوصف |
|---|---|---|
| القاموس | ssh, ftp, smb, … | قائمة كلمات ضد مستخدم واحد |
| الرش | spray | كلمة مرور واحدة عبر قائمة مستخدمين (آمن ضد الإغلاق) |
| الدمج | combo | كل مستخدم × كل كلمة مرور |
| الذكي | smart | توليد أنماط مشتق من اسم المستخدم/الشركة |
| الافتراضيات | defaults | تجربة أكثر من 200 افتراضي معروف للخدمات |
| متعدد الأهداف | multi | نفس الهجوم عبر قائمة مضيفين |
| خط أنابيب كامل | full | جميع البروتوكولات، تقرير واحد |
| # | البروتوكول | الوحدة | المنفذ الافتراضي | ملاحظات |
|---|---|---|---|---|
| 1 | SSH | ssh.py | 22 | paramiko، مصادقة مفتاح/كلمة مرور |
| 2 | FTP | ftp.py | 21 | الوضع النشط والسلبي |
| 3 | نموذج HTTP | http_form.py | 80/443 | كشف تلقائي لرمز CSRF |
| 4 | HTTP Basic | http_basic.py | 80 | RFC 7617 |
| 5 | HTTP Digest | http_digest.py | 80 | RFC 7616 |
| 6 | SMB | smb.py | 445 | impacket، NTLM |
| 7 | RDP | rdp.py | 3389 | impacket NLA |
| 8 | SMTP | smtp.py | 587 | STARTTLS |
| 9 | POP3 | pop3.py | 110 | دعم APOP |
| 10 | IMAP | imap.py | 143 | STARTTLS |
| 11 | MySQL | mysql.py | 3306 | mysql-connector-python |
| 12 | MSSQL | mssql.py | 1433 | pymssql |
| 13 | Redis | redis_proto.py | 6379 | أمر AUTH |
| 14 | MongoDB | mongodb.py | 27017 | pymongo |
| 15 | WinRM | winrm.py | 5985 | NTLM، pywinrm |
| 16 | LDAP | ldap_proto.py | 389 | ldap3، كشف تلقائي rootDSE |
| 17 | Telnet | telnet.py | 23 | TCP خام |
| 18 | VNC | vnc.py | 5900 | استجابة تحدي 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
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install --upgrade pip
pip install -r requirements.txt
make install # التبعيات الأساسية
make install-dev # + pytest-cov, ruff, mypy
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 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 عرض المساعدة.