HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Этичный хакинг или пентестинг > Задания/Квесты/CTF/Конкурсы
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 14.06.2023, 20:39
Trager
Познающий
Регистрация: 08.03.2023
Сообщений: 30
С нами: 1678427

Репутация: 0
По умолчанию

Приветствую, Кодебай! Сегодня мы пройдём линуксовую машину легкой сложности с
Код:
HackTheBox
, которая посвящена двум миллионам зарегистрировавшимся пользователям. Приятного чтения

Разведка

Как всегда начинаем со сканирования портов. Используем флаг
Код:
-sC
, чтобы использовать стандартные скрипты,
Код:
-sV
, чтобы определить сервисы открытых портов:



Когда мы переходим на
Код:
80
порт, то нас встречает следующее окно:



В таком случае нужно внести
Код:
IP
-адрес и домен в
Код:
/etc/hosts
.

Советую вместо
Код:
sudo echo
(который не работает):



Использовать
Код:
echo
вместе с
Код:
sudo tee
:



Теперь мы можем попасть на веб-сервис:



Это оказалась старая версия
Код:
HackTheBox
с древним интерфейсом. Тут есть страница логина и регистрации:



Страница регистрации требует пригласительного кода:



Насколько я помню раньше на
Код:
HackTheBox
нельзя было так просто зарегистрироваться, как на любых других сервисах. Требовалось получить пригласительный код от друга. Это был рэбит хол, то есть никаких кодов у друзей, которые уже зарегистрировались на платформе, нет. Тут нужно искать этот код на самом сайте в
Код:
js
-файлах.

Что ж, приступим. Открываем исходный код страницы
Код:
http://2million.htb/register
и видим
Код:
/js/inviteapi.min.js
:



Смотрим исходный код
Код:
js
-файла:



Весь код зашифрован и идёт в одну строку, следовательно, нам нужно его как-то преобразовать в читаемый для человека вид. Советую использовать любой
Код:
JS Beautifier
:



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

Код:
/api/v1/invite/verify
- скорее всего для подтверждения invite-кода

Код:
/api/v1/invite/how/to/generate
- скорее всего инструкция, как сделать, соответственно, этот инвайт-код.

Для начала посмотрим инструкцию. Отправим
Код:
POST
-запрос с помощью инструмента
Код:
curl
:

Bash:


Код:
curl
-X POST http://2million.htb/api/v1/invite/how/to/generate


Вывалился
Код:
JSON
в ответе:

JSON:


Код:
{
"0"
:
200
,
"success"
:
1
,
"data"
:
{
"data"
:
"Va beqre gb trarengr gur vaivgr pbqr, znxr n CBFG erdhrfg gb /ncv/i1/vaivgr/trarengr"
,
"enctype"
:
"ROT13"
}
,
"hint"
:
"Data is encrypted ... We should probbably check the encryption type in order to decrypt it..."
}
Есть
Код:
data
- зашифрованная строка и
Код:
enctype
- алгоритм шифрования
Код:
ROT13
. Очевидно, что это шифр Цезаря:



Нам говорят, что нужно отправить
Код:
POST
-запрос на
Код:
/api/v1/invite/generate
, чтобы сгенерировать
Код:
invite
-код. Опять же используем
Код:
curl
:

Bash:


Код:
curl
-X POST http://2million.htb/api/v1/invite/generate


JSON:


Код:
{
"0"
:
200
,
"success"
:
1
,
"data"
:
{
"code"
:
"Mk9QSzAtN1pMUzgtVUxZSUstUTA5WU4="
,
"format"
:
"encoded"
}
}
Мы получили код, который был зашифрован в
Код:
base64
. Его можно расшифровать через
Код:
base64
из терминала:

Bash:


Код:
echo
"Mk9QSzAtN1pMUzgtVUxZSUstUTA5WU4="
|
base64 -d
На
Код:
/register
ввести код нельзя, следовательно, нужно искать другой путь. Я нашёл страницу
Код:
/invite
и ввёл код:



