Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Взлом паролей с помощью GPU. Часть III - тонкая настройка

Оригинал: Hack and / - Password Cracking with GPUs, Part III: Tune Your Attack
Автор: Кайл Рэнкин (Kyle Rankin)
Дата публикации: 9 июля 2012 г.
Перевод: Алексей Жбанов
Дата перевода: 2 мая 2013 г.

Вы собрали оборудование, установили нужное ПО и взломали несколько паролей. Теперь займемся некоторой оптимизацией.

В первых двух статьях я рассказал о том, какое оборудование лучше использовать и объяснил, как пользоваться пакетом программ hashcat для атак по словарю и методом "грубой силы". Если вы следовали проложенным мной курсом, то должны были успеть и собрать "железо", и поэкспериментировать с oclhashcat. Как я уже упоминал, взлом паролей - довольно сложное занятие. В этой статье я расскажу о тонкой настройке и повышении эффективности процесса взлома.

Используем больше циклов GPU

Первое, что можно оптимизировать - это степень загрузки вашего GPU. В опции "-n" команды oclhashcat указывается, насколько полно будет он использоваться в процессе атаки. В документации сказано, что значение по умолчанию у этой опции равно 80. Однако мне показалось, что на моем компьютере значение по умолчанию было ближе к 40. При первой атаке методом "грубой силы" в выводе команды было сказано, что GPU используется на 70-80%. После добавления в командную строку "-n 80" я заметил, что использование GPU поднялось до 96-98%, а количество сравнений в секунду возросло на 40 тысяч:

/path/to/mp32.bin -1 ?d?l?u ?1?1?1?1?1?1 | \
/path/to/oclHashcat-plus32.bin -m 400 -n 80 \
-o recovered_hashes phpass-hashes

Поэкспериментируйте с разными значениями опции "-n" и понаблюдайте за изменением нагрузки GPU и количества сравнений в секунду. Но будьте осторожны: чем выше значение, тем бОльшая мощность используется и соответственно, сильнее греется GPU. Кроме того, если вы планируете использовать компьютер еще для чего-либо одновременно со взломом паролей, то вы можете отметить заметное падение производительности графической подсистемы.

Правда, увеличение значения опции "-n" может показаться неразумным, так как этот шаг приносит преимущество только при атаке методом "грубой силы". Документация hashcat рекомендует использовать более низкие значения этой опции при атаках по словарю. В конце концов, попробуйте сами уменьшать и увеличивать ее значения и узнайте, какие из них оптимальны для вас.

Атака по маске

Во второй статье мной были описаны два типа атак: по словарю и методом "грубой силы". При атаке первого типа вы предоставляете программе для взлома словарь, содержащий все пароли, которые следует попробовать, например, все слова из английского словаря. При атаке методом "грубой силы" производится перебор всех возможных сочетаний символов для пароля заданной длины. Поскольку при атаке по словарю приходится в общем случае перебирать меньшее количество паролей, она идет намного быстрее, чем атака методом "грубой силы". Но хотя последняя и требует много времени, при ней вы в конце концов отыщете искомый пароль.

Но вы не ограничены всего двумя атак - быстрой, но малоэффективной и высокоэффективной, но медленной. В случае атаки по маске вы можете объединить скорость атаки по словарю с тщательностью атаки методом "грубой силы". Атака по маске действует за счет предположений о том, из каких символов может состоять пароль. При этом выполняется в сущности атака методом "грубой силы" с гораздо меньшим набором комбинаций символов.

Поясню смысл атаки по маске на примере. Скажем, вы пытаетесь взломать пароль, зная, что он соответствует политике, требующей, чтобы пароль содержал по меньшей мере одну букву в верхнем регистре и одну цифру. Как я говорил в предыдущей статье, вы можете оценить количество комбинаций символов путем возведения длины пароля в степень количества символов в наборе, использованном для перебора. Поэтому для взлома вам придется иметь дело с набором из 62 символов (A-Za-z0-9), а при длине пароля 8 символов количество комбинаций составит 628 = 218 триллионов.

При скорости перебора в 350 000 сравнений в секунду на выполнение этой атаки потребуется примерно 7 200 дней или 19 лет.

