HTB Appsanity. Используем DLL Hijacking для повышения привилегий

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

  • Разведка
  • Сканирование портов
  • Точка входа
  • Повышение привилегий на сайте
  • Обход авторизации
  • Точка опоры
  • SSRF
  • File upload to RCE
  • Продвижение
  • Локальное повышение привилегий
  • DLL Hijacking

В этом рай­тапе я покажу, как мож­но при­менять тех­нику перех­вата DLL для повыше­ния при­виле­гий в Windows. Но преж­де мы ата­куем веб‑сайт и получим RCE через ком­бинацию из SSRF и уяз­вимос­ти при заг­рузке фай­лов.

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

warning

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

 

Разведка

 

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

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

10.10.11.238 appsanity.htb

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

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

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

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

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

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

  • 80 и 443 — веб‑сер­вер Microsoft IIS 10.0;
  • 5985 — служ­ба уда­лен­ного управле­ния WinRM.

На сер­вере все­го одна точ­ка вхо­да — это веб‑сер­вер. При этом, как отоб­ражено в выводе Nmap, про­исхо­дит редирект на сайт http://meddigi.htb. Добав­ляем этот домен в /etc/hosts и идем смот­реть сайт.

10.10.11.238 appsanity.htb meddigi.htb

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

Сра­зу же запус­каем ска­нер под­доменов.

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

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

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

  • -u — URL;
  • -w — сло­варь;
  • -t — количес­тво потоков;
  • -H — HTTP-заголо­вок.

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

ffuf -u "https://meddigi.htb/" -H 'Host: FUZZ.meddigi.htb' -t 128 -w subdomains-top1million-110000.txt

Ре­зуль­тат ска­ниро­вания под­доменов

Спус­тя пару минут получа­ем еще один под­домен, который тоже добав­ляем в /etc/hosts.

10.10.11.238 appsanity.htb meddigi.htb portal.meddigi.htb

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

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

 

Точка входа

 

Повышение привилегий на сайте

На пер­вом сай­те, в отли­чие от вто­рого, есть воз­можность регис­тра­ции.

Фор­ма авто­риза­ции сай­та meddigi.htb

Ав­торизо­вав­шись на сай­те, получа­ем стра­ницу про­филя, где есть нес­коль­ко полей вво­да и даже воз­можность отпра­вить сооб­щение кому‑то.

Со­дер­жимое стра­ницы Profile

Но ничего инте­рес­ного най­ти не уда­лось, поэто­му вер­немся в самое начало и прос­мотрим все зап­росы в Burp History. В гла­за бро­сил­ся параметр Acctype в зап­росе на авто­риза­цию.

Зап­рос на авто­риза­цию

Вый­дем из сво­его про­филя на сай­те, акти­виру­ем перех­ват зап­роса в Burp Proxy и сно­ва прой­дем авто­риза­цию. Но в этот раз в перех­вачен­ном зап­росе изме­ним зна­чение парамет­ра Acctype на 2.

Зап­рос на авто­риза­цию

Про­филь поль­зовате­ля

На этот раз мы авто­ризо­вались как док­тор, и стра­ница про­филя содер­жит новые эле­мен­ты.

 

Обход авторизации

Но сно­ва ничего инте­рес­ного най­ти не уда­лось. Одна­ко здесь исполь­зует­ся сес­сия AspNet, а зна­чит, мож­но про­верить токен дос­тупа на дру­гом сай­те. Вдруг исполь­зует­ся общий механизм авто­риза­ции. Для это­го копиру­ем cookie с сай­та, где мы уже авто­ризо­вались, и исполь­зуем их на portal.meddigi.htb.

Зап­рос к portal.meddigi.htb

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

И получа­ем дос­туп к дру­гому сай­ту от име­ни авто­ризо­ван­ного поль­зовате­ля. Но так как куки встав­лялись через Burp, мы не смо­жем гулять по все­му сай­ту. Давай откро­ем бра­узер и закинем токен дос­тупа в хра­нили­ще Cookies.

Хра­нили­ще бра­узе­ра

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

Со­дер­жимое стра­ницы prescription

Со­дер­жимое стра­ницы examreport 

Точка опоры

 

SSRF

На­чина­ем с фор­мы сох­ранения докумен­тов по ссыл­ке. Для про­вер­ки запус­каем на локаль­ной машине веб‑сер­вер:

python3 -m http.server 80

А затем ука­зыва­ем тес­товую ссыл­ку на этот сер­вер в поле вво­да.

Ошиб­ка отоб­ражения стра­ницы

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

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

Ответить

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