Категория > Новости > HTB Faculty. Атакуем веб-сервер через mPDF и повышаем привилегии с помощью Linux capabilities - «Новости»

HTB Faculty. Атакуем веб-сервер через mPDF и повышаем привилегии с помощью Linux capabilities - «Новости»


1-04-2023, 14:35. Автор: Геннадий
Hack The Box. Уро­вень слож­ности заяв­лен как сред­ний.

warning


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



 

Разведка


 

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


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


Читайте также - Для того, чтобы поднять настроение и зарядиться положительной энергией на целый день рекомендуется смотреть красивые картинки, поделки, про интерьер и дачный дизайн в фотографиях, про животных, насекомых, рыб, разнообразие флоры, фауны и многое другое - Таежный пейзаж посмотреть.

10.10.11.169 faculty.htb

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



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


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


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


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

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



HTB Faculty. Атакуем веб-сервер через mPDF и повышаем привилегии с помощью Linux capabilities - «Новости»
Стра­ница авто­риза­ции faculty.htb 

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


Поп­робу­ем поис­кать скры­тые катало­ги и фай­лы при помощи ffuf.



Справка: сканирование веба c ffuf


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


Я пред­почитаю лег­кий и очень быс­трый ffuf. При запус­ке ука­зыва­ем сле­дующие парамет­ры:




  • -u — URL;


  • -w — сло­варь (я исполь­зую сло­вари из набора SecLists);


  • -t — количес­тво потоков;


  • -r — выпол­нять редирек­ты;


  • -fs — филь­тро­вать стра­ницы по раз­меру.


За­пус­каем с нуж­ными парамет­рами:


ffuf -u 'http://faculty.htb/FUZZ' -r -wphp_files_common.txt -t 256
Ре­зуль­тат ска­ниро­вания PHP-фай­лов

Ни­чего инте­рес­ного не находим, поэто­му прой­дем­ся по дос­тупным катало­гам.


ffuf -u 'http://faculty.htb/FUZZ' -r -wdirectory_2.3_medium.txt -t 256
Ре­зуль­тат ска­ниро­вания катало­гов

На­ходим каталог admin и пов­торя­ем ска­ниро­вание фай­лов в нем.


Ре­зуль­тат ска­ниро­вания PHP-фай­лов
ffuf -u 'http://faculty.htb/admin/FUZZ' -r -wphp_files_common.txt -t 256

Са­мая инте­рес­ная из най­ден­ных стра­ниц — авто­риза­ция для адми­нов.


Стра­ница авто­риза­ции адми­нис­тра­тора 

Точка входа


Ра­ботать с вебом я рекомен­дую через Burp Proxy. Пос­мотрим зап­рос и ответ при авто­риза­ции. Узна­ем, что в слу­чае невер­ной пары из логина и пароля в отве­те прос­то получим циф­ру 3.


От­вет сер­вера при авто­риза­ции

Ес­ли есть фор­ма авто­риза­ции, зна­чит, нуж­но поп­робовать все вари­анты ее обхо­да. Я это делаю по сло­варю с помощью Burp Intruder.


Burp Intruder — вклад­ка Payload Positions

На­ходим нес­коль­ко наг­рузок c вари­анта­ми отве­та 3. При этом ошиб­ка SQL рас­кры­вает путь к фай­лу.


Ре­зуль­тат перебо­ра

Так­же при­сутс­тву­ют ответ 1. Ско­рее все­го, это показа­тель успешной авто­риза­ции.


Ре­зуль­тат перебо­ра (про­дол­жение)

Ис­поль­зуем най­ден­ную наг­рузку и заходим на сайт.


Глав­ная стра­ница авто­ризо­ван­ного поль­зовате­ля

Пос­мотрим, что здесь есть инте­рес­ного. К при­меру, уяз­вимой может быть тех­нология фор­мирова­ния отче­та в фор­мате PDF.


Спи­сок кур­сов
Сге­нери­рован­ный PDF-документ

Сно­ва смот­рим цепоч­ку зап­росов в Burp Proxy. Видим, что отправ­ляет­ся зап­рос с парамет­ром pdf, где переда­ются закоди­рован­ные в Base64 дан­ные. Затем нас редирек­тит на стра­ницу /mpdf/tmp/<doc>.pdf.


Зап­рос на заг­рузку докумен­та

Burp Inspector поз­воля­ет нам авто­мати­чес­ки декоди­ровать эти дан­ные.


Де­коди­рова­ние дан­ных

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


По­иск экс­пло­ита 

Точка опоры


Уяз­вимость в mPDF поз­воля­ет получать про­изволь­ные фай­лы с уда­лен­ного хос­та в качес­тве вло­жения в сге­нери­рован­ном PDF-докумен­те. Сос­тавим наг­рузку, исполь­зовав най­ден­ный экс­пло­ит. Для тес­та поп­робу­ем про­читать файл /etc/passwd.


Сос­тавле­ние наг­рузки
Перейти обратно к новости