Skip to content
This repository has been archived by the owner on Sep 22, 2022. It is now read-only.

axilirator/cherry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cherry

Cherry - это инструмент балансировки нагрузки между удаленными узлами, выполняющими перебор паролей по словарю. С его помощью можно объединять несколько машин в единую сеть и распределять нагрузку в зависимости от производительности каждой из них. На данный момент поддерживается только алгоритмы WPA/WPA2 и программы pyrit, hashcat, oclHashcat, aircrack-ng. В дальнейшем планируется расширить спектр поддерживаемых алгоритмов.

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

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

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

Системные требования и запуск

  • Любой дистрибутив на ядре Linux, например, Ubuntu. На данный момент программа разрабатывается исключительно для него. В планах поддержка OS X и Windiws.
  • Node.js или io.js. Cherry написана на JavaScript, поэтому понадобится интерпретатор.
  • В режиме узла требуется наличие одной из данных программ: pyrit, hashcat или oclHashcat, aircrack-ng.

Для запуска Cherry необходимо клонировать данный репозиторий в локальную папку. Изначально конфигурационные файлы master.conf, отвечающий за режим сервера, и worker.conf, отвечающий за ражим узла, пусты. Все настройки вместе с описанием можно найти в файлах master.conf.defaults и worker.conf.defaults.

Запуск программы осуществляется следующим образом:

# В режиме сервера
./cherry.js serve --capturefile <файл handshake> -d <словарь> -p <порт>

# В режиме узла
./cherry.js connect -i <IP сервера> -p <порт сервера>

# Справка
./cherry.js --help

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

About

Distributed WPA/WPA2 cracker

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages