Приветствую, Кодебай! Сегодня мы пройдём линуксовую машину легкой сложности с
, которая посвящена двум миллионам зарегистрировавшимся пользователям. Приятного чтения
Разведка
Как всегда начинаем со сканирования портов. Используем флаг
, чтобы использовать стандартные скрипты,
, чтобы определить сервисы открытых портов:
https://forum.antichat.xyz/attachmen...6736328605.png
Когда мы переходим на
порт, то нас встречает следующее окно:
https://forum.antichat.xyz/attachmen...6736425488.png
В таком случае нужно внести
-адрес и домен в
.
Советую вместо
(который не работает):
https://forum.antichat.xyz/attachmen...6737745624.png
Использовать
вместе с
:
https://forum.antichat.xyz/attachmen...6737774748.png
Теперь мы можем попасть на веб-сервис:
https://forum.antichat.xyz/attachmen...6737920349.png
Это оказалась старая версия
с древним интерфейсом. Тут есть страница логина и регистрации:
https://forum.antichat.xyz/attachmen...6737948470.png
Страница регистрации требует пригласительного кода:
https://forum.antichat.xyz/attachmen...6738267275.png
Насколько я помню раньше на
нельзя было так просто зарегистрироваться, как на любых других сервисах. Требовалось получить пригласительный код от друга. Это был рэбит хол, то есть никаких кодов у друзей, которые уже зарегистрировались на платформе, нет. Тут нужно искать этот код на самом сайте в
-файлах.
Что ж, приступим. Открываем исходный код страницы
Код:
http://2million.htb/register
и видим
Код:
/js/inviteapi.min.js
:
https://forum.antichat.xyz/attachmen...6738351654.png
Смотрим исходный код
-файла:
https://forum.antichat.xyz/attachmen...6738462716.png
Весь код зашифрован и идёт в одну строку, следовательно, нам нужно его как-то преобразовать в читаемый для человека вид. Советую использовать любой
:
https://forum.antichat.xyz/attachmen...6738561624.png
После того, как расшифровали код мы получили несколько путей, куда можно отправить
-запрос:
Код:
/api/v1/invite/verify
- скорее всего для подтверждения invite-кода
Код:
/api/v1/invite/how/to/generate
- скорее всего инструкция, как сделать, соответственно, этот инвайт-код.
Для начала посмотрим инструкцию. Отправим
-запрос с помощью инструмента
:
Bash:
Код:
curl
-X POST http://2million.htb/api/v1/invite/how/to/generate
https://forum.antichat.xyz/attachmen...6738620583.png
Вывалился
в ответе:
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..."
}
Есть
- зашифрованная строка и
- алгоритм шифрования
. Очевидно, что это шифр Цезаря:
https://forum.antichat.xyz/attachmen...6738809713.png
Нам говорят, что нужно отправить
-запрос на
Код:
/api/v1/invite/generate
, чтобы сгенерировать
-код. Опять же используем
:
Bash:
Код:
curl
-X POST http://2million.htb/api/v1/invite/generate
https://forum.antichat.xyz/attachmen...6739260781.png
JSON:
Код:
{
"0"
:
200
,
"success"
:
1
,
"data"
:
{
"code"
:
"Mk9QSzAtN1pMUzgtVUxZSUstUTA5WU4="
,
"format"
:
"encoded"
}
}
Мы получили код, который был зашифрован в
. Его можно расшифровать через
из терминала:
Bash:
Код:
echo
"Mk9QSzAtN1pMUzgtVUxZSUstUTA5WU4="
|
base64 -d
На
ввести код нельзя, следовательно, нужно искать другой путь. Я нашёл страницу
и ввёл код:
https://forum.antichat.xyz/attachmen...6739495204.png
И меня перенаправило на
с уже введённым кодом:
https://forum.antichat.xyz/attachmen...6739574193.png
Я ввёл остальные данные - юзернейм, электронную почту и пароль, а затем нажал на кнопку
, после чего меня перенаправило на страницу
:
https://forum.antichat.xyz/attachmen...6739636037.png
После авторизации открылся, опять же, старый интерфейс
:
https://forum.antichat.xyz/attachmen...6739660358.png
На
мы можем скачать наш
-конфиг или перегенерировать:
https://forum.antichat.xyz/attachmen...6739771383.png
Давайте посмотрим, что возвращает страница при
-запросе на
Код:
/api/v1/user/vpn/generate
(кнопка
):
https://forum.antichat.xyz/attachmen...6739878981.png
Не забываем указать заголовок с куками в курле. Чтобы посмотреть куки, можно нажать кнопку
(
) и перейти в
Код:
Storage->Cookies->http://2million.htb
:
https://forum.antichat.xyz/attachmen...6739912776.png
Теперь указываем опцию
(доп.
-заголовок) и отправляем запрос на
Код:
/api/v1/user/vpn/generate
:
https://forum.antichat.xyz/attachmen...6739979840.png
Видим наш
-конфиг, пока что ничего полезного.
Далее я перешёл для удобства в
и отправил
-запрос на
:
https://forum.antichat.xyz/attachmen...6740117799.png
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/v1/admin/vpn/generate
- похоже, что с помощью него можно сгенерировать
-конфиг для любого пользователя от лица, опять же, админа.
- Есть путь с
-запросом
Код:
/api/v1/admin/settings/update
- он обновляет настройки пользователя. Скорее всего через него мы можем повысить привилегии.
Взятие www-data
Попробуем обновить настройки для нашего пользователя, отправляем
-запрос на
Код:
/api/v1/admin/settings/update
:
https://forum.antichat.xyz/attachmen...6741320380.png
В ответе нам приходит сообщение, что у нас неправильный
заголовок. Хорошо, добавим его со значением
(т. е. данные мы будем передавать в
-формате):
https://forum.antichat.xyz/attachmen...6741358564.png
Немного продвинулись, теперь не хватает электронной почты, добавим наш
в
'е:
https://forum.antichat.xyz/attachmen...6741468249.png
И добавим
(понять какой тип данных используется можно методом перебора):
https://forum.antichat.xyz/attachmen...6741498379.png
Отлично, кажется, мы повысили наши привилегии, проверим это:
https://forum.antichat.xyz/attachmen...6741735919.png
Супер. Возвращаемся к нашему списку, что мы ещё не заимодействовали?:
- [S]Пути с
нам не нужны. Нужны пути с
.[/S]
- [S]Есть путь с
-запросом
- он, судя по всему, без каких-либо параметров проверяет авторизован ли пользователь как админ (через куки).[/S]
- Есть путь с
-запросом
Код:
/api/v1/admin/vpn/generate
- похоже, что с помощью него можно сгенерировать
-конфиг для любого пользователя от лица, опять же, админа.
- [S]Есть путь с
-запросом
Код:
/api/v1/admin/settings/update
- он обновляет настройки пользователя. Скорее всего через него мы можем повысить привилегии.[/S]
Теперь мы можем сделать
для юзеров:
https://forum.antichat.xyz/attachmen...6742053887.png
Опять же, методом тыка проверяем какие параметры используются в
-запросе, хорошо, что респонс нам подсказывает - не хватает юзернейма. Добавляем его:
https://forum.antichat.xyz/attachmen...6742124770.png
Такой вывод я уже видел ранее (от лица обычного пользователя), но тут мы можем указать юзернейм. Возможно, используется какая-нибудь "опасная" функция, где нет фильтрации и мы можем получить
?
https://forum.antichat.xyz/attachmen...6742236272.png
Получили
. Теперь давайте пробросим шелл (советую для удобства использовать данный сервис):
https://forum.antichat.xyz/attachmen...6742322494.png
Шелл получен, сразу апгрейдим оболочку через
:
Bash:
Код:
python3 -c
'import pty;pty.spawn("/bin/bash");'
https://forum.antichat.xyz/attachmen...6742471691.png
Взятие пользователя
В домашней директории пользователя
можно обнаружить
файл. В нём лежали креды:
https://forum.antichat.xyz/attachmen...6745079027.png
Код:
Код:
DB_USERNAME=admin
DB_PASSWORD=SuperDuperPass123
Не проверить их на пользователе
через
, который располагается в
, было бы глупо:
Bash:
Код:
ssh
admin@2million.htb
https://forum.antichat.xyz/attachmen...6745183078.png
Взятие рута
Мы можем взять флаг пользователя и нужно искать методы повышения привилегий. В
мы можем найти следующее письмо:
https://forum.antichat.xyz/attachmen...6745520768.png
Тут говорится о нескольких
для ядра линукс, которые появились в этом году и что-то есть в
. Гуглим:
https://forum.antichat.xyz/attachmen...6745606250.png
- то, что нам нужно. Так как машина лёгкого уровня, то берём уже готовый эксплоит с
:
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
Загружаем на машину через
-сервер
(как это делается я рассказывал в прошлых своих статьях - например.
прохождение Precious):
https://forum.antichat.xyz/attachmen...6745971926.png
И по инструкции с
запускаем эксплоит:
https://forum.antichat.xyz/attachmen...6746038827.png
Получаем рута:
https://forum.antichat.xyz/attachmen...6746081916.png
thank_you.json
В каталоге
мы можем обнаружить послание от разработчиков
-
:
https://forum.antichat.xyz/attachmen...6746691266.png
Это
-код:
JSON:
Код:
{
"encoding"
:
"url"
,
"data"
:
"%7B%22encoding%22:%20%22hex%22,%20%22data%22:%20%227b22656e6372797074696f6e223a2022786f72222c2022656e6372707974696f6e5f6b6579223a20224861636b546865426f78222c2022656e636f64696e67223a2022626173653634222c202264617461223a20224441514347585167424345454c43414549515173534359744168553944776f664c5552765344676461414152446e51634454414746435145423073674230556a4152596e464130494d556745596749584a51514e487a7364466d494345535145454238374267426942685a6f4468595a6441494b4e7830574c526844487a73504144594848547050517a7739484131694268556c424130594d5567504c525a594b513848537a4d614244594744443046426b6430487742694442306b4241455a4e527741596873514c554543434477424144514b4653305046307337446b557743686b7243516f464d306858596749524a41304b424470494679634347546f4b41676b344455553348423036456b4a4c4141414d4d5538524a674952446a41424279344b574334454168393048776f334178786f44777766644141454e4170594b67514742585159436a456345536f4e426b736a41524571414130385151594b4e774246497745636141515644695952525330424857674f42557374427842735a58494f457777476442774e4a30384f4c524d61537a594e4169734246694550424564304941516842437767424345454c45674e497878594b6751474258514b45437344444767554577513653424571436c6771424138434d5135464e67635a50454549425473664353634c4879314245414d31476777734346526f416777484f416b484c52305a5041674d425868494243774c574341414451386e52516f73547830774551595a5051304c495170594b524d47537a49644379594f4653305046776f345342457454776774457841454f676b4a596734574c4545544754734f414445634553635041676430447863744741776754304d2f4f7738414e6763644f6b31444844464944534d5a48576748444267674452636e4331677044304d4f4f68344d4d4141574a51514e48335166445363644857674944515537486751324268636d515263444a6745544a7878594b5138485379634444433444433267414551353041416f734368786d5153594b4e7742464951635a4a41304742544d4e525345414654674e4268387844456c6943686b7243554d474e51734e4b7745646141494d425355644144414b48475242416755775341413043676f78515241415051514a59674d644b524d4e446a424944534d635743734f4452386d4151633347783073515263456442774e4a3038624a773050446a63634444514b57434550467734344241776c4368597242454d6650416b5259676b4e4c51305153794141444446504469454445516f36484555684142556c464130434942464c534755734a304547436a634152534d42484767454651346d45555576436855714242464c4f7735464e67636461436b434344383844536374467a424241415135425241734267777854554d6650416b4c4b5538424a785244445473615253414b4553594751777030474151774731676e42304d6650414557596759574b784d47447a304b435364504569635545515578455574694e68633945304d494f7759524d4159615052554b42446f6252536f4f4469314245414d314741416d5477776742454d644d526f6359676b5a4b684d4b4348514841324941445470424577633148414d744852566f414130506441454c4d5238524f67514853794562525459415743734f445238394268416a4178517851516f464f676354497873646141414e4433514e4579304444693150517a777853415177436c67684441344f4f6873414c685a594f424d4d486a424943695250447941414630736a4455557144673474515149494e7763494d674d524f776b47443351634369554b44434145455564304351736d547738745151594b4d7730584c685a594b513858416a634246534d62485767564377353043776f334151776b424241596441554d4c676f4c5041344e44696449484363625744774f51776737425142735a5849414242454f637874464e67425950416b47537a6f4e48545a504779414145783878476b6c694742417445775a4c497731464e5159554a45454142446f6344437761485767564445736b485259715477776742454d4a4f78304c4a67344b49515151537a734f525345574769305445413433485263724777466b51516f464a78674d4d41705950416b47537a6f4e48545a504879305042686b31484177744156676e42304d4f4941414d4951345561416b434344384e467a464457436b50423073334767416a4778316f41454d634f786f4a4a6b385049415152446e514443793059464330464241353041525a69446873724242415950516f4a4a30384d4a304543427a6847623067344554774a517738784452556e4841786f4268454b494145524e7773645a477470507a774e52516f4f47794d3143773457427831694f78307044413d3d227d%22%7D"
}
В нём есть
- метод шифрования/кодирования, и
- сами данные. Раздекодим
(советую использовать cyberchef):
https://forum.antichat.xyz/attachmen...6746769451.png
Получаем
-код с
в хексе, декодим:
https://forum.antichat.xyz/attachmen...6746875930.png
Мы получили опять
-код с шифрованием
, а сам
закодирован в
, выбираем следующие рецепты в cyberchef:
https://forum.antichat.xyz/attachmen...6747032867.png
Вот, собственно, послание:
Код:
Код:
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
Большое спасибо, что дочитали мою статью до конца. Если есть какие-то ошибки/неточности, то, пожалуйста, напишите об этом в комментариях