HTB PikaTwoo. Проходим одну из самых сложных машин c Hack The Box - «Новости» » Самоучитель CSS
Меню
Наши новости
Учебник CSS

Невозможно отучить людей изучать самые ненужные предметы.

Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3

Надо знать обо всем понемножку, но все о немногом.

Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы

Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)

Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода

Самоучитель CSS

Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5

Новости

Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости

Справочник CSS

Справочник от А до Я
HTML, CSS, JavaScript

Афоризмы

Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы

Видео Уроки


Наш опрос



Наши новости

       
20-09-2023, 11:29
HTB PikaTwoo. Проходим одну из самых сложных машин c Hack The Box - «Новости»
Рейтинг:
Категория: Новости

пер­вая ссыл­ка в Google дает понять, что на пор­те 5000 работа­ет сер­вис Keystone, а порт 8080 отве­чает за Swift (OpenStack Object Storage). Для про­вер­ки сде­лаем зап­росы к обо­им сер­висам.
curl -shttp://10.10.11.199:8080/info jq .

Читайте также - Водонагреватель — предмет бытовой техники, без которой сложно обойтись в современном доме или квартире. Экономя горячую воду, обеспечивая нагрев там, где временно или постоянно отсутствует горячее водоснабжение, они приносят большую пользу своим владельцам - водонагреватели аристон запчасти купить по доступным ценам.


Ин­форма­ция о сер­висе Swift OpenStack
curl http://10.10.11.199:5000/-sjq .
Ин­форма­ция о сер­висе Keystone OpenStack

Пос­коль­ку Burp Suite авто­мати­чес­ки стро­ит кар­ту сай­та, видим, что на pokatmon.htb дос­тупен файл CHANGELOG, из которо­го узна­ём о сущес­тво­вании неко­его при­ложе­ния для Android, а так­же WAF ModSecurity.


Кар­та сай­та

Мы зна­ем вер­сии уста­нов­ленно­го ПО, поэто­му можем поп­робовать поис­кать в интерне­те опи­сания уяз­вимос­тей и экс­пло­иты.


 

Точка входа


 

OpenStack Keystone


Служ­ба Keystone вхо­дит в облачную плат­форму OpenStack и обес­печива­ет аутен­тифика­цию кли­ентов API, обна­руже­ние служб и рас­пре­делен­ную мно­гополь­зователь­скую авто­риза­цию. В слу­чае с Keystone поиск экс­пло­итов ока­зал­ся нелег­кой задачей, но все же находим уяз­вимость с иден­тифика­тором CVE-2021-38155, которая поз­волит опре­делить сущес­тву­ющих поль­зовате­лей.


Спи­сок уяз­вимос­тей для Keystone OpenStack

Суть бага в том, что если мы поп­робу­ем нес­коль­ко раз авто­ризо­вать­ся от име­ни сущес­тву­юще­го поль­зовате­ля, то он будет на вре­мя заб­локиро­ван и нам вер­нут соот­ветс­тву­ющее сооб­щение. Для име­ни поль­зовате­ля, акка­унта которо­го не сущес­тву­ет, мы такого сооб­щения не получим. Возь­мем спи­сок имен из набора SecLists и поп­робу­ем авто­ризо­вать­ся с каж­дым из имен и десятью раз­ными пароля­ми с помощью Burp Intruder. Для авто­риза­ции исполь­зуем зап­рос к /v3/auth/tokens со сле­дующи­ми дан­ными.


{
"auth":{
"identity":{
"methods":["password"],
"password":{
"user":{
"password":"§admin§",
"name":"§admin§",
"domain":{
"id":"default"
}}}}}}
Burp Intruder — вклад­ка Positions
Ре­зуль­тат перебо­ра

В ито­ге получа­ем двух поль­зовате­лей: admin и andrew. Перебор паролей ничего не дает, поэто­му перехо­дим к дру­гому сер­вису.


OpenStack Object Store (Swift) — ПО для облачно­го хра­нили­ща, поз­воля­ющее хра­нить и извле­кать боль­шое количес­тво дан­ных с помощью прос­того API. По зап­росу «keystone swift» получа­ем до­кумен­тацию, из которой узна­ём о том, что мож­но получить дос­туп к откры­тым дан­ным, зная толь­ко имя поль­зовате­ля и исполь­зуя пре­фикс AUTH_. Поп­робу­ем переб­рать хра­нили­ще поль­зовате­ля andrew.


ffuf -uhttp://10.10.11.199:8080/v1/AUTH_andrew/FUZZ -t 256 -wdirectory_2.3_medium_lowercase.txt -ac
Ре­зуль­тат перебо­ра катало­га

По­луча­ем один каталог, который содер­жит при­ложе­ние для Android.


Фай­лы в катало­ге android

Ви­димо, это при­ложе­ние, которое упо­мина­лось в чен­жло­ге. Ска­чива­ем его для ана­лиза.


 

Точка опоры


 

Анализ APK


В качес­тве вир­туаль­ной машины я исполь­зую AVD из Android Studio. Пос­ле запус­ка вир­туаль­ного смар­тфо­на про­верим, опре­дели­лось ли устрой­ство в adb.


adb devices
HTB PikaTwoo. Проходим одну из самых сложных машин c Hack The Box - «Новости»
Ус­трой­ства adb

Те­перь с помощью adb уста­новим ска­чан­ное при­ложе­ние и запус­тим уже с мобиль­ного устрой­ства.


adb install pokatmon-app.apk
Глав­ное окно при­ложе­ния

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


Ошиб­ка при­ложе­ния

На хос­товой сис­теме запус­каем Wireshark и смот­рим, куда идут зап­росы. В тра­фике отме­чаем DNS-зап­рос для резол­ва api.pokatmon-app.htb.


Пе­рех­вачен­ные пакеты в Wireshark

В качес­тве сво­его DNS-сер­вера исполь­зуем dnsmasq. Для най­ден­ного адре­са сде­лаем запись в фай­ле /etc/dnsmasq.conf и запус­тим dnsmasq.


address=/api.pokatmon-app.htb/10.10.11.199

А теперь переза­пус­тим вир­туаль­ную машину, но с ука­зани­ем DNS-сер­вера и пов­торим зап­рос на сер­вер.


emulator -dns-server10.10.16.46 -avdPixel_3a_API_33_x86_64
Ошиб­ка при­ложе­ния

На­конец при­ложе­ние может общать­ся с сер­вером. Теперь про­пус­тим весь его тра­фик через Burp Proxy, для чего в нас­трой­ках Burp соз­дадим новый лис­тенер на VPN-интерфей­се. Соз­данный лис­тенер ука­зыва­ем в нас­трой­ках прок­си AVD.


Нас­трой­ки Burp — лис­тенеры Proxy
Нас­трой­ки Proxy AVD

Но сно­ва не получа­ем дос­туп к сер­веру. При­чину можем пос­мотреть в логах Burp Proxy. Все дело в SSL-сер­тифика­те.


Ло­ги Burp Proxy

Что­бы ошиб­ка исчезла, нам нуж­но уста­новить сер­тификат Burp в вир­туаль­ное устрой­ство. Для это­го сна­чала ска­чива­ем сам сер­тификат, кон­верти­руем его в фор­мат PEM и пере­име­новы­ваем. В Android имя сер­тифика­та — это его кон­троль­ная сум­ма.


wget localhost:8080/cert -Ocert.der
openssl x509 -inform der -incert.der -outcert.pem
openssl x509 -inform pem -subject_hash_old -incert.pem
cp cert.pem 9a5ba575.0
Вы­чис­ление кон­троль­ной сум­мы сер­тифика­та

Те­перь нуж­но сох­ранить наш серт в катало­ге /system/etc/security/cacerts/ устрой­ства. Но прос­то записать его не получит­ся, так как фай­ловая сис­тема вир­туаль­ной машины дос­тупна толь­ко для чте­ния. Переза­пус­тим вир­туаль­ную машину с парамет­ром -writable-system.


emulator -dns-server10.10.16.46 -avdPixel_3a_API_33_x86_64 -writable-system

А затем «руту­ем» устрой­ство и перемон­тиру­ем основной каталог. Если все про­ходит успешно, сох­раня­ем сер­тификат Burp.


adb root
adb remount
adb push 9a5ba575./system/etc/security/cacerts/
За­пись сер­тифика­та на Android

Пов­торя­ем попыт­ку авто­риза­ции и видим зап­рос в Burp Proxy.


Зап­росы в Burp Proxy

Я сра­зу отпра­вил зап­рос в Burp Repeater, но ока­залось, что у сер­вера заготов­лены раз­ные вари­анты отве­та. Как мож­но видеть на скри­не, на зап­рос без заголов­ка authorization сер­вер отве­тит, что дан­ные не под­писаны. А при изме­нении дан­ных зап­роса сер­вер сооб­щит о несо­ответс­твии под­писи.


Зап­росы на сер­вер

Тог­да будем работать через само при­ложе­ние. Я поп­робовал отпра­вить базовую наг­рузку ' or 1=1 -- -, это мог­ло бы помочь обой­ти авто­риза­цию, при­сутс­твуй здесь воз­можность для SQL-инъ­екции. Ока­залось, что при­ложе­ние не поз­воля­ет вво­дить некото­рые сим­волы.


Глав­ное окно при­ложе­ния

Тог­да при­дет­ся понять, как фор­миру­ется под­пись. При прос­мотре содер­жимого APK-фай­ла мож­но най­ти два клю­ча RSA.


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

Че­рез две‑три попыт­ки под­писать отправ­ляемые дан­ные с помощью при­ват­ного клю­ча получа­ем валид­ную под­пись!


echo -n "app_beta_mailaddr=ralf@ralf.com&app_beta_code=1234"openssl dgst -sha256 -signprivate.pem base64 -w0
Фор­мирова­ние под­писи дан­ных

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


echo -n "app_beta_mailaddr=' or 1=1 -- -&app_beta_code=1234"openssl dgst -sha256 -signprivate.pem base64 -w0

