Специальными программами для брут форс атаки. Как взломать пароль с помощью брутфорс атаки. Методы оптимизации полного перебора

Что такое взлом аккаунта с помощью атаки brute force (метод последовательного перебора) и как можно защитить сотрудников и приложения в своей компании от этих атак?

Brute force login атака является наиболее распространённой (и наименее изощренными) атакой, используемой против веб-приложений.

Цель данной атаки - получить доступ к аккаунтам пользователей путем многократных попыток угадать пароль пользователя или группы пользователей. Если веб-приложения не имеют никаких защитных мер против этого типа атак, то злоумышленнику довольно просто взломать систему, основанную на парольной аутентификации, осуществив сотню попыток ввода пароля с помощью автоматизированных программок, легкодоступных в Интернете. Brute force login атаки могут быть использованы в ряде случаев. Если известна длина пароля, то может быть испробована каждая комбинация цифр, букв и символов, пока не будут найдены совпадения.

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

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

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

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

Есть обратный метод, вместо попытки подобрать пароль к одному аккаунту, можно попробовать один пароль к множеству аккаунтов. Это известно как reverse brute force атака. Данная техника, стоит заметить, не срабатывает там, где есть политика блокировки учетной записи. Reverse brute force атака является менее распространенной еще и потому, что атакующему зачастую сложно составить достаточно большой объем имен для этой атаки.

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

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

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

Скорость зависит от оборудования. Когда дело доходит до бытового оборудования, наиболее эффективным типом аппаратного обеспечения для атак с грубой силой является графическая карта. Так как легко попробовать много разных ключей шифрования сразу, многие графические карты, работающие параллельно, идеальны. Атаки грубой силы относятся к методу проб и ошибок, используемому для обнаружения комбинаций имени пользователя и пароля, чтобы взломать веб-сайт. Метод атаки грубой силы использует простейшую форму получения доступа к сайту: пытаясь угадать имена пользователей и пароли, снова и снова, пока они не будут успешными.

Лучший, хотя и более сложный метод - progressive delays (прогрессивные задержки). Суть его в том, что учетные записи блокируются на некоторое время после нескольких неудачных попыток входа. Время блокировки возрастает с каждой новой неудачной попыткой. Это защищает от автоматизированных средств, проводящих brute force атаки, и фактически делает нецелесообразным проведение данных атак.

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

Способы предотвращения грубых силовых атак

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

Ваши пароли обеспечивают хорошую безопасность

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

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

И вновь продолжается бой

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

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

Любое веб-приложение должно обеспечивать использование надежных паролей. Так, например, требование от пользователя выбирать пароли длиной восемь и более символов с использованием букв и цифр или специальных символов отличная защита от brute force атаки, особенно в сочетании с одним из вышеописанных методов.

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

Универсальный брутфорсер для протоколов HTTP FORM, TELNET, POP3, FTP

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

Защитите себя от жестоких силовых атак

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

Чтобы пользователи могли доверять вашей компании свои личные данные, очень важно убедиться в том, что в веб-приложении используется хотя бы один из методов защиты против brute force атаки. Использование методов, описанных в этой статье, должно обеспечить надежную защиту от этих распространенных атак.

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

Определение. Что означает «Атака грубой силы»?

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

Что такое хешкрекинг?

Восстановление паролей к хешам, или хешкрекинг (от англ. hash cracking), - весьма увлекательный процесс, для которого требуются хорошие знания в различных областях - криптографии, комбинаторике, программировании и многом другом. Нужно также отлично разбираться в железе, чтобы обеспечить бесперебойную работу своей фермы в течение многих недель и месяцев при максимaльной загрузке.

Атака грубой силой также известна как взлом грубой силы или просто грубая сила. Один из примеров атаки грубой силы известен как атака словаря, которая может попробовать все слова в словаре. Другие формы атаки грубой силы могут использовать часто используемые пароли или комбинации букв и цифр.

Атака такого характера может быть временной и ресурсоемкой. Отсюда и название «грубая сила»; успех обычно основывается на вычислительной мощности и количестве комбинаций, а не на гениальном алгоритме. Для защиты от нападений грубой силы можно использовать следующие меры.

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

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

  • Вы забыли указать адрес электронной почты.
  • Этот адрес электронной почты не отображается.
  • Вы превысили максимальный предел символов.
  • Укажите корпоративный адрес электронной почты.
