Docker + Heroku + HashCat

Docker + Heroku + HashCat

https://t.me/aitish

Приветствую. В данной статье мы развернём Minimum Kali Linux образ с Hashcat'ом на борту, для брута хэшей, на такой облачной PaaS-платформе как Heroku.

Полагаю, нужен дисклеймер)


!!!!!!!!!!!!!!!ДИСКЛЕЙМЕР!!!!!!!!!!!!!!!

АВТОР СТАТЬИ НЕ НЕСЁТ ОТВЕТСТВЕННОСТИ ЗА ВАШИ ДЕЙСТВИЯ И ВОЗМОЖНЫЙ УЩЕРБ. ВСЯ ИНФОРМАЦИЯ ПРЕДОСТАВЛЕНА ИСКЛЮЧИТЕЛЬНО В ОЗНАКОМИТЕЛЬНЫХ ЦЕЛЯХ.

Продолжим. Сразу скажу, что данная статья, по сути, бесполезная. Почему? Потому что ничего дельного не выйдет, т.к. при бесплатной эксплуатации Heroku вам не предоставляется всё вычислительная мощность сервака и вы делите ресурсы серва между другими юзерами (я, конечно, не эксперт, но это логично, тем более (см. скриншот)). У нас Free, а брать Perfomance не вижу смысла, т.к. намного дешевле залить хэш в сервис gpuhash и отдать ~10$ за пароль. Хотя можно зарегать кучу акков и раскинуть на каждый по хэшу (пишет 11 часов 20 мин на хэш, но это при условии, что будет брутить до последнего пароля в словаре, если нужный пароль попадётся раньше - раньше и закончит).

Ну что же? Пора приступать.

Сначала скачиваем Docker Desktop под свою ось, устанавливаем.

Далее регаемся на Heroku, скачиваем Heroku CLI и устанавливаем.

Теперь нам надо создать контейнер в докере. Открываем PowerShell от админа и пишем:

docker pull kalilinux/kali-rolling
docker run -ti kalilinux/kali-rolling /bin/bash

У вас запуститься Kali и в докере будет отображено

Жмякаете на кнопку RUN - вас перекидывает на вкладку с контейнерами.

Обведённый - тот, что запустился у меня. Наводите мышонка на него и справа жмякаете на CLI.

У вас откроется sh оболочка.

Первое, что нужно сделать - обновиться. Обновляться придётся долго, если у вас плохой интернет. Если хороший - тоже довольно-таки долго, но всё же быстрее)

apt update
apt dist-upgrade
apt autoremove
apt clean

Далее, устанавливаем hashcat и все его зависимости (скриншоты лепить не буду, не вижу смысла).

У меня была такая ошибки:

debconf: unable to initialize frontend: Dialogdebconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76, <> line 26.)debconf: falling back to frontend: ReadlineSelecting previously unselected package libllvm9:amd64.

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

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

Теперь надо запушить словарь (-и) для брута и хэши. Для сего действа откроем новое окно PowerShell'а и введём пару незамысловатых команд.

docker ps

Отобразит запущенные контейнеры.

Нужно поле NAME. Мой контейнер называется nervous_wing. Для копирования файлов с хоста в докер контейнер, лучше закинуть файлы на диск с системой (для винды).

docker cp [SRC] [DEST]

Скопировано

Сделали? Идём дальше.

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

docker ps

Нужен ID контейнера

docker commit [ID контейнера] [название образа, какое хотите]

У меня всё прошло быстро, потому что контейнер без обнов и утилит: для примера показываю.

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

Пришло время пушить всё это безобразие на Heroku.

Открываем повара (powershell. буду подписывать его поваром, а то лень по-нормальному). Пишем:

heroku login

Ну, тут понятно.

heroku container:login

Входим в реестр контейнеров.

heroku apps:create [PROJECT_NAME] --region eu

Создаём приложение (типа).

Обратите внимание: команды разные, я использовал укороченную команду.

docker login --username=[ваша почта или юзернэйм] --password=$(heroku auth:token) registry.heroku.com

Залетаем на облачный бэкенд.

docker tag [IMAGE ID] registry.heroku.com/[IMAGE NAME]/web

Присваиваем тег.

docker push registry.heroku.com/aitish/web

Пушим образ в реестр.

heroku container:release web -a [APP NAME]

Типа задаём версию приложения (хз как правильно сформулировать)


Вот и всё. В поваре пишем

heroku run bash -a [APP NAME]

А вот и наш текстовый файл, который копировали с хоста.

Этот файл - копия лога от WPI, который делали в одной из статей.

У меня эта система без обнов, так что давайте запущу с обновами и с hashcat'ом на борту. Кстати, которая с обновами и утилитами, дольше запускается.

Hashcat есть, хэши для брута есть.

Можно брутить.

ОДИН МОМЕНТ ИЛИ, ДАЖЕ, ПАРУ:

1) у heroku эфемерная файловая система. Это значит, что после ребута или выкл/вкл контейнера, который крутится у нас на хероку, произойдёт сброс до чистого образа, который мы заливали, т.е. останутся только те файлы, которые были когда мы снимали образ с контейнера докера. Короче говоря: создадите файл и ребутните контейнер - файлу пизда; создадите файл в докер контейнере и снимите образ оси со всеми причиндалами - файл похуй, даже если удалите, при ребуте он опять появится. Такое чувство, что хуёво объяснил, если да - ищите, что такое эфемерная файловая система. Получить root на heroku невозможно, поэтому мы и накатывали обновы и устанавливали всё, что надо, сразу. Есть такая штука как heroku-buildpack-apt, но не пробовал, не знаю.

2) heroku контейнер 24/7 работать не сможет, если только вы не привяжите платёжную карту на сайте (левую или подлинную, неважно). Привяжите - будет работать. А так, если для брута потребуется хотя бы 10 часов (при условии, что будет брутить до последнего слова), у вас просто выйдет время соединения и, учитывая 1 пункт, hashcat хоть и запомнит на каком пароле он остановился, но соединению пизда, дуно сервер в рестарт и у вас нихренашеньки не сохраниться. Отсюда следует: привязывайте карту.

3) Если вы привязали карту и всё у вас замечательно, но как же загрузить новые хэши? Можно непосредственно вставлять их в команду hashcat'а, но будет длинновато при большом кол-ве хэшей, а можно юзать простенькую команду:

echo "[HASHES]" > 1.txt

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


При поддержке одного пиздатого .net dev'а: @udzhen




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

С вами была АЙТИШНЯ!

Report Page