
В своей работе мы активно используем hashcat, но нам стало не хватать в этом продукте некоторых функций. Например: возможность отправки уведомлений, наличие единого интерфейса к управлению взломом хешей, удобного хранения "взломанных" хешей (через некоторое время смотреть в hashcat.potfile становится больно глазам). В некоторых ситуациях необходимо выполнять параллельный взлом хешей, то есть распределить задачи взлома между несколькими хостами.
В данном цикле статей мы хотим поделиться своими "находками" по теме интерфейсов управления и/или распределенного запуска программы hashcat, хранению статистики по "взломанным" хешам. В первой части рассмотрим некоторые существующие решения, далее подробнее рассмотрим продукт Hashtopolis.
В общем если тема вам близка — просим "под кат" и в комментарии.
Поговорим о котах
Немного о самом hashcat (хешкэт)
Hashcat — это, по словам создателей, самый быстрый в мире инструмент для восстановления паролей. Версии доступны для Linux, macOS и Windows, и могут быть представлены в вариантах на базе CPU или GPU.
Hashcat получил свою популярность благодаря найденным его создателем недостаткам в других программах, использующих шифрование данных. На данный момент Hashcat активно используется для подбора WPA/WPA2 паролей, взлома паролей от документов MS Office, PDF, 7-Zip, RAR, TrueCrypt.
Источник
Механизм аутентификации в Web'е кратко изложен тут: https://habr.com/ru/post/28534/, а подробно здесь: https://habr.com/ru/company/dataart/blog/262817/
Перед исследователем безопасности (или аудитором) возникает другая задача — пароли подобрать/угадать, перехватить или обойти аутентификацию.
В случае атак на пароли, можно провести разделение на две категории (а всё остальное в третью, например атака «подсматривание за вводом пользователя»):
- online-атаки: множественные попытки аутентификации путем подбора пароля, что может «наделать много шума» или вызвать блокировку учетных записей. Это похоже на «ковыряние» отмычками в замочной скважине — хозяева могут полицию вызвать, а то и травмы нанести;
- offline-атаки: атакующему удалось получить хеши, и более целевая система не требуется для подбора пароля, весь процесс проходит на стороне атакующего. Как если бы удалось получить «слепок» замка и «ковырять» вдали от охраняемой двери.
Могут возникать ситуации вроде подбора паролей к архивам, защищенным документам или приватным ключам, но в целом это парольная атака, т.е. нужно подобрать ключ/комбинацию к замку.
Большинство атак на пароли и хэши можно разделить на:
- «словарные» (англ. «dictionary», «wordlist»)
- «в лоб» (или «брутфорс» от англ. «bruteforce», т.е. «грубая сила»)
- «гибридные» (словарь + некоторая маска для брутфорса)
В результате поисков в сети готовых «интерфейсов» для работы с hashcat мы наткнулись на следующие решения:
Названия начинаются со слова 'hash' — с английского это слово переводят как «мешанина», «путаница», «блюдо из мелко нарезанных мяса и овощей». Если дословно переводить эти названия на русский, полученные словосочетания порождают мешанину в мозгу читающего. Особенно дико воспринимается название «Hashtopussy» (smile)
Начнем обзор с Hashpass. Он заинтересовал богатством функций (на первый взгляд): очередь хэшей на взлом, визуализация на глобальной карте пойманных WPA-handshake'ов, С2С для «шпионских» малинок, поддержка SMS информирования, красивые обои занятный интерфейс с визуализацией. Панель статуса задания в Hashpass выглядит вот так:

При погружении в описание проекта на GitHub обнаружилось, что для распределенного взлома хешей «dj-zombie» разработал отдельный проект Hive. Найти актуальной информации об этом проекте нам не удалось. Т.е. «из коробки» получить «дирижерскую палочку» для параллельного взлома на нескольких хостах нельзя. В качестве stand-alone решения Hashpass весьма интересен, а учитывая связанный с ним проект Rotten Pi — на Hashpass определенно стоит обратить внимание.
На этом знакомство с Hashpass завершилось, возможно мы вернёмся к его подробному обзору в цикле статей.
Проект Hashview не уступает своему собрату Hashpass по богатству функционала, а подход к «визуальной составляющей» интерфейса, как нам кажется, реализован лучше.
Пример экрана статистики:

