Восстановление паролей - гибридная атака по словарю
Гибридная атака по словарю - это разновидность словарной атаки. Но, в отличие от последней, гибридная атака позволяет задавать свои собственные правила мутации слов. Например, можно перевести первую букву проверяемого пароля в верхний регистр, добавить в конец слова определенный символ, заменить 8 на B, O на 0 и т.д.
Действия, применяемые к исходным словам словаря, называются правила. К одному исходному слову можно применять несколько правил. Вместе с дистрибутивом программы поставляется расширенный набор правил мутации паролей.
Опции гибридной атаки по словарю разделены на 7 вкладок:
- Словари - для задания исходных словарей
- Правила - файлы с наборами правил
- Супер-правила - правила, которые можно применить поверх всех обычных, точнее до или после них
- Генератор словарей, в которой можно создавать готовые словари, получаемые в результате работы гибридной атаки
- Онлайн словари - для скачивания новых словарей в программу
- Синтаксис атаки - полное описание всех правил с примерами
- Тестер правил для тестирования собственных правил
Вместе с дистрибутивом программы поставляются постоянно пополняемые наборы правил мутации паролей (смотрите каталог hybrid_rules).
Словари
Словари для атаки задаются в первой вкладке. Традиционно поддерживаются следующие форматы: ASCII, UTF8, UNICODE, PCD, ZIP, RAR. Порядок файлов в списке можно менять. Например, небольшие словари перемещать в начало списка и наоборот.
Правила
Во вкладке 'Правила' необходимо задать по крайней мере один файл с правилами мутации паролей. С программой поставляется несколько таких файлов, например, english_words.ini с более чем 3000 правилами. Формат файла с правилами довольно тривиален и представляет собой простой текстовый ASCII файл со строкой [Rules]. Все, что идет до этой сроки, считается комментариями и игнорируется программой. Все, что после этого индикатора, рассматривается программой как правила. Каждая строка может содержать несколько правил, применяемых к исходному слову. В этом случае правила обрабатываются слева направо. Например, если к исходному слову 'password' применить правило '@pc$a$b$c', то на выходе получим 'Asswordabc'. Максимальная длина выходного слова не должна превышать 256 символов.
Супер-правила
Супер-правило - это одно или несколько правил, которые необходимо применить поверх всех обычных наборов правил: до или после них. Например, после отработки обычного правила (или нескольких, если они заданы на одной строке), для того, чтобы сгенерировать все возможные комбинации заглавных и строчных букв, можно задать конечное супер-правило 'a8'. Так правило '/asa4' из файла l33t.ini будет '/asa4a8', а '/csc(' превратится в '/csc(a8', и т.д. Еще один пример: если установить начальное супер-правило '>8<G', то до начала обычной мутации будут отклонены все слова меньше 8 или больше 16 символов. Это довольно полезная опция если вы решите применить какое-либо правило ко всем строкам во всех *.ini файлах, поскольку нет нужды править в них большое количество текстовых строк.
Осторожно. Правило 'aN' может увеличить число генерируемых паролей в сотни или даже тысячи раз!
Генератор словарей
Вкладка 'Генератор словарей' предназначена для создания словарей, получаемых в результате работы этой атаки. В дальнейшем, эти словари, например, можно использовать в других программах. Для создания словаря, задайте исходный словарь и набор правил мутации. Длина генерируемого файла может превышать 2 Гб.
Процесс создания словаря может занять значительное время!
Онлайн словари
Во вкладке 'Онлайн словари' можно скачать с сайта Passcape исходные словари для этой атаки.
Синтаксис
Если вы хотите создать свой собственный набор правил, то две последние вкладки можно использовать как помощь. В 'Синтаксис' даны простые описания правил, в последней кладке можно их протестировать, задав исходное слово и тестируемое правило. Свои наборы правил присылайте нам. Если они покажутся нам интересными/полезными, мы включим их в стандартную поставку программы.
Описание синтаксиса правил гибридной атаки по словарю
- Допускается задавать несколько правил на одной строке.
- Обработка правил (если их несколько на одной строке) идет слева направо.
- Максимальная длина строки - 256 символов.
- Максимальная длина выходного слова 256 символов.
- Весь текст до строки [Rules] считается комментарием и игнорируется.
- Строка, начинающаяся символом # считается коментарием и игнорируется.
- Пробелы в строках, если они не являются частью правил, игнорируются.
- Значения параметров N и M начинаются с 0. Для значений больше 9 используйте A..Z (A=10, B=11 и т.д.). Например, правило 'C ограничивает длину слова 12 символами.
Мы будем очень признательны, если вы пришлете нам свои собственные правила!
Правила
td>Удалить символ в позиции N, если символ в позиции M не равен Y
Правило |
Пример |
Вход. слово |
Выход. слово |
Описание |
: |
: |
password |
password |
Ничего не делать со словом. |
{ |
{ |
password |
asswordp |
Сдвинуть слово влево. |
} |
} |
password |
dpasswor |
Сдвинуть вправо. |
[ |
[ |
password |
assword |
Удалить первый символ. |
] |
] |
password |
passwor |
Удалить последний символ слова. |
c |
c |
password |
Password |
Сделать первую букву заглавной. |
C |
C |
password |
pASSWORD |
Первая буква строчная, остальные заглавные. |
d |
d |
password |
passwordpassword |
Дублировать все слово. |
f |
f |
password |
passworddrowssap |
Отразить (зеркальная перестановка букв). |
k |
k |
password
пароль |
зфыыцщкв
gfhjkm |
Конвертировать слово используя альтернативную (первую после установленной по-умолчанию) раскладку клавиатуры. Это правило работает в обоих направлениях. Например, если в системе установлена Русская раскладка клавиатуры, это правило трансформирует слово 'password' в русский эквивалент 'зфыыцщкв', а Русское слово 'пароль' в 'gfhjkm'. Это бывает очень полезно, когда имеем дело с не-английскими паролями. Если в системе установлен только один язык, правило будет проигнорировано. |
K |
K |
password |
passwodr |
Поменять местами два последних символа. |
l |
l |
PassWord |
password |
Все буквы в нижний регистр. |
q |
q |
password |
ppaasssswwoorrdd |
Дублировать все символы в слове. |
r |
r |
password |
drowssap |
Перевернуть слово. |
t |
t |
PassWord |
pASSwORD |
Обратить регистр букв (инверсия регистра). |
u |
u |
password |
PASSWORD |
Все буквы в верхний регистр. |
U |
U |
my own password |
My Own Password |
Первые буквы всех слов в верхний регистр (подразумевается, что слова разделены пробелом). |
V |
V |
password |
PaSSWoRD |
Согласные буквы перевести в верхний регистр, гласные - в нижний. |
v |
v |
password |
pASSWoRD |
Согласные буквы перевести в нижний регистр, гласные - в верхний. |
|
|
'N |
'4 |
password |
pass |
Обрезать слово до длины N. |
+N |
+1 |
password |
pbssword |
Увеличить значение ASCII символа в позиции N. |
-N |
-0 |
password |
obssword |
Уменьшить значение ASCII символа в позиции N. |
.N |
.4 |
password |
passoord |
Заменить символ в позиции N символом в позиции N+1. |
,N |
,1 |
password |
ppssword |
Заменить символ в позиции N символом в позиции N-1. Где N > 0. |
<N |
|
|
|
Отклонить (пропустить) слово если его длина превышает N символов. |
>N |
|
|
|
Отклонить (пропустить) слово если его длина меньше N символов. |
aN |
a8 |
|
|
Проверять все возможные комбинации регистра букв. N задает максимальную длину слова, для которого может быть применено это правило. |
DN |
D2D2 |
password |
paword |
Удалить символ в позиции N. |
pN |
p3 |
key |
keykeykey |
Копировать слово N раз. |
SLN |
SL2 |
012345678 |
01d345678 |
Арифметический сдвиг влево символа в позиции N. |
SRN |
SR2 |
password |
pa9sword |
Арифметический сдвиг вправо символа в позиции N. |
TN |
T1T5 |
password |
pAsswOrd |
Обратить регистр букв в позиции N. |
yN |
y3 |
password |
paspasword |
Продублировать первые N символов. |
YN |
Y3 |
password |
paswordord |
Продублировать последние N символов. |
zN |
z3 |
password |
ppppassword |
Дублировать первый символ слова N раз. |
ZN |
Z3 |
password |
passwordddd |
Дублировать последний символ слова N раз. |
|
|
$X |
$0$0$7 |
password |
password007 |
Добавить символ X в конец слова. |
^X |
^3^2^1 |
password |
123password |
Вставить символ X в начало слова. |
@X |
@s |
password |
paword |
Удалить все символы X из слова. |
!X |
!. |
|
|
Отклонить (пропустить) слово если оно содержит по крайней мере один символ X. |
/X |
/1/2/3 |
|
|
Отклонить (пропустить) слово если оно не содержит символ X. |
(X |
(p |
|
|
Отклонить (пропустить) слово если его первый символ не X. |
)X |
)d |
|
|
Отклонить (пропустить) слово если его последний символ не X. |
eX |
e@ |
mike@yahoo.com |
mike |
Извлечь подстроку, начинающуюся с первой позиции и заканчивающуюся перед первым найденным символом X (X не входит). |
EX |
E@e. |
mike@yahoo.com |
yahoo |
Извлечь подстроку, которая начинается сразу за первым найденным символом X (и до конца строки). |
|
|
%MX |
%20 |
|
|
Отклонить (пропустить) слово если оно не содержит по меньшей мере M символов X. |
*XY |
*15 |
password |
possward |
Поменять местами символы в позициях X и Y. |
=NX |
=01 |
|
|
Отклонить (пропустить) слово если символ в позиции N не X. |
iNX |
i4ai5bi6c |
password |
passabcword |
Вставить символ X в позицию N. |
oNX |
o4*o5* |
password |
pass**rd |
Перезаписать символ в позиции N символом X. |
sXY |
ss$so0 |
password |
pa$$w0rd |
Заменить все символы X на Y. |
xNM |
x4Z |
password |
word |
Извлечь подстроку длиной M символов начиная с позиции N. |
|
|
|
|
|
INX-Y |
rI0/-/r |
google.com |
google.com/ |
Вставить символ X в позицию N, если предыдущий символ в позиции N не равен Y. |
INX+Y |
rI0.+.r |
password. |
password.. |
Вставить символ X в позицию N, если предыдущий символ в позиции N равен Y. |
ONX-Y |
O0-+p |
password |
-assword |
Если символ в позиции N не равен Y, перезаписать его символом X. |
ONX+Y |
O0P+p |
password |
Password |
Если символ в позиции N равен Y, перезаписать его символом X. |
RNM+Y |
R01+a |
password |
assword |
Удалить символ в позиции N, если символ в позиции M равен Y |
RNM-Y |
R40-b |
password |
passord |
Удалить символ в позиции N, если символ в позиции M не равен Y |