Hash Brute Station

Материал из hack4sec wiki
Перейти к: навигация, поиск

Hash Brute Station 0.1a

Общее описание

Hash Brute Station (далее HBS) представляет из себя софт для удалённого управления подбором хешей на выделенном сервере. Предназначен он не для серьёзных систем большой мощности, а для обычных «домашних» сборок имеющих 1-2 GPU.

Состоит HBS из двух частей — web и cli. Первая служит графическим интерфейсом и панелью управления, позволяя создавать задачи на подбор, загружать в систему хеш-листы, словари и т. д. Вторая — рабочий скрипт запускающий задачи перебора, обрабатывающий их результат и сообщающий пользователю текущую информацию о процессе работы. Распространяется под лицензией MIT.

Системные требования

  • Любая nix-like ОС
  • MySQL5 (и пользователь с правами на LOAD DATA LOCAL INFILE)
  • Драйвера для используемой видео-карты
  • oclHashсat (на данный момент HBS работает только с Hashcat)
  • python2
  • Любой веб-сервер с поддержкой url-rewrite и PHP
  • PHP 5.4

Остальные характеристики (RAM, CPU, HDD) напрямую зависят от ваших задач. Сам по себе HBS не потребляет хоть сколько нибудь значимое количества ресурсов.

Установка, настройка и запуск

Общее

Установите свежую версию Hashcat. Убедитесь в том что она запускается и работает в ручном режиме без проблем. Создайте новую БД в MySQL и выполните код из файла database.sql (этот файл в web и cli частях один и тот же).

cli-часть

Для python установите модули configparser и официальный коннектор для MySQL. Распакуйте дистрибутив cli-части в любую директорию. Отредктируйте файл config.ini.

  • tmp_dir - временная директория системы, обычно /tmp/
  • dicts_path - полный путь к директории хранения словарей в веб-части (storage/dicts)
  • outs_path - полный путь к директории хранения out-логов в веб-части (storage/outs)
  • rules_path - полный путь к директории хранения файлов с правилами в веб-части (storage/rules)
  • path_to_hc - полный путь к Hashcat
  • hc_bin — бинарный файл Hashcat который будет запускаться для перебора.

Далее идут параметры для подключения к MySQL. На этом настройка cli-части закончена, можно запускать основной скрипт cron.py. На данный момент он не запускается в режиме демона, это нужно сделать вручную. Например через nohup или screen. Запустившись крон станет регулярно проверять БД на появление новых задач подбора.

Web-часть

Распакуйте дистрибутив веб-части. Разместите её содержимое так, чтоб директория /public/ была корневой директорией хоста на котором будет размещена веб-часть. Отредактируйте файл application/configs/application.ini, а именно раздел «resources.db.» . Там должны быть те же данные для соединения с MySQL что и в cli-части. В начале config.ini имеется параметр locale отвечающий за язык интерфейса. На данный момент доступны русский (ru) и английский (en) переводы. Файлы с ними находятся в applicatin/translates/. Остальные настройки будут рассмотренны в тех частях документации, где они используются. Для директории storage/, находящейся в корне веб-части, и всех её поддиректорий, выставьте права достаточные для записи туда файлов веб-сервером. В директори /public/ находится файл .htaccess с правилами url-rewrite для Apache2. Для других веб-серверов нужно задать аналогичные правила. К примеру для nginx это

location / { 
	try_files $uri $uri/ /index.php$is_args$args; 
} 

В php.ini установите параметр «short_open_tag» в «On». Увеличте на сколько возможно параметры «post_max_size», «upload_max_filesize» и «max_execution_time». Это пригодится при загрузке больших словарей и хеш-листов, а также при последующей их обработке HBS.

Словари

Hbs-1.png

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

Страница словарей отображает список имеющихся словарных групп, а также словарей находящихся внутри них. По каждому словарю отображается его имя, размер (в Гб/Мб/Кб/б), количество слов. Пользователь может редактировать или удалять как отдельные словари, так и целые группы. Обратите внимание на то, что при редактировании словаря вы не можете изменять его содержимое. Для этого удалите словарь и заново загрузите в изменённом виде.

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

При загрузке больших ZIP-архивов будьте внимательны — при нехватке RAM PHP может не до конца распаковать словари. Определить эту проблему можно сравнив количество слов в итоговой таблице словарей с оригиналом. В будущем будет добавлен вывод соответствующих ошибок.

Хранятся загруженные словари в директории которая прописана в config.ini в параметре «paths.storage.dicts». По умолчанию это storage/dicts в корне веб-части.

На данный момент HBS не производит сортировку или удаление дублей из словарей.

Правила

Hbs-2.png

Правила в HBS представляют из себя обычные правила модификации подбираемых выражений (https://hashcat.net/wiki/doku.php?id=rule_based_attack) и хранятся в виде списков в текстовых файлах. Добавляются они через соответствующую форму. В общей таблице отображается имя списка и количество правил внутри. На данный момент HBS не производит сортировку или удаление дублей из списков правил.

Хранятся загруженные списки в директории которая прописана в config.ini в параметре «paths.storage.rulse». По умолчанию это storage/rules в корне веб-части.

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

Хеш-листы

Hbs-3.png

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

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

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

Также HBS имеет собственные, встроенные хеш-листы которые сам формирует и обновляет. Это общие списки хешей с разбиением по алгоритму. Их вы можете узнать по шаблону имени "All-[имя_алгоритма]". Запуск перебора по подобным листам аналогичен запуску перебора по всем спискам хешей одного алгоритма. Это может помочь вам сэкономить массу времени, особенно на переборе списков не солёных хешей. Нахождение любого хеша или загрузка новых хешей ведёт к обновлению таких списков.

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

Задачи (шаблоны)

Hbs-4.png

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

На данный момент задачи в HBS бывают 4 видов (типов атак):

  • Словарь
  • Маска
  • Гибридные (маска + словарь)
  • Гибридные (словарь + маска)

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

Hbs-5.png

В случае с маской можно указать саму маску, пользовательские чарсеты, а также значения для increment-параметров (min/max).

Hbs-6.png

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

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

Рабочие задачи

Hbs-7.png

Рабочая задача — это экземпляр описанной ранее задачи, только он уже не является шаблоном, а идёт непосредственно в работу в отношении конкретного хеш-листа. Рабочие задачи имеют 4 статуса:

  • Остановлена
  • Ожидает
  • В работе
  • Завершена

Крон из cli-части время от времени проверяет список рабочих задач, берёт первую (в соответствии с приоритетом) находящуюся на ожидании и запускает её в работу меняя статус. Как только задача завершилась и результаты помещены в БД, запускается следующая по очереди ожидающая задача. Если вдруг при выполнении задачи А у задачи Б меняется приоритет и становится больше чем у А, то А ставится в статус «Ожидает», а Б идёт в работу.

Обратите внимание на колонку «Процесс». Она похожа на «Статус», но отображает детали выполнения задачи. К примеру, при запуске гибридной задачи «Статус» сразу перейдёт в «В работе», а «Процесс» будет сперва в «Компиляция хеш-листа», затем в «Компиляция словаря», затем «Запуск», затем «В работе», затем «Загрузка найденных паролей», и только после этого задача поменяет статус на «Завершена». Колонка «Процесс» нужна для того чтоб пользователь точнее видел как протекает работа задачи т. к. некоторые её этапы (например компиляция общего словаря для гибридной атаки или загрузка в БД найденных хешей) могут продолжаться очень долго.

При добавлении рабочей задачи HBS попросит вас выбрать хеш-лист(ы) и задачу(и).

Hbs-8.png

Обратите внимание на то, что в каждом из списков вы можете выбрать несколько предметов зажав клавишу Shift. К примеру, если вы выберите 2 хеш-листа и 4 задачи, то в список рабочих задач попадёт 8 записей — по 4 на каждый хеш-лист.

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

Статистика

Hbs-9.png

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

Настройки

На данной странице можно посмотреть phpinfo() и текущие настройки PHP связанные со временем работы и лимитами загружаемых данных.

Интеграция с finder.insidepro.com

С версии 0.3a доступна интеграция с сервисом finder.insidepro.com. Для её активации вам необходимо приобрести ключ (сделать это можно в официальном клиенте) и вписать в config.ini в параметр finder_key. После чего перезапустить HBS. На сервис отправляются все хеши из общих хеш-листов. HBS делает это автоматически раз в неделю. Перед началом отправки алгоритм общего хеш-листа проверяется на отсутствие работы по нему. Если какая-то рабочая задача, связанная с этим алгоритмом, ожидает обработки out-файла или находится в состоянии обработки out-файла, то этот хеш-лист временно игнорируется. Как только лимит на вашем ключе становится меньше 1000, HBS прекращает работу с finder.insidepro.com и выводит соответствующее сообщение в STDOUT. Как только вы пополните ключ, HBS автоматически продолжит работать с сервисом. Если вместо пополнения вы приобрели новый ключ, то впишите его в config.ini и перезапустите HBS.

Замечания и баги

На данный момент HBS работает только с хешами загружаемыми в текстовом виде. К примеру, брут WPA-хешдшейков не возможен.

Авторы и ссылки

Anton Kuzmin (anton.kuzmin.russia@gmail.com) http://anton-kuzmin.ru (ru) http://anton-kuzmin.pro (en)

Видео-обзор: https://www.youtube.com/watch?v=0OP9QHYOksM

Форум проекта: http://hack4sec.pro/forum/viewforum.php?f=5

http://hack4sec.pro
https://github.com/hack4sec