Атака входа в систему с использованием грубой силы является одной из наиболее распространенных атак, проводимых против веб-приложений.

Большинство хешкрекеров на форумах - этакие робин гуды. Они тратят свое время и ресурсы на то, чтобы помочь сломать хеши другим пользователям, и при этом непрерывно накапливают себе новые пароли и правила их формирования. Для них любые хеши - этo вызов их интеллекту, их опыту, их мастерству. И эти парни находят сложнейшие пароли, которые никто другой восстановить не может. Как у них это получается? Каким софтом и железом они пользуются? Что еще нужно знать, чтобы ломать хеши так же эффективно, как они? Об этом мы и расскажем в нашей статье.

Аудит паролей MSSQL-сервера

Если веб-приложение не имеет каких-либо защитных мер против такого типа атаки, возможно автоматические инструменты, которые легко доступны в Интернете, чтобы отправить тысячи попыток пароля за считанные секунды, что упрощает атакующему, чтобы побить систему аутентификации на основе пароля.

Атаки входа в грубую силу могут быть проведены несколькими способами. Если длина пароля известна, каждая комбинация чисел, букв и символов может быть проверена до тех пор, пока не будет найдено совпадение. Однако это медленный процесс, особенно по мере увеличения длины пароля. Альтернативой является использование списка общих слов, который известен как атака словаря. Атака по словарю, как правило, пробует все английские слова, с возможностью добавления чисел или удвоения слова в качестве потенциального пароля.


Рис. 1. Хеши и пароли пользователей

Софт

Сейчас хешкрекинг в основном производится на видеопроцессорах (GPU). На обычных процессорах (CPU) брутятся только те алгоритмы, которые не реализованы под GPU. Для фактичeски уже стандартом стало использование программы oclHashcat , имеющей сборки как для Windows, так и для Linux, а также поддерживающей все современные видеопроцессоры - и NVIDIA, и AMD. Совсем недавно ее автор перевел программу в разряд Open Source, и теперь она доступна на GitHub, так что каждый желающий может присоединиться к работе над ее новыми версиями.

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

Можно ли заработать на хешкрекинге?

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

Для распределения работы этой программы между несколькими компьютерами используется оболочка hashtopus . Другим популярным GPU-брутфорсером остается нестареющий John the Ripper (JtR) в сборке Jumbo , который также имеет множество алгоритмов под все видеокарты, но для получения максимальной эффективности его желательно все-таки пересобирать под каждую конкретную конфигурацию железа.

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

Атаки грубой силы: когда пароли подаются на серебряном блюде

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

Для работы на CPU программ гораздо больше, но самыми функциональными остаются все те же hashcat и JtR. Еще можно к ним добавить программу Hash Manager , которая больше заточена под обработку хешей в «промышленных масштабах», то есть очень крупных списков, которые не удается загрузить в другие программы. Все эти программы бесплатные, и каждый решает сам, что выбрать себе для ежедневной работы, только практика показывает, что желательно уметь владеть всем этим софтом - как правило, профессиональные хешкрекеры используют ту или иную программу в зависимости от конкретной ситуации.

Еще нужно учесть, что все эти программы консольные, не имеют встроенного GUI и, чтобы использовать их максимально эффективно, нужно уметь работать в консоли (см. врезку). А в идеале еще нужно уметь программировать командные файлы (BAT или CMD), чтобы максимально гибко настраивать работу программ. Тогда можно однократно составить для себя комплект командных файлов для разных атак, а потом, когда все настроено, весь хешкрекинг сведется к заполнению файла нужными хешами и запуску того или иного командного файла c определенными параметрами.

Консоль - райский дом хешкрекера

Самый продвинутый хешкрекерский софт - консольный и управляется либо через параметры командной строки, либо через редактирование файлов конфигурации. Но тенденция такова, что пользователи все дальше и дальше уходят от консоли, требуют графического интерфейса и наиболее популярный вопрос с форумов по работе с такими программами звучит так: «Я запустил программу, выскочило черное окно и закрылось. Что делать?» Ответ очевиден - изучать консоль.

Скорее всего, линуксоиды и так владеют навыками работы в консоли, а вот для пользователей Windows лучшим выбором будет программа FAR Manager . С ее помощью очень удобно работать со списками хешей и другими файлами. А если ее объединить с дополнительными инструментами (например, из состава программы Hash Manager), то получится просто убойный комплект, позволяющий обрабатывать любые файлы буквально за секунды.

Для этого нужно через пользовательское меню (по нажатию F2) на нужные клавиши назначить самые часто используемые инструменты - отсортировать файл, извлечь пароли из файла результатов, подсчитать количество строк в файле и так далее. После этого вся работа с нужным файлом сведется к трем действиям - встать на него курсором, вызвать F2 и нажать горячую клавишу.

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

Железо

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


Рис. 2. Хорошая настольная ферма для брута хешей на пяти видеокартах

Требования к ферме такие же, как и при майнинге криптовалют, то есть нужно хорошее охлаждение, стабильное электропитание и грамотное размещение видеокарт, чтобы они не нагревали друг друга. До недавнего времени основными видеокартами для брута служили (как и в майнинге) видеокарты на процессорах AMD, так как они были более эффективны по соотношению цена/скорость. Однако после релиза архитектуры sm_50 (Maxwell) от NVIDIA выяснилось, что она лучше для брута, при этом видеокарты с такой архитектурой потребляют гораздо меньше электроэнергии, а также более тихие и холодные. И сейчас эффективнее всего для брута хешей карты NVIDIA GTX 980Ti (см. рис. 3).

И недаром же на форуме InsidePro все больше и больше хешкрекеров переходят на эти видеокарты (судя по подписям в их сообщениях) - при пиковом потреблении всего 165 Вт на алгоритме MD5 они выдают скорость порядка 15 миллиардов паролей в секунду. Но у них один недостаток - высокая цена, которая практически не снижается, а в связи со скачком курса доллара она поднялась еще больше. Если же основной критерий - цена, а все остальные параметры не важны, то можно взять видеокарты на процессорах AMD и упаковать ими свою ферму. К примеру, обычная цена системы c двумя средними видеокартами составляет около 1200–1300 долларов.

Можно ли заработать на хешкрекинге?

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

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


Рис. 3. GTX 980Ti - отличный выбор для хешкрекинга

Что касается CPU, то тут все просто - чем больше ядер, выше частота и больше объем кеша, тем быстрее будет идти перебор. Мощный процессор позволит как использовать ферму для перебора паролей на GPU, так и параллельно с ними нагружать CPU второстепенной работой - например, проверкой других хешей по словарям, пока все GPU заняты гибридной или комбинированной атакой. Поддержка новейших наборов команд (SSE и AVX последних версий) также необходима, так как почти все вышеперечисленные программы имеют код, заточенный под эти наборы команд, что существенно увеличивает скорость перебора.

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

И есть еще одна тема, где со временем CPU может обогнать GPU, - это сопроцессор Intel Xeon Phi. Да, его цена пока очень высока, но, возможно, со временем она станет приемлемой, и его можно будет прикупить и задействовать для брута хешей на домашнем компьютере. Вот тогда может получиться очень мощная система, так как в нем присутствует около 60 четырехъядерных процессоров (в зависимости от модели), а это даст нам до 240 потоков для перебора. На тяжелых алгоритмах типа bcrypt (которые очень медленны даже на видеокартах) этот сопроцессор может быть в разы быстрее даже самых топовых видеокарт, так что не зря ребята из команды john-users прозвали его «убийцей bcrypt». Правда, хешкрекерского софта под него в паблике пока нет, но со временем он обязательно появится.

Конечно, читатель может возразить - а как же микросхемы FPGA (ПЛИС), выдающие при майнинге того же биткойна огромные скорости? Да, они выдают даже терахеши в секунду, только они запрограммированы под единственный алгоритм SHA-256, который при хешировании обычных паролей пользователей применяется весьма редко (а другой популярный алгоритм майнера - SCRYPT - применяется еще реже). Плюс сама по себе микросхема ПЛИС выдает невысокую скорость, а терахеши получаются путем объединения десятков (а то и сотен микросхем) в матрицы, а это уже недешевое решение. Но главный недостаток всех ПЛИС - они программируются только на брут одиночного хеша. Конечно, на эти микросхемы уже портировано множество алгоритмов, включая MD5, но практической пользы от этого мало - выгодней купить видеокарту. Хотя и Altera, и Xilinx развивают свои линейки ПЛИС весьма активно, и со временем эта тема тоже может стать очень интересной для хешкрекера.

Словари

Успех в хешкрекинге основан на хороших словарях, желательно состоящих из реальных паролей пользователей. Где же их взять? Есть три пути, рассмотрим их подробнее.

  1. Скачать из интернета готовые словари (погуглив слово wordlist). Это самый простой способ, но и словари эти весьма низкого качества - в них много мусора и искусственно нагенерированных слов, а мало реальных паролей. Так что этот вариант - если только на первое время.
  2. Скачать вложения (аттачменты) к сообщениям о сломанных хешах на форумах InsidePro и HashKiller - там часто размещаются просьбы о помощи при бруте крупных списков, и другие форумчане помогают, выкладывая свои результаты в формате хеш:пароль. А значит, можно накачать себе таких файлов и извлечь оттуда все пароли. Это уже будут очень хорошие словари, но у них будет один недостаток - все пароли из таких словарей лежат в паблике и доступны также и всем остальным хешкрекерам.
  3. Нарабатывать словари самому, постоянно обрабатывая списки невзломанных хешей, которые можно накачать с тех же форумов. Это самый действенный метод, хотя и самый долгий. Однако такие словари - наиболее ценные, так как содержат только реальные, уникальные и часто приватные пароли. У профессиональных хешкрекеров есть даже такой термин, как «майнинг реалпассов», то есть если есть платные хеши - ферма брутит их, если их нет - ферма не простаивает, а сутками брутит списки несломанных хешей с форумов, непрерывно нарабатывая все новые и новые уникальные пароли в копилку хешкрекера.

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

Частотные словари

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

Что это такое? Это обычные словари, но в них пароли отсортированы в порядке убывания частоты их употребления. В таких словарях первыми идут наиболее популярные пароли - см. примеры таких словарей в дистрибутиве программы Hash Manager, файлы Top100xx.dic. Очевидно, что эффективней проверить хеши сначала на самые часто употребляемые пароли, затем - на более редкие и так далее. Это позволит быстро сломать все популярные пароли и существенно облегчить список хешей для последующей работы.

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

Дополнительные инструменты

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

Обычно через хешкрекера проходит множество всевозможных текстовых файлов:

  • списки хешей в разных видах и форматах, часто с перемешанными хешами разных типов, и нужно извлечь хеши отдельно по каждому алгоритму;
  • словари, которые надо чистить, сортировать, удалять повторы;
  • накопленные результаты брута, в которых часто перемешаны и несоленые хеши с паролями, и соленые хеши с паролями,
    и так далее.

В общем, сотни и тысячи подобных разнородных файлов - это еще та головная боль. И все выкручиваются по-разному - кто-то в том же линуксе делает часть работы командами самой ОС (например, grep), кто-то пишет себе скрипты на Perl, кто-то использует различные программы. Но факт очевиден - помимо брутфорсеров, нужны еще инструменты, которые должны работать с текстовыми файлами: сортировать, чистить, конвертировать из одного формата в другой, извлекать или переставлять данные, проверять формат и так далее.

Без этих инструментов работать крайне сложно, и поэтому с каждым брутфорсером обычно поставляется свой комплект различных утилит. И hashcat имеет такой комплект, и JtR тоже, но самый крупный комплект утилит под Windows имеет программа Hash Manager. В ней более 70 инструментов, построенных по принципу одна функция = один файл. Таким образом, из них, как из кирпичиков, можно собрать BAT-файл, выполняющий обработку файлов любой сложности. А 64-битные версии инструментов позволяют обрабатывать файлы неограниченного размера.

Вот пример BAT-файла, демонстрирующий, как из списка, в котором перемешаны хеши разных типов, вытащить только хеши от Magento с двухсимвольной солью:

В дистрибутиве программы Hash Manager, в папке Bonus , можно найти около 30 готовых примеров, выполняющих различные полезные функции для хешкрекера.

