Категория > Новости > HTB Gofer. Эксплуатируем Path Hijacking в связке с Use After Free - «Новости»

HTB Gofer. Эксплуатируем Path Hijacking в связке с Use After Free - «Новости»


2-11-2023, 16:01. Автор: Калерия
Hack The Box. Уро­вень ее — слож­ный.

warning


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


Читайте также - Комплексное обеспечение мероприятий в Санкт-Петербурге - Аренда черного шатра по доступным ценам.

Разведка


 

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


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


10.10.11.225 gofer.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.4p1;

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

  • 139 и 445 — служ­ба Samba 4.6.2.


Так­же мы узна­ём, что филь­тру­ется под­клю­чение к пор­ту 25, по которо­му работа­ет служ­ба SMTP.


Пер­вым делом про­верим SMB, в отли­чие от веба этот про­токол не пот­ребу­ет мно­го вре­мени для ана­лиза.


enum4linux -agofer.htb
Ре­зуль­тат ска­ниро­вания служ­бы Samba

В выводе боль­ше все­го инте­ресен спи­сок общих ресур­сов SMB. К некото­рым катало­гам мы можем получить дос­туп без исполь­зования учет­ных дан­ных.


 

Точка входа


Под­клю­чаем­ся к SMB-ресур­су, где мы находим каталог backup, а в нем сох­ранен­ное сооб­щение.


smbclient //gofer.htb/shares
Со­дер­жимое обще­го ресур­са

Ска­чива­ем сооб­щение и чита­ем. Там говорит­ся о поль­зовате­ле, который перехо­дит по всем фишин­говым ссыл­кам, поэто­му поч­та теперь работа­ет толь­ко для внут­ренних поль­зовате­лей. При этом теперь будут откры­вать­ся толь­ко докумен­ты ODT.


Со­дер­жимое фай­ла mail

Уч­тем это на будущее и перей­дем к сай­ту.


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

На самом сай­те ничего инте­рес­ного, кро­ме спис­ка сот­рудни­ков. Поэто­му прис­тупа­ем к ска­ниро­ванию.



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


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


При запус­ке ука­зыва­ем сле­дующие парамет­ры:




  • -u — URL;


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


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


  • -d — глу­бина ска­ниро­вания.


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


feroxbuster -uhttp://gofer.htb/-t 256 -d 1 -wdirectory_2.3_medium_lowercase.txt
Ре­зуль­тат ска­ниро­вания катало­гов с помощью feroxbuster

Но­вых фай­лов и катало­гов не обна­ружи­ли, поэто­му перехо­дим к сле­дующе­му шагу — ска­ниро­ванию под­доменов. Делать это будем с помощью ffuf. Парамет­ры те же, что у feroxbuster, но добавят­ся еще два:




  • -H — HTTP-заголо­вок;


  • -fc — филь­тр по коду отве­та.


ffuf -uhttp://gofer.htb -H 'Host:FUZZ.gofer.htb' -wsubdomains-bitquark-top100000.txt -fc400,301
Ре­зуль­тат ска­ниро­вания под­доменов

До­бав­ляем най­ден­ный под­домен в файл /etc/hosts и про­веря­ем новый сайт. Там нас встре­чает HTTP-аутен­тифика­ция.


10.10.11.225 gofer.htb proxy.gofer.htb
Зап­рос учет­ных дан­ных 

HTTP auth bypass


Есть нес­коль­ко спо­собов обхо­да неп­равиль­но нас­тро­енной HTTP-аутен­тифика­ции. Самый прос­той и быс­трый — сме­на метода зап­роса с GET на POST (либо PUT).


GET-зап­рос в Burp Repeater

В Burp Repeater лег­ко это сде­лать, дос­таточ­но выб­рать нуж­ный пункт в кон­текс­тном меню.


POST-зап­рос в Burp Repeater

И при POST-зап­росе получа­ем уже дру­гой ответ.


 

Точка опоры


В получен­ном отве­те нам сооб­щают, что в URL не хва­тает парамет­ра. Мож­но переб­рать парамет­ры по сло­варю и най­ти ответ сер­вера, который, воз­можно, будет отли­чать­ся от основной мас­сы. Для перебо­ра я исполь­зую Burp Intruder.


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

Что­бы в таб­лице резуль­татов отоб­ражал­ся ответ сер­вера, перей­дем к вклад­ке Settings, выберем опцию Grep → Extract и ука­жем инте­ресу­ющую нас позицию.


Burp Intruder — вклад­ка Settings
Burp Intruder — резуль­тат ата­ки

Та­ким обра­зом обна­ружи­ваем параметр url.


 

SSRF


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


python3 -mhttp.server 80

И ука­жем на сай­те свой адрес. В логах веб‑сер­вера уви­дим под­клю­чение, а на сай­те отоб­разит­ся лис­тинг катало­га веб‑сер­вера.


Ло­ги веб‑сер­вера
Ре­зуль­тат выпол­нения зап­роса
Перейти обратно к новости