Мутация паролей: правила атаки по словарю в Passcovery
Мутация паролей автоматически преобразует слова из словаря (текстовый файл с базовыми паролями) по заданным правилам. Программа меняет регистр, добавляет цифры, заменяет буквы на символы и проверяет каждый вариант. Это работает в разы быстрее чистого перебора.
Видео-демонстрация: как программа находит пароль B@seb@!!99, полученный из слова baseball:
Часто встречается вредный совет: «Замени буквы на символы, добавь цифры и получишь надёжный пароль». Нет, это не работает. Программы восстановления паролей применяют те же трансформации к миллионам словарных слов автоматически.
Как это понять: Мутация работает как бариста с базовым эспрессо: из одной основы получаются десятки напитков. Эспрессо + молоко = латте. Эспрессо + пенка = капучино. Эспрессо + сливки + сироп = раф. Так и программа: берёт слово «password» и создаёт Password, password123, p@ssw0rd. Одна основа – сотни вариантов для проверки.
Что такое мутация паролей и как она работает?
Программа берёт слово, применяет правило трансформации и получает кандидат для проверки. Например: слово password + правило .c99 (первая заглавная + «99» в конец) = Password99. Это называется rule-based attack – атака по словарю с правилами.
Принцип прост: мутация расширяет словарь без увеличения его размера. Вместо хранения 10 миллионов готовых паролей программа держит 10 тысяч базовых слов и набор правил. Правила генерируют варианты на лету – это и есть candidate generation.
Вот как выглядит процесс:
| Исходное слово | Правило | Результат | Что происходит |
|---|---|---|---|
| password | .c |
Password | Первая буква заглавная |
| password | .u |
PASSWORD | Все буквы заглавные |
| password | .c.sa@.so0 |
P@ssw0rd | Заглавная + замены a→@, o→0 |
| password + protect + your + privacy | $w$x$y$z |
passwordprotectyourprivacy | Склейка четырёх слов |
| password + protect + your + privacy | $w.c($x.c($y.c($z.c))) |
PasswordProtectYourPrivacy | Склейка четырёх слов + Первая заглавная у всех |
Каждое правило – инструкция для трансформации. Программы Passcovery, Hashcat и John the Ripper используют макроязык для описания правил. Модификатор .l переводит буквы в нижний регистр, .R переворачивает слово задом наперёд.
Почему это работает? Мутация не изобретает слова – она имитирует поведение людей. А люди предсказуемы:
по данным NIST, при требовании «сложного пароля» 82% пользователей создают комбинации вроде Password123!.
Если вы помните структуру своего пароля: основное слово, добавленные цифры, замены букв, то мутация найдёт его за минуты. Для полностью случайных комбинаций эффективнее перебор по маске или brute force.
Какие правила мутации используются чаще всего?
Четыре паттерна покрывают 70-80% реальных паролей: "литспик" (leet-speak), смена регистра, добавление цифр и склейка слов. Программы проверяют их в первую очередь.
| Паттерн | Что делает | Пример правила |
|---|---|---|
| Leet-speak (замена букв на цифры/символы) | Замена букв на похожие символы: a→@, e→3, i→1, o→0, s→$ | .sa@.se3 |
| Case toggling (чередование регистра) | Смена регистра: первая заглавная, все заглавные, инверсия | .c, .u, .t |
| Цифры | Добавление года, дат, последовательностей: 123, 2024, 1990 | $1$2$3 |
| Combinator | Склейка двух-трёх слов из разных словарей | $w$x |
Эффективность мутации в цифрах
- Словарь из 100 слов → 100 паролей
- + правила регистра → 400 паролей
- + leet-speak → 2000+ паролей
- + цифры (00-99) → 200 000+ паролей
Итог: расширение пространства поиска в 2000 раз и более, без увеличения словаря.
Синтаксис правил в Passcovery похож на Hashcat и John the Ripper, но имеет отличия. Например, $w.c$x.l означает: взять слово из первого
словаря с заглавной буквой, добавить слово из второго в нижнем регистре. Полный список есть в справке к каждой из программ Пасковери; знатоки Hashcat заметят знакомые
паттерны.
Когда мутация эффективна, а когда – нет?
Мутация работает, когда вы помните структуру пароля. Для случайных комбинаций вроде 7xKnmQ2 она бесполезна. Тут лучше перебор по маске.
| ✅ Мутация эффективна | ❌ Мутация бесполезна |
|---|---|
| Помните основу: слово, имя, дату | Пароль из генератора случайных символов |
| Пароль по логике «слово + модификация» | Есть лишь "масочная" информация о возможной структуре |
| Известна структура: слово-цифры-символ | Короткий пароль (4-6 символов), проще полный перебор |
| Есть данные о привычках: любимая команда, дата рождения | Быстрый формат (ZIP, Office 97-2003) – чтение словаря может оказаться медленнее перебора |
Денис Гладыш, руководитель Passcovery:
«Помните, что пароль основан на словах? Составляйте словарь возможных слов и атака с мутациями подберёт пароль за минуты. Для генераторных паролей переключайтесь на маску или brute force. Это разные инструменты для разных задач.
Реальный пример: восстановление пароля бэкапа Apple iOS структуры «слово-цифры-слово». Пользователь
помнил части (fre, frett, 2323, 2424), но не точную комбинацию. Мутация проверила 7000 вариантов
и нашла пароль за 10 минут. Полный перебор для бэкапа Apple iOS занял бы столетия.»
Как создать правила мутации для своего случая
Откройте Редактор правил в подходящей программе Passcovery, опишите трансформации макросами и протестируйте на примерах. Это займёт время на настройку, но грамотно составленные правила сэкономят дни перебора.
Редактор правил – визуальный инструмент: вводите тестовые слова, описываете правила и сразу видите результат. Ошибки в синтаксисе заметны до запуска атаки.
Базовый синтаксис:
| Группа | Макрос | Действие |
|---|---|---|
| Словари | $w |
Слово из первого словаря |
$x |
Слово из второго словаря | |
$y |
Слово из третьего словаря | |
$z |
Слово из четвёртого словаря | |
| Регистр | .l |
Все буквы в нижний регистр |
.u |
Все буквы в верхний регистр | |
.c |
Первая заглавная, остальные строчные | |
| Трансформации | .R |
Перевернуть слово (password → drowssap) |
.sXY |
Заменить все X на Y |
Денис Гладыш, руководитель Passcovery:
«Начинайте с базовых правил: регистр, leet-speak, цифры. Не сработало? Усложняйте. Избыточная мутация может создать миллионы ненужных вариантов и замедлит поиск вместо ускорения.»
Готовые правила для некоторых типичных сценариев:
$w.c– слово с заглавной буквы$w.u123– слово прописью + «123» в конце$w.sa@.se3.si1– leet-speak замены
Для сложных сценариев с объединением нескольких словарей, автоматизацией проверки множества файлов и цепочками атак на забытый пароль, используйте автоматизацию через сценарии атак. Полный справочник модификаторов и операторов найдёте в документации синтаксиса макроязыка.
Где используется мутация паролей
Атака по словарю с правилами мутации доступна во всех продуктах Passcovery:
- Passcovery Suite для Microsoft Office / OpenOffice / PDF / RAR / ZIP / TrueCrypt / Apple iOS / Blackberry OS / WPA/WPA2
- Accent OFFICE Password Recovery для Microsoft Office / OpenOffice / LibreOffice
- Accent PDF Password Recovery для Adobe PDF
- Accent RAR Password Recovery для RAR3 / RAR5
- Accent ZIP Password Recovery для Zip / WinZip AES
Все программы используют единый интерфейс и одинаковый синтаксис правил мутации.
FAQ: частые вопросы о мутации
Зависит от формата файла. ZIP классический – миллиарды/сек, RAR5 – тысячи/сек, Office 2016+ – сотни/сек. Скорость определяется алгоритмом защиты: современные форматы используют «медленные» KDF специально для защиты от перебора.
Да, до 4 словарей одновременно. Правило $w$x склеит слова из первого и второго словаря. Полезно для паролей «имя+фамилия»,
«слово+год», «две клички питомцев». Правило $w$x$y$z склеит слова уже из четырёх словарей.
В Редакторе правил программ Passcovery есть подсказки и моментальное отображение создаваемых правил. Правила из Hashcat (best64, dive) можно адаптировать, поскольку синтаксис похож. Но лучший набор – тот, который вы создали под свою задачу. Проанализируйте структуру забытого пароля, создайте нужный словарь, задайте нужные правила.
Если все варианты проверены, а пароль не найден. Тут два варианта: либо слова нет в словаре, либо правила не покрывают нужную трансформацию. Расширьте словарь и правила мутации или переходите к brute force и маске пароля.
По статистике Have I Been Pwned, большинство паролей следуют типовым паттернам и если ваш не нашёлся, вероятно вы просто не включили нужный шаблон. Но возможно, что потерянный пароль действительно уникален.


