В этой статье я покажу про­хож­дение слож­ной машины Monitors с пло­щад­ки Hack The Box. Мы пос­каниру­ем сайт на WordPress, получим RCE в CMS Cacti, про­экс­плу­ати­руем дыру в Apache OFBiz и, наконец, сбе­жим из Docker с мак­сималь­ными при­виле­гиями бла­года­ря SYS_MODULE. Поеха­ли!

warning

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

 

Разведка. Сканирование портов

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

10.10.10.238 monitors.htb

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

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

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

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

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

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

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

Ви­дим два откры­тых пор­та: 22 (служ­ба SSH) и 80 (веб‑сер­вер Apache 2.4.29). На веб‑сер­вере работа­ет WordPress 5.5.1, с его иссле­дова­ния мы и нач­нем.

 

Точка входа

 

Сканирование WordPress

Тес­тировать сай­ты на WordPress удоб­нее все­го ути­литой WPScan. С ее помощью мож­но обна­ружить уяз­вимые вер­сии самого WordPress, тем и пла­гинов, а так­же соб­рать име­на поль­зовате­лей и переб­рать учет­ные дан­ные. В общем, все, что может понадо­бить­ся! Перед началом ска­ниро­вания советую зарегис­три­ровать­ся на офи­циаль­ном сай­те WPScan и получить токен API. Тог­да ути­лита будет авто­мати­чес­ки про­верять най­ден­ные стра­ницы на уяз­вимос­ти. Нам даже пре­дос­тавят ссыл­ку на отчет или готовый экс­пло­ит!

Ча­ще все­го уяз­вимы пла­гины, поэто­му я зарядил их перебор (опция -e ap) в агрессив­ном режиме (опция --plugins-detection aggressive), исполь­зуя 128 потоков (опция -t):

wpscan --url http://monitors.htb -e ap --plugins-detection aggressive -t 128 --api-token [token]
Обнаруженные плагины
Об­наружен­ные пла­гины

Пот­ратив нес­коль­ко минут, мы получа­ем отчет, в котором нап­ротив най­ден­ного в агрессив­ном режиме пла­гина сто­ит помет­ка «1 vulnerability identified». Зна­чит, на целевом сай­те уста­нов­лен уяз­вимый пла­гин Spritz 1.0. Заод­но нам дали ссыл­ку на Exploit-DB, где есть опи­сание уяз­вимос­ти. Но если у тебя спе­циали­зиро­ван­ный дистр вро­де Kali Linux, то база ExploitDB уже есть на тво­ем дис­ке и ты можешь исполь­зовать ути­литу searchsploit, что­бы искать по ней.

searchsploit 44544
searchsploit -p php/webapps/44544.php
Эксплоит в локальной базе searchsploit
Экс­пло­ит в локаль­ной базе searchsploit
Описание эксплоита 44544 для плагина Spritz 1.0
Опи­сание экс­пло­ита 44544 для пла­гина Spritz 1.0

Из опи­сания экс­пло­ита мы видим, что пла­гин уяз­вим к LFI — локаль­ному вклю­чению фай­лов.

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

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

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

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

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


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

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

    Подписаться

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