В реальности же дело обстоит так: когда вы говорите пользователям о необходимости создать пароль из восьми символов, содержащий как минимум одну букву в верхнем регистре и как минимум одну цифру, большинство пользователей не станет создавать по-настоящему случайный пароль. Вероятнее всего, в верхнем регистре будет первая буква их пароля, затем будут идти буквы в нижнем регистре, а замыкать всю эту цепочку будет единственная цифра или четыре цифры, обозначающие год - обычно год рождения, окончания школы или текущий. При атаке по маске будет использоваться шаблон, в котором первым символом будет буква в верхнем регистре, затем пойдут три буквы в нижнем регистре, а затем четыре цифры или буквы в нижнем регистре. В этом случае количество комбинаций составит 26 х 263 х 364 ~ 767 миллиардов.

На моем оборудовании их перебор занял бы чуть более 600 часов или 25 дней. Хотя это и немало времени, тем не менее, это гораздо меньше чем 19 лет, и наверняка такой метод взлома окажется эффективным для большого количества слабых паролей.

Для описания этого шаблона я использую тот же язык шаблонов утилиты maskprocessor, который я использовал для обычной атаки методом "грубой силы", просто в данном случае я объединяю шаблон, содержащий все буквы в нижнем регистре и цифры с обычным набором символов. Окончательная командная строка получается примерно такой:

/path/to/mp32.bin -1 ?d?l ?u?l?l?l?1?1?1?1

Как видите, я определил специальную маску ?d?l (0-9a-z) и присвоил ей номер 1, затем создал шаблон пароля с первым символом в верхнем регистре - ?u (A-Z), тремя следующими в нижнем регистре - ?l (a-z) и четырьмя символами, соответствующими заданной маске - ?1 (0-9a-z). Полностью команда для взлома хеша phpass по этому способу с использованием тонкой настройки GPU будет такова:

/path/to/mp32.bin -1 ?d?l ?u?l?l?l?1?1?1?1 | \
/path/to/oclHashcat-plus32.bin -m 400 -n 80 \
-o recovered_hashes phpass-hashes

Правила атак

Последний способ увеличить эффективность атак - это применение правил к атакам по словарю. Правила позволяют вам определенным образом изменять слова из словаря. Вы можете, например, не просто перебрать их все, но также создать правило, добавляющее одиночную цифру в конце каждого слова. Это поможет вам взломать больше слабых паролей, увеличив общее количество комбинаций всего в десять раз.

Вот даже лучший пример того, как правила могут помочь взломать более "хитрые" пароли. Предположим, что с введением требования содержания цифр в паролях многие пользователи стали пользоваться "хацкерским" стилем ("leet speak"). Например, вместо слова "password" они могут использовать "p455w0rd". Но фактически они используют то же самое слово из словаря, только подвергнутое простым трансформациям, при которых "a" превращается в "4", "s" - в "5", "o" - в "0", "e" - в "3" и так далее. Если вам нужно взломать подобный пароль, то вам нужно лишь добавить к команде опцию "-r" и указать путь к файлу, содержащему список требуемых правил. Hashcat использует свой собственный язык описания правил, но он не слишком сложен в освоении, кроме того, в каталоге установки oclhashcat есть подкаталог rules, содержащий множество файлов с правилами, которые можно использовать в качестве справочного материала. Там даже есть файл с правилами для "leet speak", так что если вы хотите провести атаку с их использованием, то вам достаточно будет ввести следующую команду:

/path/to/oclHashcat-plus32.bin -m 400 \
-r ./rules/leetspeak.rule \
-o recovered_hashes example400.hash example.dict

Более подробно о правилах вы сможете узнать в вики Hashcat по адресу http://hashcat.net/wiki/rule_based_attack.

Теперь вы полностью готовы к взлому паролей (разумеется, совершенно законному). В вики Hashcat вы сможете найти еще большее количество описаний и примеров атак, что поможет вам усовершенствовать свои навыки в области взлома паролей.

Ресурсы


Кайл Рэнкин - системный архитектор, в настоящее время - президент "North Bay Linux Users' Group". Автор книг "The Official Ubuntu Server Book", "Knoppix Hacks", "Knoppix Pocket Reference", "Linux Multimedia Hacks", и "Ubuntu Hacks".