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

Новости 26.07.2019
Новости

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

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

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

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

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

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

Здравствуйте, друзья! За последнее время в интернете произошло несколько интересных событий: Яндекс запустил бета-версию Островов и изменил интерфейс Вордстат, ЦОП Profit-Partner начал очередную акцию с подарками, стартовало несколько новых конкурсов. Но, пожалуй, самое резонансное, это массовые Brute Force атаки на сайты , которым подверглись хостинги по всему миру в конце июля. Опасности взлома подвержены в основном сайты на CMS WordPress и Joomla. В случае успешного взлома, сайт становится частью ботнета и используется для новых атак.

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

Защита от брутфорс атак (перебора паролей) на стороне хостинга

Многие хостинги своевременно отреагировали на действия хакеров, но, видимо, не все. Во всяком случае, я заметил активные действия со стороны Бегет, Спринтхост и Макхост. ТаймВеб и 1gb.ua никаких видимых движений не производили, за остальных сказать не могу.

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

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

При попытке входа в админ.панель блога на хостинге sprinthost.ru меня до сих пор встречает такая страница:

На mchost.ru аналогичная картина:

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

Наши клиенты защищены настолько, насколько это возможно

Игорь, опишите, пожалуйста, вкратце сложившуюся ситуацию. Атаки идут по всему миру и длятся уже довольно долго, неужели никому, кроме хостингов и вебмастеров, до этого нет дела?

Первые атаки были еще в мае, но они были не столь заметными, хотя в интернет-новостях отметились. Лаборатория Касперского делала заявления по этому поводу, насколько я помню.

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

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

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

Кстати, я специально не использовал слово “хакер”, т.к. очень часто хакеры находят уязвимость или разрабатывают хаки, но не используют их сами, а продают. А покупатели, обычно не хакеры, уже специализируются на получении дохода.

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

Насколько масштабны эти атаки и какие сайты им подвержены?

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

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

Чего добиваются хакеры и зачем им это надо?

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

Для нас, как для хостинг-компании, подбор паролей – это ежедневная ситуация. Поэтому мы научились с ней бороться, но не всегда возможно обратиться к нашим клиентам с этим. Например, когда мы добавили в панель функцию, запрещающую ставить легкие пароли (11111111, password и прочие), то были жалобы на это:-). Люди думают, что взлом их сайта никому не нужен, но они не понимают, что эти взломы делаются ботами на автомате, а люди лишь контролируют процесс. И если взломщик заработает с взлома их сайта всего 10 рублей, например, за размещение рекламы на несколько дней или редиректа на другой сайт, то с миллиона взломанных сайтов уже будет 10 миллионов. А есть клиенты, которые не замечают взлома месяцами.

Какие уязвимости, прежде всего, могут использовать и что предпринять обычным вебмастерам, особенно новичкам?

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

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

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

Были на Вашей памяти подобные атаки, и как часто это происходит? Или это самая крупномасштабная акция за последнее время?

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

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

Спасибо Игорю за это блиц-интервью и содержательные ответы!

Простые способы защиты админки WordPress от взлома

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

  • не использовать стандартный логин admin и установить сложный пароль для входа в админку WordPress (подробнее );
  • ограничить число попыток входа в админ.панель, например, с помощью плагинов или Limit Login Attempts ;
  • если у вас статичный IP, то можно разрешить вход только ему через файл.htaccess;
  • изменить стандартный адрес входа /wp-login.php и /wp-admin , например, с помощью простого плагина или более мощного Better WP Security ;
  • не использовать виджет “Мета “, так как в нем есть прямая ссылка “Войти “.

Вот такая информация. А как у вас обстоят дела, почувствовали ли вы на своих сайтах силу брутфорс атак?

P.S. Кого интересуют промо-коды на 3 месяца бесплатного хостинга по тарифу “Профи” от Макхост, обращайтесь, поделюсь.

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

Brutus AET2

Платформа: Windows

Последний релиз программы был в 2000 году. У тулзы давно нет официального
сайта. Но при этом Brutus AET2 по-прежнему является одним самых шустрых и
продвинутых брутфорсеров для основных Интернет-протоколов. Если нужно подобрать
пароль для HTTP (на тех страничках, где используется авторизация по
логину/паролю), произвольному веб-сервису с авторизацией через форму, почтовому
аккаунту, файловому или Telnet серверу, знай: Brutus – отличный вариант.

В общем случае для подбора пароля нужно указать хост и порт сервиса, выбрать
протокол, установить количество используемых потоков (максимум — 60), а также
таймаут. В целях анонимности можно подключить сокс или прокси. В зависимости от
протокола также указывается ряд дополнительных параметров. Например, для подбора
пароля на каком-то сайте (тип брутфорса — HTTP Form), необходимо указать метод
(POST или GET), обозначить параметры формы (в Brutus встроено простое средство
для их анализа), а в случае необходимости подделать cookie, включив
соответствующую опцию.

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

В области информационной безопасности и тестах на проникновения, не редко возникает задача, когда нужно взломать пароль. Это может быть хеш пароля администратора системы 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 .



Рекомендуем почитать

Наверх