• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Статья Код Доступа Termux ч.4-я

Собираем легендарный инструмент аудит паролей, в основном написанный на Cи — John The Ripper

John The Ripper (далее ) — это софт для аудита паролей.

JTR хорош по отношению к любому подобному ПО тем (часть опубликована мной), что он может самостоятельно извлекать хэш любого формата с помощью внутренних скриптов *2john. Например, нужно восстановить пароль от своей забытой БД — для извлечения хэша используем keepass2john и т.д.. В , например, на большинстве форматов пользователю необходимо уже иметь готовый хэш на руках, а где его брать, или чем извлекать пользователю киберпанкам из Hashcat не интересно, но в сети встречаются дискуссии: когда таких пользователей Hashcat-овцы отсылают за хэшем к JTR. Кроме того, функционал JTR предназначен в т.ч. и для генерации словарей любой сложности со скоростью Си, а само JTR-ядро made in Russia.

JTR компилируется с оглядкой на предустановленные пакеты пользователя, например, если у пользователя установлен пакет «libz/libbz2/libpcap», то он сможет брутить гораздо больше хэшей. Кроме того, для извлечения некоторых хэшей требуется сторонние ЯП, например, python/perl.

Код:
$ git clone https://github.com/openwall/john $ cd john/src $ ./configure && make -s clean && make -sj4