И меня перенаправило на
Код:
/register
с уже введённым кодом:



Я ввёл остальные данные - юзернейм, электронную почту и пароль, а затем нажал на кнопку
Код:
Register
, после чего меня перенаправило на страницу
Код:
/login
:



После авторизации открылся, опять же, старый интерфейс
Код:
HackTheBox
:



На
Код:
/home/access
мы можем скачать наш
Код:
VPN
-конфиг или перегенерировать:



Давайте посмотрим, что возвращает страница при
Код:
GET
-запросе на
Код:
/api/v1/user/vpn/generate
(кнопка
Код:
Connection Pack
):



Не забываем указать заголовок с куками в курле. Чтобы посмотреть куки, можно нажать кнопку
Код:
F12
(
Код:
Firefox
) и перейти в
Код:
Storage->Cookies->http://2million.htb
:



Теперь указываем опцию
Код:
-H
(доп.
Код:
HTTP
-заголовок) и отправляем запрос на
Код:
/api/v1/user/vpn/generate
:



Видим наш
Код:
VPN
-конфиг, пока что ничего полезного.

Далее я перешёл для удобства в
Код:
BurpSuite
и отправил
Код:
GET
-запрос на
Код:
/api/v1
:



JSON:


Код:
{
"v1"
:
{
"user"
:
{
"GET"
:
{
"/api/v1"
:
"Route List"
,
"/api/v1/invite/how/to/generate"
:
"Instructions on invite code generation"
,
"/api/v1/invite/generate"
:
"Generate invite code"
,
"/api/v1/invite/verify"
:
"Verify invite code"
,
"/api/v1/user/auth"
:
"Check if user is authenticated"
,
"/api/v1/user/vpn/generate"
:
"Generate a new VPN configuration"
,
"/api/v1/user/vpn/regenerate"
:
"Regenerate VPN configuration"
,
"/api/v1/user/vpn/download"
:
"Download OVPN file"
}
,
"POST"
:
{
"/api/v1/user/register"
:
"Register a new user"
,
"/api/v1/user/login"
:
"Login with existing user"
}
}
,
"admin"
:
{
"GET"
:
{
"/api/v1/admin/auth"
:
"Check if user is admin"
}
,
"POST"
:
{
"/api/v1/admin/vpn/generate"
:
"Generate VPN for specific user"
}
,
"PUT"
:
{
"/api/v1/admin/settings/update"
:
"Update user settings"
}
}
}
}
В ответе были разные
Код:
API
-пути. Тут уже примерно стало понятно, как эксплуатировать:
  1. Пути с
    Код:
    /v1/user
    нам не нужны. Нужны пути с
    Код:
    /v1/admin
    .
  2. Есть путь с
    Код:
    GET
    -запросом
    Код:
    /api/v1/admin/auth
    - он, судя по всему, без каких-либо параметров проверяет авторизован ли пользователь как админ (через куки).
  3. Есть путь с
    Код:
    POST
    -запросом
    Код:
    /api/v1/admin/vpn/generate
    - похоже, что с помощью него можно сгенерировать
    Код:
    VPN
    -конфиг для любого пользователя от лица, опять же, админа.
  4. Есть путь с
    Код:
    PUT
    -запросом
    Код:
    /api/v1/admin/settings/update
    - он обновляет настройки пользователя. Скорее всего через него мы можем повысить привилегии.
Взятие www-data

Попробуем обновить настройки для нашего пользователя, отправляем
Код:
PUT
-запрос на
Код:
/api/v1/admin/settings/update
:



В ответе нам приходит сообщение, что у нас неправильный
Код:
Content-Type
заголовок. Хорошо, добавим его со значением
Код:
application/json
(т. е. данные мы будем передавать в
Код:
JSON
-формате):



Немного продвинулись, теперь не хватает электронной почты, добавим наш
Код:
email
в
Код:
JSON
'е:



И добавим
Код:
is_admin
(понять какой тип данных используется можно методом перебора):



Отлично, кажется, мы повысили наши привилегии, проверим это:



Супер. Возвращаемся к нашему списку, что мы ещё не заимодействовали?:
  1. [S]Пути с
    Код:
    /v1/user
    нам не нужны. Нужны пути с
    Код:
    /v1/admin
    .[/S]
  2. [S]Есть путь с
    Код:
    GET
    -запросом
    Код:
    /api/v1/admin/auth
    - он, судя по всему, без каких-либо параметров проверяет авторизован ли пользователь как админ (через куки).[/S]
  3. Есть путь с
    Код:
    POST
    -запросом
    Код:
    /api/v1/admin/vpn/generate
    - похоже, что с помощью него можно сгенерировать
    Код:
    VPN
    -конфиг для любого пользователя от лица, опять же, админа.
  4. [S]Есть путь с
    Код:
    PUT
    -запросом
    Код:
    /api/v1/admin/settings/update
    - он обновляет настройки пользователя. Скорее всего через него мы можем повысить привилегии.[/S]
Теперь мы можем сделать
Код:
VPN
для юзеров:



Опять же, методом тыка проверяем какие параметры используются в
Код:
POST
-запросе, хорошо, что респонс нам подсказывает - не хватает юзернейма. Добавляем его:



Такой вывод я уже видел ранее (от лица обычного пользователя), но тут мы можем указать юзернейм. Возможно, используется какая-нибудь "опасная" функция, где нет фильтрации и мы можем получить
Код:
RCE
?



Получили
Код:
RCE
. Теперь давайте пробросим шелл (советую для удобства использовать данный сервис):



Шелл получен, сразу апгрейдим оболочку через
Код:
python3
:

Bash:


Код:
python3 -c
'import pty;pty.spawn("/bin/bash");'


Взятие пользователя

В домашней директории пользователя
Код:
www-data
можно обнаружить
Код:
.env
файл. В нём лежали креды:



Код:


Код:
DB_USERNAME=admin
DB_PASSWORD=SuperDuperPass123
Не проверить их на пользователе
Код:
admin
через
Код:
SSH
, который располагается в
Код:
/home
, было бы глупо:

Bash:


Код:
ssh
admin@2million.htb


Взятие рута

Мы можем взять флаг пользователя и нужно искать методы повышения привилегий. В
Код:
/var/mail/admin
мы можем найти следующее письмо:



Тут говорится о нескольких
Код:
CVE
для ядра линукс, которые появились в этом году и что-то есть в
Код:
OverlayFS / Fuse
. Гуглим:



Код:
CVE-2023-0386
- то, что нам нужно. Так как машина лёгкого уровня, то берём уже готовый эксплоит с
Код:
GitHub'а
:




GitHub - xkaneiki/CVE-2023-0386: CVE-2023-0386在ubuntu22.04上的提权

CVE-2023-0386在ubuntu22.04上的提权. Contribute to xkaneiki/CVE-2023-0386 development by creating an account on GitHub.

github.com


Загружаем на машину через
Код:
HTTP
-сервер
Код:
Python'а
(как это делается я рассказывал в прошлых своих статьях - например. прохождение Precious):



И по инструкции с
Код:
GitHub'а
запускаем эксплоит:



Получаем рута:



thank_you.json

В каталоге
Код:
/root/
мы можем обнаружить послание от разработчиков
Код:
HackTheBox
-
Код:
thank_you.json
:



Это
Код:
JSON
-код:

JSON:


