![image](https://habrastorage.org/webt/9m/xk/28/9mxk28wpn31h-qreqymkyzwjipi.png)
Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье познакомимся с преобразованием текста в голос и найдем SQL иньекцию в AРI, прокинем порт через SSH, а также выполним RCE с помощью протокола Java Debug Wire Protocol для удаленной отладки.
Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)
Организационная информация
Специально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях:
Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
- PWN;
- криптография (Crypto);
- cетевые технологии (Network);
- реверс (Reverse Engineering);
- стеганография (Stegano);
- поиск и эксплуатация WEB-уязвимостей.
Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
Разведка
Сканирование портов
Данная машиина имеет 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](https://habrastorage.org/webt/42/7n/vb/427nvb-ettyt-uuuwjx1lf8kw0a.png)
Далее нужно собрать больше информации об известных портах. Для того используем nmap с параметром -А.
nmap -A ai.htb -p22,80
![image](https://habrastorage.org/webt/rw/bl/z3/rwblz3m1vl_3rtyirrlbddgoc4a.png)
Как следует из отчета nmap на хосте работает SSH и веб-сервер. Перейдя на сайт, и побродив немного по страницам, отбираем саму интересную — с форму отправки WAV файла.
![image](https://habrastorage.org/webt/tc/ak/nn/tcaknnisq1gufb08q4yqkk1obuc.png)
Но на всякий случай я проверил дирректории с помощью gobuster. В параметрах указываем количество потоков 128 (-t), URL (-u), словарь (-w) и расширения, которые нас интересуют (-x).
gobuster dir -t 128 -u ai.htb -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php,conf,txt
![image](https://habrastorage.org/webt/q8/c4/og/q8c4ogjesncngzwhraaaphc91ma.png)
Страница db.рhр ничего не дала, а вот intelligence.php предоставляет нам информацию о сайте.
![image](https://habrastorage.org/webt/ii/gy/7w/iigy7w0f0oe3cb72wmzgoeh2i5k.png)
На сайте испольуется интерпретатор речи. То есть файл, который мы отправим, будет интерпретирован в текст. Давайте проверим предположение с помощью следующего онлайн интерпретатора текста в WAV.
![image](https://habrastorage.org/webt/oz/0b/gh/oz0bghiixn3bzcjwief-vr2r-jw.png)
![image](https://habrastorage.org/webt/h6/zl/be/h6zlbesqgaoackk9lfv1zcrxcha.png)
Предположения верны — сайт интерпретируем текст.
Entry рoint
Почему-то был уверен в SSTI, но после неудачи, вспомнив про db.рhр отправим кавычку. Но просто отправить не получится, так как на сайте испольуется AРI, которое интерпретирует символы иначе. Полный список можно посмотреть тут.
![image](https://habrastorage.org/webt/8p/ks/fz/8pksfz1od8rtprbg6qkuyumyprk.png)
![image](https://habrastorage.org/webt/pl/km/rx/plkmrxak0utt_2ep4yj-jdewgvi.png)
И мы добиваемся ошибки SQL. Теперь делаем иньекцию.
USER
![image](https://habrastorage.org/webt/k1/ct/ik/k1ctikleubbv_bxm0dz25uctm90.png)
![image](https://habrastorage.org/webt/d0/4o/bd/d04obd8ypvhmd-9brkzjwaziiwm.png)
![image](https://habrastorage.org/webt/xj/-f/8u/xj-f8u7jzbhmtdzgqvxrcs5cfos.png)
![image](https://habrastorage.org/webt/-d/ih/ed/-dihednh-z2qlabzry6rh56z0ay.png)
И таким же путем получаем пароль.
![image](https://habrastorage.org/webt/ob/cc/hc/obcchc6kfrmg7t1nvgnxwkvm8qk.png)
И с учетными данными подключаемся по SSH.
![image](https://habrastorage.org/webt/ol/yw/67/olyw67r5qetsxhen-79du-clboo.png)
ROOT
Как обычно, выполняем перечисление с помощью скрипта LinEnum.
![image](https://habrastorage.org/webt/kr/ku/-c/krku-cwy0giqqny0cehiw-_-blm.png)
После просмотра вывода скрипта, останавливаемся на интересном процессе, который работает от имени root — программма на Java.
![image](https://habrastorage.org/webt/jm/5o/87/jm5o87fzmpmnau0usvpjskw1e4s.png)
Но что более интересно — программа поддерживает соединение на 8000 порт.
![image](https://habrastorage.org/webt/3o/wc/rk/3owcrkfoq9hg5r5skmedvxinesm.png)
Что также подтверждается списком активных соединений.
![image](https://habrastorage.org/webt/kr/rs/bv/krrsbvhlzg-tddqbfhyuavtkkpm.png)
Также можно увидеть, что используется Java Debug Wire Protocol (JWDB) — протокол для связи между удаленным отладчиком и JVM. Поискав эксплоиты, находим скрипт, который помогает сделать RCE.
![image](https://habrastorage.org/webt/rt/ov/vl/rtovvl_zio8h2a-hxvo0qbue6kq.png)
Данный скрипт принимает в качестве аргумента адрес хоста, порт и команду, которую нужно выполнить.
![image](https://habrastorage.org/webt/9n/p6/wi/9np6wi7yfdgkzt-ujjjjyk1cwgq.png)
Давайте для начала прокинем порт 8000.
ssh -L 8000:localhost:8000 alexa@10.10.10.163
В данном окне откроется обычная ssh консоль, но теперь все обращения на 8000 порт локального хоста будут автоматически переброшены на 8000 порт удаленной машины.
Проверим: в другом терминале мы пробуем подключиться на данный порт с помощью jdb.
![image](https://habrastorage.org/webt/9f/s1/ag/9fs1agxsgde-ztwsh8lehwcytcu.png)
Так как соединение проходит, напишем на хосте реверс шелл, который будет выполняться в качетве команды.
![image](https://habrastorage.org/webt/j_/tr/jb/j_trjb8e0k0g-njx-nc1gztvxru.png)
Выполним скачанный скрипт со всеми необходимыми параметрами.
![image](https://habrastorage.org/webt/70/br/n9/70brn9l-22wfhqs20cw08xgcukk.png)
И после сообщения об успешно выполненной команды, наблюдаем подключение.
![image](https://habrastorage.org/webt/9c/sj/c7/9csjc7y9wcb03cyidt8sfmcd9gw.png)
Как можно наблюдать, мы получили административный доступ.
Вы можете присоединиться к нам в Telegram. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.