- PVSM.RU - https://www.pvsm.ru -

Hack The Box — прохождение AI. SQLi в AРI Text To Sрeach, SSH Forwarding и RCE в JDWР

image

Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox [1]. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье познакомимся с преобразованием текста в голос и найдем SQL иньекцию в AРI, прокинем порт через SSH, а также выполним RCE с помощью протокола Java Debug Wire Protocol для удаленной отладки.

Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)

Организационная информация

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

  • PWN;
  • криптография (Crypto);
  • cетевые технологии (Network);
  • реверс (Reverse Engineering);
  • стеганография (Stegano);
  • поиск и эксплуатация WEB-уязвимостей.

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

Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram [2] и группу для обсуждения любых вопросов [3] в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем [4].

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

Разведка

Сканирование портов

Данная машиина имеет IP адрес 10.10.10.163, который я добавляю в /etc/hosts.

10.10.10.163    ai.htb

Первым делом сканируем открытые порты. Так как сканировать все порты nmap’ом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 1000 пакетов в секунду.

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.163 --rate=1000

image

Далее нужно собрать больше информации об известных портах. Для того используем nmap с параметром -А.

nmap -A ai.htb -p22,80

image

Как следует из отчета nmap на хосте работает SSH и веб-сервер. Перейдя на сайт, и побродив немного по страницам, отбираем саму интересную — с форму отправки WAV файла.

image

Но на всякий случай я проверил дирректории с помощью gobuster. В параметрах указываем количество потоков 128 (-t), URL (-u), словарь (-w) и расширения, которые нас интересуют (-x).

gobuster dir -t 128 -u ai.htb [5] -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php,conf,txt

image

Страница db.рhр ничего не дала, а вот intelligence.php предоставляет нам информацию о сайте.

image

На сайте испольуется интерпретатор речи. То есть файл, который мы отправим, будет интерпретирован в текст. Давайте проверим предположение с помощью следующего онлайн интерпретатора текста в WAV [6].

image

image

Предположения верны — сайт интерпретируем текст.

Entry рoint

Почему-то был уверен в SSTI, но после неудачи, вспомнив про db.рhр отправим кавычку. Но просто отправить не получится, так как на сайте испольуется AРI, которое интерпретирует символы иначе. Полный список можно посмотреть тут [7].

image

image

И мы добиваемся ошибки SQL. Теперь делаем иньекцию.

USER

image

image

image

image

И таким же путем получаем пароль.

image

И с учетными данными подключаемся по SSH.

image

ROOT

Как обычно, выполняем перечисление с помощью скрипта LinEnum.

image

После просмотра вывода скрипта, останавливаемся на интересном процессе, который работает от имени root — программма на Java.

image

Но что более интересно — программа поддерживает соединение на 8000 порт.

image

Что также подтверждается списком активных соединений.

image

Также можно увидеть, что используется Java Debug Wire Protocol (JWDB) — протокол для связи между удаленным отладчиком и JVM. Поискав эксплоиты, находим скрипт, который помогает сделать RCE [8].

image

Данный скрипт принимает в качестве аргумента адрес хоста, порт и команду, которую нужно выполнить.

image

Давайте для начала прокинем порт 8000.

ssh -L 8000:localhost:8000 alexa@10.10.10.163

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

Проверим: в другом терминале мы пробуем подключиться на данный порт с помощью jdb.

image

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

image

Выполним скачанный скрипт со всеми необходимыми параметрами.

image

И после сообщения об успешно выполненной команды, наблюдаем подключение.

image

Как можно наблюдать, мы получили административный доступ.

Вы можете присоединиться к нам в Telegram [2]. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.

Автор: RalfHacker

Источник [9]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/344543

Ссылки в тексте:

[1] HackTheBox: https://www.hackthebox.eu

[2] канал в Telegram: https://t.me/RalfHackerChannel

[3] группу для обсуждения любых вопросов: https://t.me/RalfHackerPublicChat

[4] рассмотрю лично и отвечу всем: https://t.me/hackerralf8

[5] ai.htb: http://ai.htb

[6] онлайн интерпретатора текста в WAV: https://www.text2speech.org/

[7] тут: https://www.nuance.com/products/help/dragon/dragon-for-pc/enx/professionalgroup/main/Content/Dictation/dictating_punctuation.htm

[8] скрипт, который помогает сделать RCE: https://github.com/IOActive/jdwp-shellifier

[9] Источник: https://habr.com/ru/post/485522/?utm_source=habrahabr&utm_medium=rss&utm_campaign=485522