Взлом пароля методом грубой силы. Изучаем bruteforce атаку

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

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

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

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

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

Софт

Сейчас хешкрекинг в основном производится на видеопроцессорах (GPU). На обычных процессорах (CPU) брутятся только те алгоритмы, которые не реализованы под GPU. Для брута на 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 под себя - цветовой раскраской файлов, быстрыми клавишами для инструментов, быстрыми переходами в нужный каталог и так далее - вся рутинная работа хешкрекера станет очень комфортной, а значит - и очень эффективной.

Железо

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


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


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

Что касается 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 с двухсимвольной солью:

REM Извлекаем только строки длиной 35 символов ExtractLinesByLen.exe %1 35 35 REM Переименовываем файл с извлеченными строками в файл 2.txt MOVE /Y %1.Lines 2.txt REM Проверяем формат хешей IsCharset.exe 2.txt ?h 1 REM Проверяем формат соли IsCharsetInPos.exe 2.txt 33 ":" IsCharsetInPos.exe 2.txt 34 ?l?u?d IsCharsetInPos.exe 2.txt 35 ?l?u?d REM Готово! В файле 2.txt остались только хеши от Magento

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

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

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

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

Если же исходников движка нет, тогда нужно заполучить хеш от какого-то заранее известного пароля - например, зарегистрировать пару новых пользователей на форуме, желательно с одинаковым простым паролем вида 123456. Если их хеши будут одинаковы (считаем, что доступ к хешам у хакера есть), значит, при хешировании используется только пароль. Если разные, то к паролю подмешивается еще что-то, уникальное для каждого пользователя, - соль, логин, email. А дальше можно попробовать подобрать алгоритм по имеющемуся паролю и хешу. Например, в программе Hash Manager, в папке Bonus\SearchAlgorithm есть 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, которые все эти годы стабильно делили меж собой три призовых места в различных комбинациях. Даже по названиям команд уже очевидно, вокруг какого софта или сайта они объединились. В составе каждой из команд есть автор этого софта, и причина этого тоже понятна - на конкурсах всегда встречаются новые или видоизмененные алгоритмы хеширования, и нужно очень быстро модифицировать программу-брутфорсер или добавить в нее новый алгоритм. Тому, кто не имеет возможности быстро (часто за несколько часов или даже минут) перекроить софт под нужные фишки, очень сложно претендовать на приз.

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


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

Заключение

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

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

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

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

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

Еще вариант - разместить свой хеш (или список хешей) на одном из хешкрекерских форумов, где всегда можно получить помощь. Самые популярные форумы: forum.insidepro.com , forum.hashkiller.co.uk , forum.antichat.ru/forums/76 .

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

Брутфорс (от английского brute force — полный перебор или метод «грубой силы») – один из популярных методов взлома паролей на серверах и в различных программах. Заключается он в том, что программа-взломщик пытается получить доступ к какой-либо программе (например, к почтовому ящику) путем перебора паролей по критериям, заданным владельцем данной программы: по словарю, по длине, по сочетаниям цифр, да в принципе таких критериев существует множество.

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

Данный способ подбора паролей очень хорош тем, что пароль в конце концов взламывается, но это может занять весьма и весьма долгое время, зачастую даже столетия. Так что данный способ взлома оправдывает себя не всегда, если пользователь-владелец взламываемого сервиса вел себя достаточно хитро и не использовал простых паролей типа «123», «qwerty» и тому подобных, а использовал и заглавные, и строчные символы, плюс ко всему этому задействовал и цифры, и разрешенные специальные символы. Если пароль при всем этом обладает еще и достаточной длинной (около 10 символов), то ему взлом методом брутфорс а практически не грозит.

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

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

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

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

Ну и напоследок поговорим немного о математической стороне брута.

Как говорит Википедия, любая задача (!!!) из класса NP может быть решена путем полного перебора. Но все это может потребовать экспоненциального времени (!!!).

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

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

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

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

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

Не секрет, что попытки подбора пароля методом перебора (брутфорс) - постоянное явление. Подбирают пароли к серверам и виртуальным машинам, к админкам сайтов и FTP-аккаунтам, к почтовым ящикам и социальным сетям.

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

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

И вот как это было:

Мода на мега-брутфорс дошла и до нас

Похожая атака на Wordpress-сайты была предпринята в апреле этого года. Эта атака затронула в основном западные ресурсы и российские пользователи и хостинг-провайдеры ее не заметили. На этот раз ботнет направлен прежде всего на взлом русскоязычных сайтов.

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

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

Зная ноду, можно углубиться дальше и узнать, кто именно создает нагрузку:


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

Борьба с ботами

Поведение ботов было стандартным: они обращались к типовой странице авторизации CMS. Например, для WP это страница wp-login.php. В первой фазе атаки обращения были достаточно топорными: боты сразу делали POST логина и пароля в форму без предварительного получения страницы (GET). Таким образом, на этом этапе их было очень легко отличить от настоящих пользователей, которые сначала получали страницу, а потом уже вводили логин и пароль.

Используя эту особенность, боты достаточно быстро были заблокированы. Естественно, после этого злоумышленники внесли коррективы в поведение ботов. Они научились делать GET-POST и работать с куками.

После этого из возможных вариантов прикрытия остались:
1) переименование страницы авторизации;
2) ограничение доступа к админскому разделу по ip-адресам (белый список, географический или иной принцип деления);
3) двойная авторизация.

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

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

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

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

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

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

Примерно так выглядит страничка с дополнительной авторизацией (простите, было не до красивого оформления страницы):

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

Наблюдения

Помимо борьбы с ботами нам было весьма интересно понаблюдать за тем, как координируются и распределяются их усилия. Судя по аналитике из нашей системы, количество одновременных запросов на 1 хостинговый ip-адрес устойчиво держалось не более 30 для каждой CMS, вне зависимости от количества атакуемых сайтов на этом адресе. Таким образом, если на одном ip-адресе размещались сайты и на Wordpress, и на Joomla!, то количество одновременных обращений держалось на уровне 60 штук. Это достаточно много для shared-хостинга.

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

Активная фаза атаки начиналась вечером и продолжалась всю ночь. Адреса сайтов ботам отдавались в алфавитном порядке.
Таким образом, вечером начинали страдать сайты на букву А, а ближе к утру — сайты на Z. Им в этом смысле повезло чуть больше.

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

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

Спасибо за внимание! :)

Всем успехов в борьбе с ботами. способы для самостоятельной защиты озвучены выше. Если у вас есть классный готовый рецепт — прошу в комменты!

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

Итак, что же такое брут-атака?

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

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

Обычно каждый общий идентификатор (например, admin) имеет пароль. Все, что нужно сделать - это попытаться угадать его. Например, если это двузначная комбинация, у вас есть 10 цифр от 0 до 9. Это означает, что существует 100 возможностей. Можно подобрать их вручную и вводить один за другим.

Но правда в том, что ни один пароль в мире не состоит из двух символов. Даже номера контактов, используемые на мобильных телефонах или в банке, состоят минимум из 4-х символов.

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

Итак, если есть буквенно-цифровой 8-символьный пароль, сколько возможных комбинаций придется подбирать? В английском языке имеется 26 алфавитных букв. Если посчитать их как в верхнем, так и в нижнем регистре, получится 26 + 26 = 52. Затем нужно добавить цифры: 52 + 10 = 62.

Итак, всего имеется 62 символа. Для 8-символьного пароля это будет 628, что сделает 2.1834011 × 1014 возможных комбинаций.

Если вы попытаетесь использовать 218 триллионов комбинаций за одну попытку в секунду, это займет 218 триллионов секунд, или 3,6 триллиона минут. Проще говоря, потребуется около 7 миллионов лет, чтобы взломать пароль с окончательной комбинацией. Конечно, процесс может занять меньше, но это максимальный срок для подбора такого значения. Понятно, что ручной брутфорс - это невозможно.

Тогда как это может произойти?

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

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

Если машина сможет попробовать 1 × 109 попыток в секунду, то всего за 22 секунды все 218 триллионов попыток будут протестированы. Вычислительные ресурсы такого рода недоступны для простых людей. Однако хакеры не являются обычными пользователями. Они могут собирать вычислительные ресурсы различными способами, например путем разработки мощного вычислительного механизма с помощью программного обеспечения и тому подобное.

Кроме того, приведенное выше вычисление существует для всех возможных комбинаций 8-символьного пароля. Но что, если его длина составляет 10 или 100 символов? Вот почему очень важно иметь дополнительные уровни безопасности для обнаружения и отклонения попытки взлома.

Зачем они это делают?

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

Что же делать?

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

Например, для SSH можно использовать хосты Fail2ban или Deny. Эти программы будут отклонять IP-адрес после нескольких неправильных попыток. Эти инструменты делают хорошую работу. Тем не менее они не всегда могут защитить.

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

Длина пароля

Первым шагом к предотвращению атаки должна быть большая длина пароля. В настоящее время многие веб-сайты и платформы заставляют своих пользователей создавать код доступа определенной длины (8-16 символов).

Сложность паролей

Еще одна важная вещь - создать сложный пароль. Не рекомендуется придумывать их типа iloveyou или password123456. Пароль должен состоять из больших и строчных букв, а также иметь цифры и специальные символы. Сложность задерживает процесс взлома.

Предельные попытки входа в систему

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

Изменение файла.htaccess

Добавление нескольких правил в файл.htaccess может еще более усилить безопасность вашего сайта. Цель состоит в том, чтобы разрешить доступ к wp-admin только определенным IP-адресам, перечисленным в нем.

Использование капчи

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

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

Двухфакторная аутентификация

Two Factor Authentication - это дополнительная линия защиты, которая может защитить учетную запись от брутфорса. Шансы на успешное выполнение атаки на охраняемых сайтах 2FA очень малы. Существуют различные способы ее реализации на сайте. Самый простой - использовать любой из плагинов для двухфакторной аутентификации.

Если говорить не о собственном сайте, а о других ресурсах (например, чтобы предотвратить брутфорс роутера), методы могут быть следующими:

  1. Создать уникальный пароль для каждой учетной записи.
  2. Производить частые смены пароля.
  3. Избегать совместного использования учетных данных через небезопасные каналы.

Обратная переадресация

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

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

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

Aircrack-нг

Это популярный беспроводной инструмент для взлома паролей, доступный бесплатно. Он поставляется с WEP/WPA/WPA2-PSK взломщиком и инструментами анализа для выполнения атаки на WI-Fi 802.11. Aircrack NG может использоваться для любого сетевого адаптера, который поддерживает режим необработанного мониторинга.

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

Приложение доступно для брутфорса Windows и Linux. Кроме того, оно перенесено на платформы iOS и Android.

John the Ripper

Это еще один потрясающий инструмент, который не нуждается в какой-либо инструкции. Он часто применяется для долгого брутфорса паролей. Это бесплатное программное обеспечение было первоначально разработано для систем Unix. Позже авторы выпустили его для других платформ. Теперь программа поддерживает 15 различных систем, включая Unix, Windows, DOS, BeOS и OpenVMS. Ее можно использовать либо для определения уязвимости, либо для взлома паролей и нарушения аутентификации.

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

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

Rainbow Crack

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

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

L0phtCrack

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

Ophcrack

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

Crack

Это один из старейших инструментов для взлома паролей. Он может использоваться для UNIX-систем, в том числе брутфорса на «Андроиде». Используется для проверки слабых паролей путем выполнения атаки посредством словарей.

Hashcat

Некоторые утверждают, что это самый быстрый инструмент для взлома паролей на основе процессора. Он бесплатный и поставляется на платформах Linux, Windows и Mac OS. Hashcat поддерживает различные алгоритмы хеширования, включая LM-хэши, MD4, MD5, SHA-семейства, Unix-склеп-форматы, MySQL, Cisco PIX. Программа поддерживает различные атаки, включая Brute-Force, Combinator, словари, атаку отпечатка пальца, а также многое другое.

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

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

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

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

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

Рис. 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 с двухсимвольной солью:

REM Извлекаемтолькострокидлиной35 символовExtractLinesByLen . exe % 1 35 35

REM Переименовываемфайлсизвлеченнымистрокамивфайл2.txt

MOVE / Y % 1.Lines 2.txt

REM ПроверяемформатхешейIsCharset . exe 2.txt ? h 1

REM ПроверяемформатсолиIsCharsetInPos . exe 2.txt 33 ":" IsCharsetInPos . exe 2.txt 34 ? l ? u ? d

IsCharsetInPos . exe 2.txt 35 ? l ? u ? d

REM Готово! Вфайле2.txt осталисьтолькохешиот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 .




Top