Hack The Box — прохождение Craft. Копаемся в Git, эксплуатируем уязвимости в API, разбираемся с Vault
Данной статьей я начну публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. Мы рассмотрим, как можно проэксплуатировать RCE в API, покопаемся в репозиториях Gogs, поработаем с базами данных и разберемся c системой хранения и управления секретами Vault.
Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ 🙂
Специально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях:
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
Разведка
Сканирование портов
На машине видим службу ssh, а также работающий на 443 порту веб-сервер. Если зайти на веб сервер, то нам предлагают посмотреть на API.
При попытке посмотреть API и git, нам говорят о неивестных сайтах.
Поэтому добавим оба доменных имени в /etc/hosts.
10.10.10.110 api.craft.htb
10.10.10.110 gogs.craft.htb
Теперь обе ссылки открываеются. Craft API предположительно представляет собой интерфейс для работы с API, поэтому для начала нам нужно разабраться, как он работает, в чем нам поможет Gogs.
Точка входа
В git первым делом следует проверить коммиты.
Пройдя по коммитам, в 10e3ba4f0a найдем аутентификационные данные пользователя.
Авторизовавшись в gogs в переписки находим упоминание про баг.
Переходя по ссылке, обнаруживаем как происходит проверка в функции eval(), что очень опасно, так как в данной функции можно выполнить код.
Для проверки гипотезы, в локальной консоли python сделаем аналог функции, и попробуем вызвать функцию “system()” из модуля “os”.
Код успешно был выполнен! Теперь нужно написать эксплоит, чтобы получить бэкконнект. На первом этапе копируем код для аутентификации и получения токена.
В данном коде наша нагрузка передается в параметре “abv”, пожтому для проверки предположения RCE заменяем строку ’15.0’ на «__import__(‘os’).system(‘ping ваш_ip’) «.
Открываем tcpdump, указывая какой интерфейс прослушивать и параметры фильтра только ICMP пакеты и запускаем эксплоит.
Наблюдаем, что мы смогли себя пинговать с удаленного хоста. Теперь кидаем бэкконект. Можно сделать через nc, но давайте получим meterpreter оболочку. Для этого генерируем нагрузку с помощью msfvenom. Указываем саму нагрузку (reverse_tcp), локальные хост и порт (LHOST, LPORT), и формат файла — elf.
Заодно включаем локальный веб-сервер. Теперь настроим листенер в msfconsole. Для этого устанавливаем параметры, как в нагрузке.
Давайте запустил шелл и посмотрим под кем мы работаем.
По выводу терминала можно предположить, что мы находимся внутри docker контейнера. Осмотримся на хосте.
Есть исполняемый файл dbtest.py. Следует его посмотреть.
Программа подключается к базе данных и выполнет команду с последующим выводом. Давайте осмотримся в базе данных. Для этого я запустил на хосте интерактивную консоль python и скопировал в нее весь код до выполнения команды.
Теперь запросим таблицы.
Как результат, нам вернули 2 записи. Так как cursor.fetchone() выводит одну запись, выполним два таких вывода.
Так мы получили 2 таблицы. Больше интересна user. Выводим все данные из этой таблицы.
И того в ней 3 записи.
И мы получаем креды пользователей. Попробовав их на ssh и потерпев неудачу пробуем зайти в git. И получается зайти под пользователем gilfoyle. И у него имеется закрытый репозиторий.
Пробуем подключиться по ssh с данным ключем.
Первым делом осмотримся в дирректории пользователя.
Мы находим токен от vault.
Разобравшись с vault, скажу, что это система хранения и управления секретами, содержащее данные в формате ключ/значение, доступ к которым осуществляется за счет токена. Провери, настроено ли храниище.
Теперь вводим данный нам одноразовый пароль и мы в системе как root.
Вы можете присоединиться к нам в Telegram. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.
Hack The Box — прохождение Player. FFmpeg эксплоит, JWT и различные веб перечисления
Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье пройдем JWT, выполним такие веб-перечисления, как поиск дирректорий, поддоменов и файлов бэкапа, проэксплуатируем SSRF в кодере FFmpeg и RCE в SSH.
Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ 🙂
Специально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях:
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
Разведка
Сканирование портов
Данная машиина имеет IP адрес 10.10.10.145, который я добавляю в /etc/hosts.
Первым делом сканируем открытые порты. Так как сканировать все порты nmap’ом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 1000 пакетов в секунду.
Таким образом на хосте работает SSH на портах 22 и 6686, а также веб-сервер Apache на 80.
Веб перечисления
Первым делом идем смотреть веб. Но увы, там ничего интересного.
В таком случае обычно нужно сканировать дирректории. Для этого используем быстрый gobuster. В параметрах укаываем, что мы хотим сканировать дирректории (dir), указываем сайт (-u), список слов(-w), расширения, которые нас интересуют (-x), количество потоков (-t).
Из данных дирректорий интересна launcher. Там написано, что это сервис для редактирования видео и нам требуется валидный email.
Немного поигравшись с формой, заметил, что она отправляет данные на странинцу /launcher/dee8dc8a47256c64630d803a4c40786c.php, там проиходит проверка и редирект обратно.
Из всего, что мы имеем, нам ничто и ничего не даст. Следующим этапом перечисления, является поиск поддоменов. С недавнего времени, после того как мне посоветовали использовать wfuzz, я использую его и советую то же самое остальным. Укаываем заголовок (-H), словарь (-w), URL (-u), и исключать код ответа 403 (—hc 403).
Таким образом, мы нашли три поддомена, которые тоже необходимо добавить в /etc/hosts.
На dev имеется только форма авторизации, на chat только бесполезный чат, а на staging форма для каких-то контактов.
Немного потестировав форму, все что имеем — редирект на 501.php и какие-то данные с указанной ошибкой.
Но снова этого было мало. Далее, что я обычно забываю, решил проверить бэкапы фвйлов. Так был обнаружен /launcher/dee8dc8a47256c64630d803a4c40786c.php
В данном коде происходит декодирование JWT(токена) и его проверка. В зависимости от проверки, происходит редирект на одну из страниц. Если токен не предоставлен, то нам его назначают.
Так как мы знаем ключ и итоговое значение, то можем закодировать его и получить валидный токен. Это можно сделать с помощью данного сайта.
Мы получаем закодированный токен. И подставляем его в запрос.
В итоге нам предоставлена форма загрузки медиа файла. Загрузив картинку, нам предложили скачать медиал файл в формате AVI.
Entry Point
Так как из нашего файла создается AVI, можем использовать эксплоит, который позволяет читать файлы. Код можно взять здесь. Давайте проверим это и посмотрим файл /etc/passwd.
Давайте проверим это и посмотрим файл /etc/passwd.
Скачав и открыв файл, наблюдаем файл /etс/passwd.
Так как мы можем читать файлы, наужно собрать список тех, о которых мы знаем. Вспоминаем про ошибки в файле contact.php. Давайте прочитаем все указанные там файлы.
И в файле сontact ничего интересное, fix прочитать не удалось, а вот в service_config находим логин и пароль.
Попробуем войти с ними на dev.player.htb — данные не подходят, но есть еще два SSH. Порт 22 — неудача, а вот на 6686 получем шелл.
Но оболочка ограниченная, и я вспомнил про версию 7.2 и решил проверить эксплоиты.
Таким образом, если мы имеем учетные данные, то можем выполнить Command Injection.
Также нам предоставляют список команд, для чтения и записи файлов. Читаем флаг пользователя.
Теперь у нас должно хватать прав прочитать fix.php
В нем находим интересные данные, которые уже подходят на dev.player.htb. И там находим проект.
И данный файл доступен через при обращении к нему из внешней среды. То есть мы можем разместить шелл.
Для этого нужно открыть свой проект.
Далее создать файл со следующим шеллом.
Теперь откроем сессию с помощью netcat.
Далее обратимся к нашему файлу.
Выполнив перечисления и проверив еще несколько вариантов, останавливаемся на проверке процессов. Благодаря pspy64 можно определить, что время от времени запускается скрипт buff.php причем с UID равным 0, т.е. от имени root.
Посмотрим, что делает скрипт.
При попытке дописать код в данный файл, сталкиваемся с проблемой — у нас нет прав.
Но в скрипте происходит инклуд другого файла, в который мы имеем право записи.
Запишем уже испольованный нами шелл в этот файл, и в netcat ожидаем подключение.
Таким образом мы получаем максимальные привилегии.
Вы можете присоединиться к нам в Telegram. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.
A Massive
Hacking Playground
Join a dynamically growing hacking community and take your cybersecurity skills to the next level through the most captivating, gamified, hands-on training experience!
Trusting Their Security Training With Hack The Box
Why Hack The Box
A Unified Suite of Hacking Experiences
Hack The Box is a massive, online cybersecurity training platform, allowing individuals, companies, universities and all kinds of organizations around the world to level up their hacking skills.
Top-Notch
Hacking Content
From easy to the most difficult, our virtual hacking labs cover all skill levels. New content is added every week, covering the latest exploits and vulnerabilities.
Hands-On
Penetration Testing
Instead of focusing on theoretical learning and checkboxes, we believe
in effective, hands-on training where you learn by doing.
Cyber Training
Gamified
Training needs to be fun. Points, badges, first blood, multiplayer battles, progress bars, “Hall of Fame” scoreboards, ranks, teams, and more!
The home of guided and exploitative learning, offering everything that is required to take your training seriously and kickstart a career in cybersecurity.
Ready to learn how to hack?
Hackers at heart
The world’s largest hacking community.
It’s good to belong. Especially when a community shares the same objectives, is massively growing, welcomes everybody, and is always ready to help by exchanging ideas and spreading the hacking knowledge. That’s the HTB Community.
Complete any of our Pro Labs and prove
your cybersecurity skills with an official
Hack The Box certificate.
Be part of the biggest information
security talent pool. Join our Careers
section and land your dream job.
Hack The Box. Прохождение Sniper. RFI и вредоносный CHM документ
Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье эксплуатируем RFI, обходим блокировку shell meterpreter и создаем вредоносный CHM документ.
Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ 🙂
Специально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях:
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
Recon
Данная машина имеет IP адрес 10.10.10.151, который я добавляю в /etc/hosts.
Первым делом сканируем открытые порты. Так как сканировать все порты nmap’ом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 1000 пакетов в секунду.
На хосте открыто 4 порта, узнаем, что нам может дать веб-сервер.
Первые три ссылки пустые, а вот две других привели на страницы блога и авторизации.
Учетные данные типа admin:admin не подходят, а вот на странице блога интересный выбор языка.
Сразу возникают мысли о LFI. Давайте прочитаем один из доступных всем для чтения файлов, например hosts (и в Linux, и в Windows).
Идея подтвердилась, имеем LFI.
Entry Point
Но есть возможность попробовать и RFI. Создадим тестовый файл.
Развернем локальный SMB сервер SAMBA. Для этого напишем соответствующие конфигурации в файл /etc/samba/smb.conf. Нужно прописать путь к директории и дать разрешения для доступа от имени гостя.
Теперь запустим smbd службу.
И обратившись к ресурсу, получим положительный результат.
Теперь кидаем нагрузку. Создадим ее с помощью msfvenom, затем активируем листенер.
Обращаемся к файлу. И получаем подключение.
Так как на сайте была страница авторизации, то мы можем найти хоть какие-нибудь учетные данные. Мы находимся в директории страницы blog.
Давайте скачаем все, что есть в директории user.
Позже, просматривая все файлы на локальном хосте, находим учетные данные для подключения к базе.
Узнаем пользователей в системе. Но вот при выполнении любой команды через shell в meterpreter, получаем обрыв соединения. Неужели блокируется cmd? Попробуем обойти блокировку за счет создания процесса powershell в скрытом от просмотра (-H) интерактивном режиме (-i) с передачей нашей команды в качестве параметры (-a).
А теперь давайте попробуем выполнить команду в контексте данного пользователя. Для этого в качестве параметра передадим следующий скриптик в powershell.
Загрузим на хост netcat. Для этого в директории с ним запустим HTTP сервер.
И выполним загрузку.
Теперь запускаем у себя netcat, выполняем подключение и получаем сессию пользователя.
Немного побродив по пользовательским директориям, найдем chm файл. Не понятно зачем он нужен.
На диске C: в папке Docs оставлена записка, в которой говорится, что пользователь не умеет работать с PHP и должен подготовить документацию. Оставить документы нужно в данной папке.
Установим HTML Help Workshop. А потом сгенерируем вредоносный CHM файл с помощью Out-Chm из пакета Nishang.
Теперь сохраним в целевую директорию на удаленном хосте наш файл.
И получаем сессию администратора.
Вы можете присоединиться к нам в Telegram. Там можно будет найти интересные материалы, слитые курсы, а также ПО. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.
Hack The Box. Прохождение Omni. Ломаем легенький Windows IoT
Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox (https://www.hackthebox.eu). Надеюсь, что это поможет хоть кому-то развиваться в области ИБ.
Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ 🙂
Специально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях:
— cетевые технологии (Network);
— реверс (Reverse Engineering);
— поиск и эксплуатация WEB-уязвимостей;
Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем (ссылка).
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
Recon
Данная машина имеет IP адрес 10.10.10.204, который я добавляю в /etc/hosts.
Много открытых портов, при этом на 8080 нас встречает HTTP аутентификация “Windows Device Portal”. Давайте узнаем что это.
Таким образом, это IoT мы можем найти найти соответствующий популярный эксплоит SirepRAT.
Entry Point
Запускаем на локальной машине веб сервер.
Скачаем на удаленную машину netcat, запустим листенер и выполним реверс шелл с помощью netcat.
И мы получаем оболочку.
Из программного обеспечения имеется только PowerShell. Просмотрим все файлы, включая вложенные директории, с целью найти что-нибудь интересное. И мы находим.
В данном файле находим учетные данные двух пользователей. Давайте авторизуемся на веб сервере. И в консоле кинем еще один реверс шелл.
Но сразу забрать флаг не вышло.
Давайте декодируем пароль.
Теперь проделаем все те же функции от имени администратора.