Код:
{
"encoding"
:
"url"
,
"data"
:
"%7B%22encoding%22:%20%22hex%22,%20%22data%22:%20%227b22656e6372797074696f6e223a2022786f72222c2022656e6372707974696f6e5f6b6579223a20224861636b546865426f78222c2022656e636f64696e67223a2022626173653634222c202264617461223a20224441514347585167424345454c43414549515173534359744168553944776f664c5552765344676461414152446e51634454414746435145423073674230556a4152596e464130494d556745596749584a51514e487a7364466d494345535145454238374267426942685a6f4468595a6441494b4e7830574c526844487a73504144594848547050517a7739484131694268556c424130594d5567504c525a594b513848537a4d614244594744443046426b6430487742694442306b4241455a4e527741596873514c554543434477424144514b4653305046307337446b557743686b7243516f464d306858596749524a41304b424470494679634347546f4b41676b344455553348423036456b4a4c4141414d4d5538524a674952446a41424279344b574334454168393048776f334178786f44777766644141454e4170594b67514742585159436a456345536f4e426b736a41524571414130385151594b4e774246497745636141515644695952525330424857674f42557374427842735a58494f457777476442774e4a30384f4c524d61537a594e4169734246694550424564304941516842437767424345454c45674e497878594b6751474258514b45437344444767554577513653424571436c6771424138434d5135464e67635a50454549425473664353634c4879314245414d31476777734346526f416777484f416b484c52305a5041674d425868494243774c574341414451386e52516f73547830774551595a5051304c495170594b524d47537a49644379594f4653305046776f345342457454776774457841454f676b4a596734574c4545544754734f414445634553635041676430447863744741776754304d2f4f7738414e6763644f6b31444844464944534d5a48576748444267674452636e4331677044304d4f4f68344d4d4141574a51514e48335166445363644857674944515537486751324268636d515263444a6745544a7878594b5138485379634444433444433267414551353041416f734368786d5153594b4e7742464951635a4a41304742544d4e525345414654674e4268387844456c6943686b7243554d474e51734e4b7745646141494d425355644144414b48475242416755775341413043676f78515241415051514a59674d644b524d4e446a424944534d635743734f4452386d4151633347783073515263456442774e4a3038624a773050446a63634444514b57434550467734344241776c4368597242454d6650416b5259676b4e4c51305153794141444446504469454445516f36484555684142556c464130434942464c534755734a304547436a634152534d42484767454651346d45555576436855714242464c4f7735464e67636461436b434344383844536374467a424241415135425241734267777854554d6650416b4c4b5538424a785244445473615253414b4553594751777030474151774731676e42304d6650414557596759574b784d47447a304b435364504569635545515578455574694e68633945304d494f7759524d4159615052554b42446f6252536f4f4469314245414d314741416d5477776742454d644d526f6359676b5a4b684d4b4348514841324941445470424577633148414d744852566f414130506441454c4d5238524f67514853794562525459415743734f445238394268416a4178517851516f464f676354497873646141414e4433514e4579304444693150517a777853415177436c67684441344f4f6873414c685a594f424d4d486a424943695250447941414630736a4455557144673474515149494e7763494d674d524f776b47443351634369554b44434145455564304351736d547738745151594b4d7730584c685a594b513858416a634246534d62485767564377353043776f334151776b424241596441554d4c676f4c5041344e44696449484363625744774f51776737425142735a5849414242454f637874464e67425950416b47537a6f4e48545a504779414145783878476b6c694742417445775a4c497731464e5159554a45454142446f6344437761485767564445736b485259715477776742454d4a4f78304c4a67344b49515151537a734f525345574769305445413433485263724777466b51516f464a78674d4d41705950416b47537a6f4e48545a504879305042686b31484177744156676e42304d4f4941414d4951345561416b434344384e467a464457436b50423073334767416a4778316f41454d634f786f4a4a6b385049415152446e514443793059464330464241353041525a69446873724242415950516f4a4a30384d4a304543427a6847623067344554774a517738784452556e4841786f4268454b494145524e7773645a477470507a774e52516f4f47794d3143773457427831694f78307044413d3d227d%22%7D"
}
В нём есть
Код:
encoding
- метод шифрования/кодирования, и
Код:
data
- сами данные. Раздекодим
Код:
URL
(советую использовать cyberchef):



Получаем
Код:
JSON
-код с
Код:
data
в хексе, декодим:



Мы получили опять
Код:
JSON
-код с шифрованием
Код:
XOR
, а сам
Код:
data
закодирован в
Код:
Base64
, выбираем следующие рецепты в cyberchef:



Вот, собственно, послание:

Код:


Код:
Dear HackTheBox Community,