Алгоритмы хеширования

С одной стороны, набор актуальных алгоритмов хеширования почти не меняется со временем. Причины просты - алгоритмы хеширования паролей пользователей ОС не меняются годами, да и в интернете сотни тысяч ресурсов все еще базируются на устаревших движках, и обновление версий не происходит, несмотря на то что все новые версии форумов и CMS уже поддерживают более надежное хеширование - например, в IPB версии 4 уже сразу стоит алгоритм bcrypt. С другой стороны, небольшие изменения все-таки происходят - все больше начинает попадаться очень тяжелых алгоритмов - различные варианты PBKDF2 и тот же bcrypt, которые брутятся с мизерной скоростью даже на фермах.

Всего же известны уже сотни алгоритмов, примеры их хешей можно посмотреть . Подавляющее большинство алгоритмов хеширования базируется на каком-либо из стандартных алгоритмов - MD5, SHA-1, SHA-256 и SHA-512 или на их комбинациях. Брутфорсеры давно уже поддерживают десятки таких алгоритмов в GPU-версиях и сотни алгоритмов в CPU-версиях.

Работа с любым хешем начинается с анализа его формата. Если он имеет какую-то знакомую сигнатуру (см. примеры хешей выше), то сразу понятно, каким алгоритмом его брутить. Если же хеш без сигнатуры, то анализируется движок того форума или CMS, откуда он взят. Большой список движков с описанием алгоритма в каждом из них имеется . Если же движок известен, а алгоритм хеширования так и не понятен, то можно попробовать поискать в интернете дистрибутив этого движка и проанализировать его исходники, в части кода авторизации пользователей.

Если же исходников движка нет, тогда нужно заполучить хеш от какого-то заранее известного пароля - например, зарегистрировать пару новых пользователей на форуме, желательно с одинаковым простым паролем вида 123456. Если их хеши будут одинаковы (считаем, что доступ к хешам у хакера есть), значит, при хешировании используется только пароль. Если разные, то к паролю подмешивается еще что-то, уникальное для каждого пользователя, - соль, логин, email. А дальше можно попробовать подобрать алгоритм по имеющемуся паролю и хешу. Например, в программе Hash Manager, в папке BonusSearchAlgorithm есть BAT-файл для автоматического поиска алгоритма по всем доступным в программе алгоритмам (около 400), включая проверку паролей в кодировке Unicode, а также соли (или имени пользователя) в шестнадцатеричном виде.

Ну а если так и не удается определить алгоритм, то можно спросить на форуме - например, . Вдруг кто-то уже сталкивался с такими хешами?

По другую сторону баррикады

Теперь посмотрим на хеши глазами администратора того ресурса, который он хочет максимально защитить от взлома. Как можно усложнить жизнь хешкрекеру или вообще сделать так, что хеши пользователей станут неломаемыми?

Иногда для этого достаточно перейти на самую свежую версию движка и выбрать алгоритм, самый медленный по скорости брута. Но если обновление движка не планируется, а администратор хочет максимально обезопасить пароли своих пользователей от подбора, то есть другой вариант - пропатчить код проверки пароля так, чтобы у всех вновь зарегистрированных пользователей (или сменивших свои пароли после определенной даты) пароли хешировались по-другому. Как?

Конечно, можно использовать любой стандартный тяжелый алгоритм из Linux-функции crypt() - sha512crypt или bcrypt. Но если удастся заполучить такие хеши, то хешкрекер по сигнатурам сразу определит алгоритм и сможет ломать хеши (хоть и медленно). Вывод - нужно хешировать пароли так, чтобы хешкрекер не мог однозначно определить алгоритм по виду хеша, а это делается только нестандартными методами.

Например, можно подмешивать к паролю статическую соль (пусть даже одинаковую для всех, но очень длинную - 200–500 символов) и хешировать обычной PHP-функцией md5. Этой соли в БД форума нет (как, например, в движках vBulletin или osCommerce), она прошита только в PHP-коде, доступ к которому получить гораздо сложнее, чем к хешам. Но даже если заполучить эту соль, то почти нет брутфорсеров, поддерживающих работу с такой длинной солью (во всяком случае, на GPU - точно нет).

Другой вариант - циклически хешировать обычный MD5 от пароля этак 50–100 тысяч раз. На скорости авторизации пользователей это почти не скажется, но скорость брута таких хешей будет мизерной (при условии, что еще удастся выяснить количество итераций - опять же, только из PHP-кода). А если не удастся - то их вообще не сбрутить.

Еще можно взять более длинный хеш от другого алгоритма (например, SHA-256 или SHA-512) и вместо цельного хеша хранить в БД его фрагмент размером 32 символа из середины хеша (да еще и байты можно переставить). Хешкрекер, увидев такой хеш, будет уверен, что это MD5 (или его модификация), и будет пытаться сбрутить его, но бесполезно.

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

И нестареющий совет всем пользователям: самый надежный вариант защитить свой аккаунт от взлома, даже если был получен доступ к хешу от вашего пароля, - использовать длинный пароль, состоящий из случайных символов. Такие пароли не ломаются!

Конкурсы по хешкрекингу

А где хешкрекер может посоревноваться с другими хешкрекерами в своем умении ломать хеши? Конечно же, на конкурсах! Основные - конкурс Crack Me If You Can, проводимый фирмой KoreLogic в рамках ежегодной конференции DEF CON, и конкурс Hash Runner на ежегодной конференции Positive Hack Days.

Правила этих конкурсов весьма просты - нужно за ограниченное время (как правило, за 48 часов) сломать как можно больше конкурсных хешей и выполнить дополнительных заданий, также связанных с хешами. И так как время сильно ограничено, то на время таких конкурсов хешкрекеры всегда объединяются в команды.

Исторически сложилось так, что с самых первых конкурсов сформировались три основные команды - InsidePro, hashcat и john-users, которые все эти годы стабильно делили меж собой три призовых места в различных комбинациях. Даже по названиям команд уже очевидно, вокруг какого софта или сайта они объединились. В составе каждой из команд есть автор этого софта, и причина этого тоже понятна - на конкурсах всегда встречаются новые или видоизмененные алгоритмы хеширования, и нужно очень быстро модифицировать программу-брутфорсер или добавить в нее новый алгоритм. Тому, кто не имеет возможности быстро (часто за несколько часов или даже минут) перекроить софт под нужные фишки, очень сложно претендовать на приз.

Все отчеты о конкурсах доступны на сайтах команд, а также на сайтах организаторов - например, .


Рис. 4. Архивное фото - организаторы конкурса по хешкрекингу на DEFCON 2012

К сожалению, других крупных конкурсов по хешкрекингу нет. Иногда бывают небольшие конкурсы на хешкрекерских форумах, но их размах гораздо меньше. А с другой стороны, многие профессиональные хешкрекеры всегда находятся в «режиме конкурса», так как на форумах периодически размещаются хеши стоимостью в сотни и даже тысячи долларов, поэтому сразу после их опубликования хешкрекеры включаются в борьбу за этот хеш, чтобы обойти других, первому сломать пароль и получить «приз», то есть плату за пароль.

Заключение

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

Но главное в том, что сама идеология - хранение паролей пользователей в виде хешей - многие годы уже не меняется, и это относится как к паролям пользователей интернет-ресурсов, так и к пользователям всевозможных операционных систем, а значит, знания в области хешкрекинга будут актуальны и на все ближайшие годы!

Как сломать хеш, если под руками нет ни железа, ни софта?

Для этого можно проверить свой хеш в онлайн-базах хешей типа www.cmd5.ru . Или сразу на сервисах типа www.hashchecker.de , которые проверяют хеш массово в десятках баз, и, может быть, тебе повезет.

Но у таких сервисов есть недостаток - в основном они содержат хеши от искусственно сгенерированных паролей. Пока единственный сервис, где собраны только реальные хеши и пароли пользователей, - Hash Finder . На нем уже накоплено более 500 миллионов таких хешей и паролей - все они были кем-то когда-то реально использованы, поэтому процент найденных паролей на нем гораздо выше, чем на других сервисах.

Еще вариант - разместить свой хеш (или список хешей) на одном из хешкрекерских форумов, где всегда можно получить помощь. Самые популярные форумы:

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

Last updated by at Ноябрь 18, 2016 .