curl -k -XPOST -H 'authorization: signature=oZ3SEZMP1n2xRV33Ruf9NNmW5x19GHJv5+Af/akn2dMfnViDpuTd6gP6vm0Zz42pS0VS6B/ymJsgzoekc1QZAjMyoZh9Q+TxZ1MzFFCx2iqiVD27frr+Bblw83VVDKG3Nx/cKkk6NRHeotNQRPhGmQUQrHLPeFWybleMoN5O3qrFnuPehDnYJVheiVyAMyNnJl1Lm7RGXdEva6CEyssNqIqrApbATs8ZQFFsNZgyQKMZh5u6X1sLuVXiSTkYA3fnmwrEyMNzfuvCJU9LUx4sOGRO/Zv9bVhO3knlriRfXN1DPRDX3YePUzhQrdFNApo72yRnmtsecfVJ08sz/huSgQ==' 'https://api.pokatmon-app.htb/public/validate' --data "app_beta_mailaddr=' or 1=1 -- -&app_beta_code=1234"2>/dev/null| jq
От­вет сер­вера

В отве­те получа­ем поч­товый адрес и ключ‑инвайт. С эти­ми дан­ными авто­ризу­емся в при­ложе­нии и получа­ем редирект на www.pokatmon-app.htb.


Глав­ное окно при­ложе­ния

Этот адрес мы уже посеща­ли, там рас­положен основной сайт, при этом в Burp Proxy видим те же инвайт и поч­товый ящик. Но обра­тим вни­мание и на веб‑сер­вер APISIX 2.10.1.


От­вет в Burp Proxy 

Обход каталога в Apache APISIX


По­ищем готовые экс­пло­иты для гей­твея APISIX. Зап­рос «apisix Vulnerabilities» при­водит к под­борке ста­тей про уяз­вимос­ти. Из всех упо­мяну­тых CVE наибо­лее при­мени­ма CVE-2021-43557, которая даст воз­можность обхо­да катало­га. Тут сто­ит вер­нуть­ся к ска­ниро­ванию катало­гов, так как изна­чаль­но я не при­дал зна­чения мно­жес­тву резуль­татов с кодом отве­та 403.


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

пер­вая ссыл­ка в Google дает понять, что на пор­те 5000 работа­ет сер­вис Keystone, а порт 8080 отве­чает за Swift (OpenStack Object Storage). Для про­вер­ки сде­лаем зап­росы к обо­им сер­висам. curl -s http:/ / 10. 10. 11. 199: 8080/ info | jq . Читайте также - Водонагреватель — предмет бытовой техники, без которой сложно обойтись в современном доме или квартире. Экономя горячую воду, обеспечивая нагрев там, где временно или постоянно отсутствует горячее водоснабжение, они приносят большую пользу своим владельцам - водонагреватели аристон запчасти купить по доступным ценам. Ин­форма­ция о сер­висе Swift OpenStack curl http:/ / 10. 10. 11. 199: 5000/ -s | jq . Ин­форма­ция о сер­висе Keystone OpenStackПос­коль­ку Burp Suite авто­мати­чес­ки стро­ит кар­ту сай­та, видим, что на pokatmon.htb дос­тупен файл CHANGELOG, из которо­го узна­ём о сущес­тво­вании неко­его при­ложе­ния для Android, а так­же WAF ModSecurity. Кар­та сай­таМы зна­ем вер­сии уста­нов­ленно­го ПО, поэто­му можем поп­робовать поис­кать в интерне­те опи­сания уяз­вимос­тей и экс­пло­иты. Точка входа OpenStack Keystone Служ­ба Keystone вхо­дит в облачную плат­форму OpenStack и обес­печива­ет аутен­тифика­цию кли­ентов API, обна­руже­ние служб и рас­пре­делен­ную мно­гополь­зователь­скую авто­риза­цию. В слу­чае с Keystone поиск экс­пло­итов ока­зал­ся нелег­кой задачей, но все же находим уяз­вимость с иден­тифика­тором CVE-2021-38155, которая поз­волит опре­делить сущес­тву­ющих поль­зовате­лей. Спи­сок уяз­вимос­тей для Keystone OpenStackСуть бага в том, что если мы поп­робу­ем нес­коль­ко раз авто­ризо­вать­ся от име­ни сущес­тву­юще­го поль­зовате­ля, то он будет на вре­мя заб­локиро­ван и нам вер­нут соот­ветс­тву­ющее сооб­щение. Для име­ни поль­зовате­ля, акка­унта которо­го не сущес­тву­ет, мы такого сооб­щения не получим. Возь­мем спи­сок имен из набора SecLists и поп­робу­ем авто­ризо­вать­ся с каж­дым из имен и десятью раз­ными пароля­ми с помощью Burp Intruder. Для авто­риза­ции исполь­зуем зап­рос к /v3/auth/tokens со сле­дующи­ми дан­ными. _

Теги: CSS

Просмотров: 408
Комментариев: 0:   20-09-2023, 11:29
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

 
Еще новости по теме:



Другие новости по теме: