Home > Гибридная атака по словарю (GPU)
Гибридная атака по словарю на GPU
05.05.2022
Reset Windows Password v11.4
Windows activity timeline, Windows clipboard history, etc.
20.04.2022
Windows Password Recovery v14.3
Preliminary support for Windows 11
15.04.2022
Outlook Password Recovery v3.2.1
Support for Windows 11 and the latest version of MS Outlook
21.03.2022
Reset Windows Password v11.3
New forensic utilities, support for Windows 11 and Windows Server 2022

Articles and video

You may find it helpful to read our articles on Windows security and password recovery examples. Video section contains a number of movies about our programs in action

Windows Password Recovery - гибридная атака по словарю с использованием видеокарт


Гибридная атака по словарю на GPU - аналогична простой гибридной атаке за тем лишь исключением, что перебор паролей происходит на видеокарте, а не на процессоре компьютера. Это позволяет увеличить скорость перебора паролей в среднем ~10 раз по сравнению с обычной гибридной атакой. Хотя финальные цифры в значительно степени зависят от настроек атаки и используемого оборудования.

Действия, применяемые к исходным словам словаря, называются правила. К одному исходному слову можно применять несколько разных правил.

Опции гибридной атаки состоят из восьми вкладок:

  1. Словари - для задания исходных словарей.
  2. Правила - файлы с наборами правил.
  3. Супер-правила - правила, которые можно применить поверх всех обычных, точнее до или после них.
  4. Генератор словаря, в которой можно создавать собственные словари, получаемые в результате работы гибридной атаки.
  5. Онлайн словари - для скачивания новых словарей в программу из сети Интернет.
  6. Синтаксис атаки - полное описание всех правил с примерами.
  7. Тестер правил для тестирования собственных правил.
  8. Опции GPU - настройка параметров для работы видеокарты.
С более детальной статистикой по всем наборам правил можно ознакомиться в соответствующей статье.
 

Словари

Словари для атаки задаются в первой вкладке. Программа поддерживает следующие форматы: 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', и т.д. Еще один пример: если установить начальное супер-правило '>6

Супер-правило 'aN' может увеличить число генерируемых паролей в сотни или даже тысячи раз!
Правила гибридной атаки

 

Генератор словарей

Вкладка 'Генератор словарей' предназначена для создания собственных словарей, получаемых в результате работы этой атаки. В дальнейшем, эти словари, например, можно использовать в других программах. Для создания своего словаря, задайте исходный словарь и набор правил мутации. Длина генерируемого файла может превышать 2 Гб при условии, что он находится на NTFS разделе диска.

Будьте осторожны, процесс создания словаря может занять значительное время!
Создание словаря по гибридной атаке

 

Онлайн словари

Во вкладке 'Онлайн словари' можно скачать с сайта Passcape дополнительные словари специально для этой атаки.

 

Синтаксис

Если вы хотите создать свой собственный набор правил, то две предпоследние вкладки можно использовать как помощь. Во вкладке 'Синтаксис' даны простые описания правил, во вкладке 'Тестер правил' можно их протестировать, задав исходное слово и какое-либо правило. Свои наборы правил присылайте нам. Если они покажутся нам интересными и полезными, мы включим их в стандартную поставку программы.

Создание новых правил для гибридной атаки

 

Описание синтаксиса правил гибридной атаки по словарю

  • Допускается задавать несколько правил на одной строке.
  • Обработка правил (если их несколько на одной строке) идет слева направо.
  • Максимальная длина строки - 256 символов.
  • Максимальная длина выходного слова 256 символов.
  • Весь текст до строки [Rules] считается комментарием и игнорируется.
  • Строка, начинающаяся символом # считается коментарием и игнорируется.
  • Пробелы в строках, если они не являются частью правил, игнорируются.
  • Значения параметров N и M начинаются с 0. Для значений больше 9 используйте A..Z (A=10, B=11 и т.д.). Например, правило 'C ограничивает длину слова 12 символами.
  • Следующие правила должны быть последними в строке: aN, ?iN[C], ?i[C], ?oN[C], ?o[C], ?iZ[C], ?oZ[C]
  • Не меняйте имена стандартных файлов с правилами. Некоторые из них используются программой.
  • Правила ?iN[C], ?i[C], ?oN[C], ?o[C]  ?iZ[C], ?oZ[C] используют следующие встроенные наборы символов (также можно задавать свои собственные):
