Категория > Новости > HTB AdmirerToo. Захватываем сервер через Fail2ban - «Новости»

HTB AdmirerToo. Захватываем сервер через Fail2ban - «Новости»


1-06-2022, 00:00. Автор: Carter
Hack The Box.

warning


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



 

Разведка


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


10.10.11.137 admirertoo.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 AdmirerToo. Захватываем сервер через Fail2ban - «Новости»
Ре­зуль­тат работы скрип­та

Скрипт нашел все­го два откры­тых пор­та: 22 — служ­ба OpenSSH 7.9p1 и 80 — веб‑сер­вер Apache 2.4.38.


На­чина­ем тра­дици­онно с веба.


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

Пер­вым делом прос­каниру­ем сайт на наличие скры­тых ресур­сов.



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


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


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




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


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


  • -u — URL;


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


За­пус­каем ffuf:


ffuf -uhttp://admirertoo.htb/FUZZ -t 256 -wfiles_interesting.txt -fc 403
Ре­зуль­тат ска­ниро­вания катало­гов с помощью ffuf

Ни­чего най­ти не уда­лось. Зато ког­да я попытал­ся перей­ти на точ­но не сущес­тву­ющую стра­ницу, я получил ссыл­ку на домен admirer-gallery.htb.


Ошиб­ка Not Found

До­бавим най­ден­ный домен в файл /etc/hosts и пов­торим ска­ниро­вание на новом домене. Так най­дем новый под­домен!


10.10.11.137 admirertoo.htb admirer-gallery.htb
ffuf -uhttp://admirer-gallery.htb -t 256 -wsubdomains-top1million-110000.txt -H 'Host: FUZZ.admirer-gallery.htb' -fs14099
Ре­зуль­тат ска­ниро­вания под­доменов

Его тоже добав­ляем в /etc/hosts и получа­ем дос­туп к панели авто­риза­ции Adminer.


10.10.11.137 admirertoo.htb admirer-gallery.htb db.admirer-gallery.htb
Стра­ница авто­риза­ции Adminer

Adminer — это лег­ковес­ный инс­тру­мент адми­нис­три­рова­ния СУБД, что‑то вро­де лег­кого вари­анта phpMyAdmin. Так как авто­риза­ция про­исхо­дит по нажатию на кноп­ку, зна­чит, учет­ные дан­ные уже дол­жны быть в исходном коде стра­ницы.


Ис­ходный код стра­ницы

Так мы находим имя поль­зовате­ля и пароль. Но сама панель Adminer ничего, кро­ме номера вер­сии, нам не рас­кры­вает.


Ра­бочая панель Adminer 

Точка входа


Раз мы зна­ем номер вер­сии, сто­ит поис­кать сущес­тву­ющие экс­пло­иты. Делать это я рекомен­дую при помощи Google.


По­иск экс­пло­итов для Adminer 4.7.8

Так мы находим инс­трук­цию с опи­сани­ем уяз­вимос­ти (PDF). Этот баг поз­волит нам прос­каниро­вать внут­ренние ресур­сы, а имен­но пор­ты. Как ука­зано в статье, запус­тим скрипт‑редирек­тор.


python2 redirect.py -p80 http://127.0.0.1

За­тем я решил переб­рать воз­можные СУБД. Их спи­сок есть в до­кумен­тации Adminer, а для перебо­ра я исполь­зовал Burp.


Спи­сок под­держи­ваемых СУБД
Зап­рос на сер­вер

Вмес­то server встав­ляем СУБД, а вмес­то localhost — свой локаль­ный IP-адрес. Для некото­рых СУБД получим ответ с записью () admirer_ro..., а в дру­гих слу­чаях сов­сем ничего.


От­вет сер­вера

Тог­да я нашел исходни­ки Adminer на GitHub и пос­мотрел, как ука­зыва­ются раз­ные модули.


Спи­сок модулей

И пер­вый же модуль elastic дела­ет зап­рос на наш хост.


Зап­рос на сер­вер
Ло­ги редирек­тора

А в бра­узе­ре получа­ем код HTML-стра­ницы с сер­вера. Это зна­чит, что мы добились от сер­вера выпол­нения про­изволь­ного зап­роса на дру­гой ресурс.


От­вет сер­вера 

Точка опоры


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


nmap -p- -sSadmirertoo.htb
Ре­зуль­тат ска­ниро­вания пор­тов

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