
Полный набор инструментов для атак на учётные данные при авторизованном тестировании безопасности — SSH, FTP, веб-логин, брутфорс, атаки по словарю
⚠️ ПРАВОВОЕ УВЕДОМЛЕНИЕ — ТОЛЬКО авторизованное тестирование безопасности.
Использование этого инструмента против систем, которыми вы не владеете или на тестирование которых у вас нет явного письменного разрешения, является незаконным в соответствии с Computer Fraud and Abuse Act (США), Computer Misuse Act (Великобритания) и аналогичными законами по всему миру. См. 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 Form | 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 challenge-response |
credattack.py ← тонкий переходник: `python credattack.py ...` из клонированного репозитория
│
├── credattack/cli.py ← CLI (Typer) — 8 подкоманд режимов атак; также
│ консольный скрипт `credattack` при установке через pip
├── credattack/core/
│ ├── config.py ← Pydantic v2 Settings, переопределение через переменные окружения CREDATTACK_*
│ ├── engine.py ← AttackEngine (ThreadPoolExecutor + Rich progress UI)
│ ├── 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]...