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

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

 

Разведка

 

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

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

10.10.11.189 precious.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 — служ­ба OpenSSH 8.4p1;
  • порт 80 — веб‑сер­вер Nginx 1.18.0.

Про SSH, как всег­да на машинах с HTB, мож­но забыть, пока у нас нет учет­ных дан­ных. Сра­зу откро­ем бра­узер для изу­чения веб‑сай­та.

Справка: брутфорс учеток

Пос­коль­ку в начале про­хож­дения у нас нет учет­ных дан­ных, нет и смыс­ла изу­чать служ­бы, которые всег­да тре­буют авто­риза­ции (нап­ример, SSH). Единс­твен­ное, что мы можем делать здесь, — это переби­рать пароли брут­форсом, но у машин с HTB поч­ти всег­да есть дру­гое про­хож­дение. В жиз­ни таких вари­антов может не быть, к тому же есть шан­сы подоб­рать пароль или получить его при помощи соци­аль­ной инже­нерии.

Главная страница сайта precious.htb
Глав­ная стра­ница сай­та precious.htb

Нас встре­чает фор­ма кон­верте­ра веб‑стра­ницы в файл PDF. А это потен­циаль­ная точ­ка вхо­да.

 

Точка входа

Пер­вым же делом я поп­робовал про­читать локаль­ный файл /etc/passwd, зап­росив URL file:///etc/passwd. На этот зап­рос сер­вер вер­нул ошиб­ку «You should provide a valid URL!». Сле­дующий этап — поп­робовать получить внут­ренние стра­ницы, обра­щаясь на адрес 127.0.0.1, localhost и дру­гие его вари­анты. На зап­росы такого пла­на получа­ем ошиб­ку «Cannot load remote URL!».

Зна­чит, сер­вер все же дела­ет какой‑то зап­рос. Давай тог­да запус­тим на сво­ем хос­те веб‑сер­вер:

python3 -m http.server 80

Вы­пол­няем зап­рос на него и видим, что в отдель­ной вклад­ке открыл­ся PDF, содер­жащий ответ нашего сер­вера.

Содержимое сгенерированного PDF-файла
Со­дер­жимое сге­нери­рован­ного PDF-фай­ла

Те­перь с помощью exiftool мы можем пос­мотреть, какая прог­рамма была исполь­зована, что­бы сге­нери­ровать PDF.

Метаданные скачанного PDF-файла
Ме­тадан­ные ска­чан­ного PDF-фай­ла

Уз­наем не толь­ко наз­вание генера­тора, но и его точ­ную вер­сию: pdfkit v0.8.6. Отлично, зна­чит, мы можем поис­кать готовые экс­пло­иты.

А так как мы зна­ем тех­нологию, сра­зу про­веря­ем пуб­лично дос­тупные экс­пло­иты. Можешь исполь­зовать спе­циаль­ные средс­тва вро­де searchsploit, но куда про­ще поис­кать в Google.

Поиск эксплоита для pdfkit
По­иск экс­пло­ита для pdfkit

Ви­дим упо­мина­ние уяз­вимос­ти CVE-2022-25765. Давай раз­бирать­ся.

 

Точка опоры

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

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

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

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

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


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

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

    Подписаться

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