We are thrilled to announce a momentous milestone in our journey together. With immense joy and gratitude, we celebrate the achievement of reaching 2 million remarkable users! This incredible feat would not have been possible without each and every one of you.

From the very beginning, HackTheBox has been built upon the belief that knowledge sharing, collaboration, and hands-on experience are fundamental to personal and professional growth. Together, we have fostered an environment where innovation thrives and skills are honed. Each challenge completed, each machine conquered, and every skill learned has contributed to the collective intelligence that fuels this vibrant community.

To each and every member of the HackTheBox community, thank you for being a part of this incredible journey. Your contributions have shaped the very fabric of our platform and inspired us to continually innovate and evolve. We are immensely proud of what we have accomplished together, and we eagerly anticipate the countless milestones yet to come.

Here's to the next chapter, where we will continue to push the boundaries of cybersecurity, inspire the next generation of ethical hackers, and create a world where knowledge is accessible to all.

With deepest gratitude,

The HackTheBox Team
Перевод:

Код:


Код:
Уважаемое сообщество HackTheBox,

Мы рады объявить о важной вехе в нашем совместном путешествии. С огромной радостью и благодарностью мы отмечаем достижение 2 миллионов замечательных пользователей! Этот невероятный подвиг был бы невозможен без каждого из вас.

С самого начала HackTheBox был основан на убеждении, что обмен знаниями, сотрудничество и практический опыт являются основополагающими для личного и профессионального роста. Вместе мы создали среду, в которой процветают инновации и оттачиваются навыки. Каждая решенная задача, каждая покоренная машина и каждый приобретенный навык способствуют формированию коллективного разума, который питает это энергичное сообщество.

Спасибо всем и каждому члену сообщества HackTheBox за участие в этом невероятном путешествии. Ваш вклад сформировал саму ткань нашей платформы и вдохновил нас на постоянные инновации и развитие. Мы безмерно гордимся тем, чего мы достигли вместе, и с нетерпением ждем бесчисленных вех, которые еще впереди.

За следующую главу, в которой мы продолжим расширять границы кибербезопасности, вдохновлять новое поколение этичных хакеров и создавать мир, где знания доступны всем.

С глубочайшей благодарностью,

Команда HackTheBox
Большое спасибо, что дочитали мою статью до конца. Если есть какие-то ошибки/неточности, то, пожалуйста, напишите об этом в комментариях
 
Ответить с цитированием

  #2  
Старый 20.06.2023, 12:02
Shihskauskas
Новичок
Регистрация: 23.12.2018
Сообщений: 0
С нами: 3889261

Репутация: 0
По умолчанию

Спасибо за статью

Отвлекся от рабочей рутины
 
Ответить с цитированием

  #3  
Старый 04.07.2023, 23:30
Atikan
Новичок
Регистрация: 01.07.2023
Сообщений: 0
С нами: 1512531

Репутация: 0
По умолчанию

Спасибо большое за статью. Прекрасная работа! Продолжайте в том же духе! Очень интересно наблюдать!
 
Ответить с цитированием

  #4  
Старый 14.06.2025, 21:37
OxDEADBEEF
Новичок
Регистрация: 24.11.2023
Сообщений: 0
С нами: 1302011

Репутация: 0
По умолчанию

А как надо было понять, что на /api/v1 есть роут лист? Только методом тыка?

А еще можно повысить привилегии через уязвимость glibc
 
Ответить с цитированием

  #5  
Старый 17.06.2025, 17:24
Trager
Познающий
Регистрация: 08.03.2023
Сообщений: 30
С нами: 1678427

Репутация: 0
По умолчанию

Цитата:

OxDEADBEEF сказал(а):

А как надо было понять, что на /api/v1 есть роут лист? Только методом тыка?

Насколько я помню, маршруты, которые используются в райтапе, были получены со страниц на лендинге 2million.htb (ссылки/кнопки).

Цитата:

OxDEADBEEF сказал(а):

А еще можно повысить привилегии через уязвимость glibc

Это старая тачка, вполне может быть
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.