Несколько нюансов о ПО:
  • то что JTR компилируется и запускается на Android устройствах уже хорошо (годами ранее — это было невозможно, да и сейчас поддержка гаджетов заявлена только для оф. Android-приложения (кубинская разработка) с ограниченным набором в 14-хэшей);
  • при работе JTR нагружает все ядра CPU на 100% (потому что, например, опция контроль утилизации ресурсов «--fork=2»не отработает на Android как заявлено на GNU/Linux и всё равно будет грузить все ядра CPU на всю катушку, а при таком раскладе на длинной дистанции можно получить вместо пароля любые проблемы/ущерб, т.к. JTR-у плевать на температурный контроль вашей батареи, (ниже я покажу обходное решение этой проблемы);
  • скорость брутфорса для некоторых хэшей не оптимизирована для нашей среды.
Проведем тестирование на скорость/криптостойкость, например, двух разных архив-форматов: vs в JTR и разберём предварительные результаты.

Код:
$ ~/john/run/john --test --format=rar5 && ~/john/run/john --test --format=zip

JTR1.png


Скрин JTR-1

1. Оба архив-формата поддерживаются JTR на Android девайсах (то есть можно проводить брутфорс атаку).

2. Оба архив-формата поддерживают параллельные вычисления на всех ядрах CPU. Параметр «с/s real» отображает реальное положение вещей (на моём гаджете 8 ядер): скорость при брутфорсе будет составлять ~150 паролей/с. для rar и 10,6к паролей/с. для zip форматов. Параметр «c/s virtual» отображает скорость брутфорс атаки на одном ядре CPU . Если на каком-либо хэше с/s real = c/s virtual, то это означает, что параллельные вычисления на CPU для данного формата не поддерживается JTR-ом, и брутфорс такого рода хэшей будет задействовать лишь одно ядро CPU.

3. Из скрина видим, что rar-архив криптостойкий по сравнению с zip-архивом. В целом хэш из разряда медленных и растрескивать его целесообразно разве что на коротких цифровых паролях или обладая достаточно-большой мета-информацией о пароле: сведя к минимуму всевозможные комбинации.

Простая математика брутфорса.
Например, гарантированное время восстановления пароля для rar архива с паролем «6948» ~= (10^4/150) = 67c. А что если мы обладаем меньшей мета-информацией о пароле, например, мы предполагаем, что пароль цифровой, но может иметь длину не строго 4 знака, а от 1-4 цифр в таком случае, гарантированное время восстановления увеличится на 10% ~= (10^4/150) +(10^3/150) +(10^2/150) + (10^1/150) = 74с. Время выросло, но с такими подобными/предварительными данными мы просто «обязаны» атаковать подобные криптостойкие форматы. А вот, например, буквенно-цифровой пароль длиной от 1-4 символов в нижнем регистре мы сможем сбрутить лишь в диапазоне до 3.5ч. (36^4/150) +(36^3/150) +(36^2/150) + (36^1/150).

Расчет: 26 букв + 10 цифр = 36, степень - длина пароля, 150 - перебор хэшей в сек. на всех 8 ядрах CPU. Для батареи гаджета такое время работы CPU на всю катушку явно критическое, но как обычно в подобных делах можно проявить хитрость и «упорство». Возможно, некоторые читатели сразу подумали об искусственном охлаждении девайса на подзарядке в холодильнике, но финиш можно растянуть, контролируя нагрев батареи с прерыванием и последующим возобновлением атаки, и JTR поддерживает данную функцию («ctrl + c» прервать атаку, «john -restore» - продолжить атаку с места прерывания).

Кроме того, в GNU/Linux имеется пользовательская поддержка: настройка ограничений загрузки процессора для любых операций ( и ).

Код:
$ OMP_NUM_THREADS=3 ~/john/run/john hash #данная команда разрешает использовать JTR на все 100% только 3 ядра из 8, что в перспективе снизит нагрузку на батарею, но замедлит растрескивание хэша.

Аналогична и манипуляция:
$ taskset -c 0,2,7 ~/john/run/john hash #данная команда заставляет JTR использовать CPU 3/8 ядер (первое; третье и восьмое ядра, т.е. контроль утилизации ресурсов предоставлен на выбор пользователя).

Давайте наконец-то сбрутим наш пароль подтвердив, вышеизложенные теоретические расчёты на практике.

Код:
$ ~/john/run/rar2john storage/shared/Download/test.rar > hashrar #извлекаем хэш
$ ~/john/run/john --incremental=Digits -max-len=4 hashrar #брутим хэш rar архива «test.rar» (сообщаем JTR, что пароль исключительно цифровой от 1 до 4 символов).

JTR2.png


Скрин JTR-2

Из скрина JTR2 видим, что JTR разогнался и показал свою ярость, перебирая пароли ~ на 7% быстрее чем в тестах, а пароль «6948» был восстановлен за 38с. то есть в рамках (теоретически рассчитанного выше) гарантированного диапазона расчётного времени: 74с.

Но пользователь человек с интеллектом, а не алгоритм машины, заученные шаги ему не помогут, если неизменно полагаться исключительно на тесты JTR, хотя мы и видим как они важны. На скрине JTR1 в тестах кроме архивов видим и хэш «telegram» (примечание: добавил Tg для сравнения, формат telegram в JTR - это local code telegram, защитный pin/pass на Android; Windows и GNU/Linux desktop программах). Судя по скрину тест JTR информирует нас о том, что хэш telegram из разряда медленных/криптостойких (скорость перебора 417 паролей/с.). Это не совсем так. Хэш telegram-a криптостойкий лишь для Telegram-программ на OS Windows и GNU/Linux, а на Android-е local code — это «пустышка» и его реальная скорость перебора ~составляет не (417 паролей/с., а космические 1.11млн. паролей/с.).

Давайте восстановим цифровой и буквенный «pin/pass пустышки» на Android-Telegram, оценив энергозатраты и сравним с тестами.

Код:
# Пользователю необходимо задать pin/pass в Telegram на своем рутированном Android-устройстве, далее:
$ ~/john/run/telegram2john.py userconfig.xml > hashtelegram #извлекаем хэш из «/data/data/org.telegram.messenger/shared_prefs/userconfing.xml»
$ ~/john/run/john hashtelegram --mask=?d?d?d?d #запускаем брутфорс атаку.

Команды аналогичны и для pass local code, изменяя маску/словарь.

jtr3.png


Скрин JTR-3

Из скрина видим, что любой pin (в данном примере pin «7596») восстанавливается мгновенно, а буквенный пароль в нижнем регистре на примере пароля «codeby» восстановлен за 2м.13с., что соответствует гарантированному времени восстановления пароля при брутфорсе (и в тоже время противоречит JTR-тестам). Расчет диапазона гарантированного времени восстановления пароля составлял: (26^6/1_100_000/60) ~= 4.5мин.

Для сравнения, если бы ваши данные хранились не в Tg, а в любом другом защищенном контейнере, например в rar, то на брутфорс пароля «codeby» при прочих равных обстоятельствах потребовалось бы гарантированное время восстановления ~24суток.

Обратите внимание, что хэш local code telegram для брутфорса на Android доступен пользователям с рут-правами по пути: "/data/data/org.telegram.messenger/shared_prefs/userconfing.xml", а JTR попросит доставить крипто-python-пакет.

Пример из жизни: однажды мне в лс написал читатель с просьбой о помощи восстановить свой local code telegram, доказав в суде свою непричастность.

jtr4.png


Но упомянутый читатель получил отказ в услуге, никто не готов/не может написать скрипт «_iphone2john» для извлечения хэша с яблочных устройств (они же все дорогостоящие для киберпанков).

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

Хотя, стоп, стоп, стоп! А как же без скрипт-кидди классики: ? Совершенно верно — никак.
Рассмотрим вторую из двух частей атаки, которая отработает на любом гаджете: сравнив брутфорс wifi-рукопожатия с помощью JTR и с помощью .

Восстановление wifi-пароля с помощью JTR.

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

Код:
$ ~/john/run/wpapcap2john storage/shared/Download/test/test_wifi.cap > hand_wifi #извлечение хэша
$ ~/john/run/john -w=storage/shared/Download/test/word.txt hand_wifi #атака по словарю на извлеченный хэш

jtr5.png


Пруф. Пароль в JTR успешно восстановлен. (Примечание — JTR не брутит найденные пароли повторно, чтобы снова брутить один и тот же пароль, необходимо очистить файл ~/john/run/john.pot)

Восстановление wifi-пароля с помощью aircrack.

Aircrack в репозитории багный и если не запускается после установки, то нужно пролечить: переименовать /data/data/com.termux/files/usr/lib/libaircrack-ce-wpa-1.6.0.so > libaircrack-ce-wpa.so.

Код:
$ pkg install aircrack-ng #предполагается, что у пользователя установлен root-repo и имеются рут права.
$ head -n 15000 storage/shared/Download/test/word.txt | aircrack-ng -w - -e Ragnar storage/shared/Download/test/test_wifi.cap

jtr6.gif


Пароль восстановлен и в Aircrack.

Я трижды, дважды, десять не рекомендую пользоваться в принципе aircrack-ng из-за его багов, которые представлены сообществу как фичи.
А много ли хэш-форматов поддерживает JtR? Много
$ ~/john/run/john --list=formats | wc -l
>>> 506 formats (149 dynamic formats shown as just "dynamic_n" here)

Но как написал выше о хэшах для JTR: некоторые не оптимизированы, некоторые с багами, некоторые требуют perl-настроек подобного.
По итогу, JTR — это лучшее, что есть на Android устройствах в своей области для растрескивания хэшей.

OSINT в Termux

Читая комментарии на Хабре, я обратил внимание на активность «подозрительных аккаунтов»: эти аккаунты объединяла, некая на мой взгляд, закономерность:: во-первых, они имели сходные nickname(s) (k30; k32...), во-вторых, были подписаны на топики «сделай сам».
Я решил проверить популярность k-аккаунтов над другими подобными аккаунтами, например, b-аккаунтами на дистанции в 111 учёток т.е k0, k1..k99. Для этого использовал инструмент разведки по нику — .

Код:
$ pkg install python libcrypt libxml2 libxslt git $ pip install --upgrade pip $ git clone https://github.com/snooppr/snoop -b snoop_termux $ cd ~/snoop $ python -m pip install -r requirements.txt $ ~../john/run/john -min-len=1 -max-len=3 --mask=k?d?d --stdout | sort -n -t "k" -k2 > k-аккаунты #выше я писал, что JTR в т.ч. умеет генерировать словари (альтернатива ). Генерирую словарь из 111 к-аккаунтов (почему не 100, первые 10 аккаунтов имеют вид k1 и k01...).
$ ~../john/run/john -min-len=1 -max-len=3 --mask=b?d?d --stdout | sort -n -t "b" -k2 > b-аккаунты
# прошу snoop прочекать все 111-аккаунтов на порталах «Habr» и «Codeby».
$ python snoop.py -s habr -u k-аккаунты $ python snoop.py -s habr -u b-аккаунты $ python snoop.py -s codeby -u k-аккаунты

к-аккаунты.png


(Первые верхние два скрина слева) из полученных данных видим преобладание k-аккаунтов над b-аккаунтами ~в 2 раза! Третий скрин — k-аккаунты на Codeby, как русские на мариенплац. Нижние два скрина — отображение последовательного скопления k-аккаунтов в основном в диапазоне от 10-40. Если отбросить все теории заговора, предполагаю, что популярность k-аккаунтов над другими подобными аккаунтами (я прочекал и другие алфавит-аккаунты) связана у пользователей с фильмами (с вертолётами и субмаринами).

Metasploit

Иди за белым кроликом...
Одним из самых популярных true_инструментов у безопасников является , но в местном репозитории он всё: false (кстати, как и sqlmap).

Вот скрин с избитой Termux-wiki страницы посвященной инструменту

msf.png


Нет, это не wiki-вандализм, вот официальная позиция лиц сопровождающих репозиторий, цитирую переводом:

Не обслуживаем функции взлома, фишинга, рассылки спама, шпионажа и DDoS.
Мы не принимаем пакеты, которые служат исключительно деструктивным целям или целям нарушения конфиденциальности, включая, помимо прочего, пентестинг, фишинг, брутфорс, sms/звонки, DdoS-атаки, OSINT.
Немного обидно и за OSINT, вспыхнула в памяти фраза главного судьи по делу pgp в далёкие времена, когда криптография приравнивалась к оружию, а шифропанки испытывали давление:
«Двери сарая открыты и свиньи сбежали».

Установка Metasploit
Код:
$ wget https://raw.githubusercontent.com/gushmazuko/metasploit_in_termux/master/metasploit.sh && chmod +x metasploit.sh && ./metasploit.sh
$ msfconsole

metasploit.png


Metasploit for Termux is running, no problem.

Dirb

— это простой, но чертовски популярный сканер, который почему-то ещё не изгнан из стандартного репозитория Termux. Dirb брутфорсит web-каталоги/файлы на true/false указанного ресурса по словарю, что найдёт то и выведет или сохранит в файл. Автор старой школы разработал инструмент для единомышленников почти 20 лет назад, сам же не замечен в проявлении своей онлайн публичности/активности.

Код:
$ pkg install dirb #установка сканера
$ dirb --help #изучить справку по функциям
$ dirb url #самый простой вариант натравить сканер на какой-либо ресурс.

Dirb.png


Steghide

Поиграть в со в Termux на Android-устройствах пользователю поможет ПО Steghide, которое по качеству выше аналогичного GUI-приложения: отстойного Pixelknot (стеганография которого детектируется со 100% вероятностью).

Код:
$ pkg install steghide $ steghide embed -cf ./musor/1.jpg -p pass123 -ef ./musor/secret.txt #зашифровать файл secret.txt паролем «pass123» и спрятать текстовый документ в фотографии без намёка на его существование
$ steghide extract -sf ./musor/1.jpg #извлечь секрет из фото

steghide.png


Продолжение:
Часть 1-я
Часть 2-я
Часть 3-я

Часть 5-я
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!