Вот что может предложить Hashview:
- Совместная работа — в приложении поддерживается создание отдельных аккаунтов и распределение ролей
- Поддержка OTP (One Time Password) для аутентификации пользователей
- Прямой доступ к командному интерфейсу hashcat инстанса
- Создание очередей задач по взлому хешей
- Уведомления на электронную почту о событиях
- Поиск по внутренней базе данных хешей, имени пользователя, паролю
- Визуализация метрик и система создания отчетов
Для установки сервера Hashview требуется работающий hashcat на хосте, действующее окружение RVM, MySQL, Redis. Официально заявлена поддержка Ubuntu версий 14.04 и 16.04, в других дистрибутивах Linux работа Hashview подтверждена сообществом.
А теперь о «минусах»:
- Проект официально поддерживает hashcat 4.x, о поддержке 5й версии неизвестно (есть тикет https://github.com/hashview/hashview/issues/448)
- Поддержка агентов официально всё еще в «Alpha» версии, а в нашем случае важна поддержка агентов Windows (https://github.com/hashview/hashview/wiki/04-Distributed-Cracking)
Оба проекта, Hashpass и Hashview, создают впечатление заброшенности, коммиты в репозитории были давно, а документация не актуализируется.
Мы решили отложить Hashview на одну полочку с Hashpass и перейти к следующему проекту.
Hashtopolis увидел свет в 2016 году как развитие «обертки» для hashcat — Hashtopus (https://github.com/curlyboi/hashtopus). Вначале он назывался «Hashtopussy», но по соображениям «политкорректности» был переименован в «Hashtopolis». Официальная страничка проекта: https://hashtopolis.org. По сути это форум, на котором можно по крупицам собрать полезную информацию о продукте. Также был найден канал на Discord: https://discord.gg/S2NTxbz
Возможности и особенности Hashtopolis:
- «Легко + удобно» установить и использовать сервер/агенты
- Доступ из любого места через веб-интерфейс
- Адаптивность серверной части с распространенными конфигурациями веб-хостинга
- Автономные агенты на контролируемых crack-станциях
- Управление файлами словарей и правил
- Автообновление Hashtopolis and Hashcat
- Взламывание нескольких хеш-списков одного и того же типа, как если бы они были одним списком
- Единый файл для запуска агента в Windows, Linux и OS X
- Файлы и хэши, помеченные как «секретные»(secret), распространяются только агентам, помеченным как «доверенные» (trusted)
- Множество параметров импорта и экспорта данных
- Богатая статистика по хешам и запущенным задачам
- Визуальное представление распределения «порций хешей» (chunk distribution)
- Многопользовательская работа с приложением
- Поддержка уровней доступа пользователей
- Различные типы уведомлений
- Возможность создания мини-задач для взлома хешей силами CPU
- Гранулярное распределение доступа за счет применения групп при назначении агентов и пользователей
Самой «подкупающей» фишкой Hashtopolis для нас стала поддержка уведомлений в Telegram прямо «из коробки». Этот мессенджер мы используем повседневно. Получать своевременные уведомления о «взломанных» хешах показалось крайне привлекательным. Конечно, данный функционал можно реализовать скриптами, но эта особенность не была единственной, которая привлекла в Hashtopolis.
Hashtopolis может управлять инстансами hashcat, начиная с версии 4.0.0. Также реализована поддержка «generic crackers» (некий общий командный интерфейс к ПО для «взлома хешей»). Дополнительные сведения о «generic crackers» тут
Внешний вид интерфейса Hashtopolis приятный, а навигация становится понятной через несколько минут знакомства.
Список заданий:

Красивая статистика по работе агента:

Дополнительные источники информации, к которым мы обращались по теме Hashtopolis:
- Репозиторий проекта на GitHub: https://github.com/s3inlc/hashtopolis
- Wiki страницы проекта на GitHub: https://github.com/s3inlc/hashtopolis/wiki
- Блог одного из разработчиков проекта (s3inlc): https://s3inlc.wordpress.com
- Документация Hashtopolis API представлена в PDF-документе: https://github.com/s3inlc/hashtopolis/blob/master/doc/protocol.pdf
На этом завершается вводная часть, мы поделились своим «первым впечатлением». К сожалению, у рассмотренных проектов документация не самого лучшего качества, информация разрознена и подается весьма сжато.
Надеемся, что нам удалось вызвать у читателя интерес к рассмотренным продуктам, ведь чем больше будет пользователей, тем лучше будут становиться проекты и, как следствие, появится больше информации по использованию.
В следующей части разберем установку и конфигурацию продукта Hashtopolis.