Взлом

HTB Сap. Роем трафик в поисках учеток и эксплуатируем Linux capabilities


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

  • Разведка. Сканирование портов
  • Точка входа. Сканирование веб-контента
  • Точка опоры. Анализ трафика
  • Локальное повышение привилегий

Се­год­ня нам пред­сто­ит поуп­ражнять­ся в зна­нии Bash, поис­кать тра­фик для получе­ния паролей и повысить при­виле­гии через флаг cap_setuid. И все это ради про­хож­дения лег­кой машины Cap с пло­щад­ки Hack The Box.

warning

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

 

Разведка. Сканирование портов

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

10.10.10.245 cap.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).

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

На­ходим три откры­тых пор­та: 21 (FTP-сер­вер vsftpd 3.0.3), 22 (служ­ба SSH 8.2p1) и 80 (веб‑сер­вер gunicorn).

Справка: брутфорс учеток

Пос­коль­ку в начале про­хож­дения у нас нет учет­ных дан­ных, нет и смыс­ла изу­чать служ­бы, которые всег­да тре­буют авто­риза­ции (нап­ример, SSH). Единс­твен­ное, что мы можем делать здесь, — это переби­рать пароли брут­форсом, но у машин с HTB поч­ти всег­да есть дру­гое про­хож­дение. В жиз­ни таких вари­антов может не быть, к тому же есть шан­сы подоб­рать пароль или получить его при помощи соци­аль­ной инже­нерии.

Пос­мотрим, не дос­тупно ли что‑то на FTP ано­ним­ным поль­зовате­лям.

По­пыт­ка под­клю­чения к FTP как anonymous

Ни­чего не получи­лось, поэто­му нам нуж­но «про­бивать» веб.

 

Точка входа. Сканирование веб-контента

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

Глав­ная стра­ница сай­та http://cap.htb/

На сай­те нас встре­чает какая‑то ста­тис­тика, а так­же есть сле­дующие стра­ницы:

  • Security Snapchat — показы­вает про­токо­лы и количес­тво сетевых пакетов;
  • IP Config — на этой стра­нице отоб­ража­ется информа­ция о сетевых интерфей­сах;
  • Network Status — показа­ны кон­фигура­ции сети.

Да­вай перей­дем к стра­нице Security Snapchat. Нам пре­дос­тавле­на воз­можность что‑то ска­чать, сде­лаем это.

Ска­чива­ние PCAP-фай­ла с Security Snapchat

От­крыв файл (я для это­го исполь­зовал Wireshark), обна­ружим, что он пуст. Видимо ста­тис­тика по сетевым пакетам, которая отоб­ража­ется на стра­нице, соб­рана имен­но по это­му фай­лу.

Ок­но Wireshark

Боль­ше все­го меня заин­тересо­вал URL, по которо­му был получен файл, — http://cap.htb/data/20. У меня воз­никла идея переб­рать подоб­ные стра­ницы, что­бы най­ти файл с тра­фиком. Сна­чала сге­нери­руем сло­варь, содер­жащий чис­ла 0–99 и 00–09. Это мож­но сде­лать с помощью извес­тно­го при­ложе­ния для генера­ции сло­варей crunch. В парамет­рах ука­зыва­ем минималь­ную дли­ну пос­ледова­тель­нос­ти, мак­сималь­ную дли­ну пос­ледова­тель­нос­ти и набор сим­волов.

crunch 1 2 0123456789 > list.txt

Те­перь прос­каниру­ем содер­жимое дирек­тории /data/, к при­меру с помощью ffuf, которо­му в качес­тве парамет­ров нуж­но передать спи­сок для перебо­ра (опция -w) и URL (опция -u). Мес­то, куда будут под­став­лять­ся сло­ва из спис­ка, пометим пос­ледова­тель­ностью FUZZ. Так как инте­рес­ны адре­са, которые вер­нут код 200, ука­жем это в парамет­ре -mc.

ffuf -w list.txt -u http://cap.htb/data/FUZZ -mc 200

Ре­зуль­тат перебо­ра с помощью ffuf

За­ходя на раз­ные стра­ницы, мы видим чис­ло пакетов в том или ином дам­пе тра­фика. Так мож­но опре­делить, что если раз­мер отве­та равен 17 144 бай­там, то соот­ветс­тву­ющий дамп будет пуст. Наша теория под­твер­дилась пос­ле того, как мы откры­ли стра­ницу номер 22, раз­мер которой сос­тавля­ет 17 154 бай­та. С нее мы можем ска­чать непус­той дамп тра­фика.

Стра­ница http://cap.htb/data/22

Но в этом дам­пе ничего сущес­твен­ного най­ти не уда­лось. Он все­го лишь содер­жал раз­личные HTTP-зап­росы. Что­бы не прос­матри­вать каж­дую стра­ницу отдель­но и не искать что‑то инте­рес­ное в каж­дом ска­чан­ном дам­пе, я решил пос­мотреть, как орга­низо­вана заг­рузка фай­ла через Burp Pro. Каж­дый файл заг­ружа­ется при обра­щении к соот­ветс­тву­ющей стра­нице в катало­ге /download/.

Заг­рузка фай­лов в Burp History

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

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

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