digits - 0123456789
loweralpha - abcdefghijklmnopqrstuvwxyz
upperalpha - ABCDEFGHIJKLMNOPQRSTUVWXYZ
alpha - abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
special - !@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ "
loweralphanumeric - abcdefghijklmnopqrstuvwxyz0123456789
upperalphanumeric - ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
alphanumeric - abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
printable - abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.? /
Мы будем очень признательны, если вы пришлете нам свои собственные правила, которые можно включить в дистрибутив программы!
 

Правила

Правило Пример Вход. слово Выход. слово Описание
: : 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 символов.
_N _8     Отклонить (пропустить) слово если его длина не равна 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
         
?iN[C] ?i0[digits] password 0password
..
9password
Вставить символ из набора [C] в позицию N входного слова. Где [C] может быть как именем набора, так и самим набором.
?iZ[C] ?iZ[digits] password password0
..
password9
Вставить символ из набора [C] в последнюю позицию входного слова.
?i[C] ?i[special] password ~password
..
password+
Вставить символ из набора [C] в каждую позицию входного слова. [C] может быть как именем набора, так и самим набором.
?oN[C] ?o1[upperalpha] password pAssword
..
pZssword
Перезаписать во входном слове символ в позиции N каждым символом из набора [C]. Где [C] может быть как именем набора, так и самим набором.
?oZ[C] ?oZ[upperalpha] password passwor0
..
passwor9
Перезаписать во входном слове последний символ каждым символом из набора [C].
?o[C] ?o[-=.] password -password
..
password.
Перезаписать во входном слове символ в каждой позиции символом из набора [C]. [C] может быть как именем набора, так и самим набором. В данном примере правило ?o[C] сгенерирует следующие пароли: -password, =password, .password, -assword, =asswords, .assword, p-ssword, p=ssword ... password.
 
Для более эффективной работы Гибридной атаки вы можете скачать полный набор более 620000 правил, отсортированный и с удаленными дубликатами.
 

Установки графической карты

Перед использованием ее в атаке, графическую карту необходимо выбрать в соответствующем пункте общего меню.
Настройка видеокарт в гибридной атаке

Настройка графической карты состоит из двух параметров:

  1. Установка количество параллельных блоков графической карты, в которых будет осуществляться поиск паролей. Каждый блок состоит из 256 потоков. Таким образом, если задать количество блоков равным 256, то каждый раз на GPU будет запущено 256*256=65536 потоков. А общее количество проверяемых паролей за один запуск GPU кернела будет составлять 256*ThreadBlocks*PasswordsPerThread, т.е. в нашем случае, 256*256*1000= 65 536 000 паролей. Рекомендуется всегда устанавливать значение Thread Blocks кратным 64.

  2. Установка максимального количества паролей, обрабатываемые в одном потоке GPU. Чем выше это значение, тем меньше накладных расходов, связанных с запуском потоков, обработки переменных и т.д. и, соответственно, тем выше скорость перебора. Однако установка слишком большого значения может привести к зависанию компьютера, голубому экрану смерти, либо к тому, что текущая скорость перебора (во вкладке состояния атаки) начинает "плясать". Значение по умолчанию для этого параметра составляет 100.

Используйте 'тяжелые' правила (например, aN, ?iN, ?oN и т.д.) особенно аккуратно. Эти правила увеличивают количество проверяемых паролей в сотни и даже тысячи раз, что может привести к зависанию системы или неработоспособности программы.