Hackthebox как подключиться к машинам
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. Просмотрим все файлы, включая вложенные директории, с целью найти что-нибудь интересное. И мы находим.
В данном файле находим учетные данные двух пользователей. Давайте авторизуемся на веб сервере. И в консоле кинем еще один реверс шелл.
Но сразу забрать флаг не вышло.
Давайте декодируем пароль.
Теперь проделаем все те же функции от имени администратора.
HackTheBox. Прохождение Travel. Memcache+SSRF=RCE, LPE через LDAP
Продолжаю публикацию решений, отправленных на дорешивание машин с площадки HackTheBox.
В данной статье разбираемся как с помощью PHP memcache и SSRF получить RCE, копаемся в базе данных и смотрим, чем опасен LDAP администратор.
Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ.
Recon
Данная машина имеет IP адрес 10.10.10.189, который я добавляю в /etc/hosts.
Первым делом сканируем открытые порты. Так как сканировать все порты nmap’ом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 500 пакетов в секунду.
Таким образом, нам доступны служба SSH и веб-сервер nginx. Из скана видно, для каких DNS предназначен сертификат. Добавим их в /etc/hosts.
Давайте посмотрим данные сайты. На первом находим описание площадки.
На втором интереснее. Сразу видим, что это CMS WordPress, и находим форму поиска.
Быстро проверив сайт с помощью wpscan, ничего не находим. Идем далее и на третий сайт встречает на ошибкой 403. Давайте переберем директории. Я для этого использую gobuster. В параметрах указываем количество потоков 128 (-t), URL (-u), словарь (-w) и расширения, которые нас интересуют (-x).
Сделать это можно множеством программ, я использую скрипт rip-git.
Есть changelog, из которого отмечаем наличие кеша и проверок безопасности.
В файле rss_template.php отмечаем memcache, наличие параметра url и файл debug.
Параметр должен содержать строку “custom_feed_url”. И скорее по данному адресу произойдет запрос.
RSS страница была на blog.travel.htb.
Запустим локальный веб сервер и обратимся к awesome-rss, передав свой IP в качестве параметра.
И наблюдаем, что предположения верны. Стоит отметить, что если url отсутствует, то будет выбран www.travel.htb/newsfeed/customfeed.xml.
Entry point
В README сказано о перемещении этих файлов в wp-content/themes/twentytwenty (на это я обратил внимание при поиске файла debug.php). И файл debug можем найти именно там.
Осталось разобраться в какой файл в директории logs записываются сериализованные данные. Обратимся к документации:
Таким образом, путь интерпретируется как MD5(MD5(url)+»:spc»). Проверим это, а для этого скачаем файл xml из дефолтного url.
Теперь обратимся к RSS странице, передав в URL скачанный файл.
И получим сериализованные данные.
И теперь по указанной выше формуле рассчитаем интерпретированный путь.
И первые 10 байт совпали! Вот здесь и намечается вектор атаки — PHP memcached и SSRF. Поиск в google вывел меня на этот скрипт.
Только нужно будет изменить код под наш случай. Cоздадим сериализованные данные.
HackTheBox. Прохождение Sauna. LDAP, AS-REP Roasting, AutoLogon, DCSync атака
Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox.
В данной статье находим действующего пользователя с помощью LDAP, работаем с данными автологина, а также выполняем атаки AS-REP Roasting и DCSync, направленные на получение учетных данных.
Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ.
Recon
Данная машина имеет IP адрес 10.10.10.175, который я добавляю в /etc/hosts.
Первым делом сканируем открытые порты. Так как сканировать все порты nmap’ом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 500 пакетов в секунду.
На хосте открыто много портов. Теперь просканируем их с помощью nmap, чтобы отфильтровать и выбрать нужные.
На хосте много служб и первым делом следует посмотреть все, что могут дать WEB, LDAP, SMB и DNS. Для работы с LDAP я предпочитаю ldap браузер JXplorer. Выполним подключение к хосту.
После успешного анонимного подключения нам доступны следующие записи. Среди них находим, предположительно, имя пользователя.
Далее заходим на WEB и находим персонал компании.
У нас есть список возможных пользователей, но не известно, у кого из них имеется учетная запись, и как она называется. Но из LDAP мы узнали пользователя, у которого точно есть учетная запись. Тогда составим список возможных имен этой записи.
Для того, чтобы определить, имеется ли данная учетная запись, можно попытаться выполнить AS-REP Roasting, тогда нам сообщат, если данной учетной записи нет в системе. В противном случае, нам либо удастся выполнить атаку, либо нет — все зависит от флага DONT_REQ_PREAUTH (означает, что для данной учетной записи не требуется предварительная проверка подлинности Kerberos) выставленном в UAC данной записи. Выполнить атаку можно с помощью скрипта GetNPUsers из пакта impacket.
Таким образом, у пользователя Hugo Smith имеется учетная запись hsmith.
На основании того, что админы стараются следовать общему приципу о соглашении об именах пользователей, составим список возможных учетных записей для других пользователей.
И повторим атаку для данных пользователей.
Из всех пользователей, учетную запись имеет лишь одни, и атака проходит, мы получаем хеш пароля пользователя. Брутим его.
И пароль успешно найден. Из множества способов использования учетных данных, выбираем службу удаленного управления (WinRM). Для подключения используем Evil-Winrm.
И берем пользователя.
USER2
Для сбора информации на хосте можно использовать скрипты базового перечисления, наиболее полный — winPEAS. Загрузим его на целевой хост и выполним.
Среди информации, которую он выводит, находим данные автологина.
Но при попытке подключиться — терпим неудачу.
Вернемся и посмотрим, какие учетные записи зарегистрированы в системе. Находим имя учетной записи для данного пользователя.
После подключения и выполнения нескольких перечислений, загружаем на хост SharpHound.
В текущей директории появится архив, скачиваем его.
И закидываем в BloodHound.
Таким образом мы имеем связь GetChangesAll (можно получить по ней информацию)
В приведенном сообщении говорится о привилегии DS-Replication-Get-Changes-All. Это означает, что мы можем запросить репликацию критически важных данных с контроллера домена. Сделать это можно с помощью того же пакета impacket.
И мы имеем хеш админа. Evil-Winrm позволяет подключаться с использованием хеша.
И получаем Администратора.
Вы можете присоединиться к нам в Telegram. Там можно будет найти интересные материалы, слитые курсы, а также ПО. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.
Полное руководство на русском языке о Hack The Box Pen-testing Labs
Всем привет. Это вторая часть руководства по Hack The Box. В ней мы проанализируем несколько машин из HTB, проверим ваши знания командной строки lInux и изучим несколько утилит для сканирования.
Поискав на YouTube, я нашел отличнейший плейлист, из которого мы возьмем видеоролики, где проводят сканирование, и разберем парочку:
Просмотрев начало любого видеоролика, вы увидите сканирование IP адреса машины утилитой Nmap. Давайте посмотрим команды, используемы в видеоролике, и найдем к ним справку. Это можно проделать почти с каждой командой.
Получение справки к каждой команде.
Чтобы создать данный курс, я установил Kali Linux на виртуальную машину: Настраиваем Kali linux + VirtualBox
Получить справку можно двумя способами:
С помощью man нам выводится подробнейшая документация на русском языке, которую мы можем изучить:
Здесь выводится краткая справка на английском:
У Nmap используется такой синтаксис:
И еще была команда с такой опцией:
Анализ вывода утилиты Nmap
Сейчас мы рассмотрим выводы Nmap у IppSec, а потом сами проведем сканирование.
Первый результат вывода.
В выводе мы видим открытые порты 79 и 111. Также важной информацией может быть операционная система и ее версия. В нашем случае данных о версии операционной системы нет, но это можно узнать. В следующей части мы тоже об этом поговорим. Кстати версия 5.11.
Второй результат вывода.
Подключение к VPN
1) Скачиваем файл конфигурации OpenVPN
2) Установка файла конфигурации (Kali Linux)
Для начала мы переходим в директорию, в которую скачали файл. И используем команду: openvpn [Вай ник].ovpn.
Никнейм замазан, чтобы мой аккаунт не забанили на HTB за нарушение правил. Не закрывая это окно, открываем новый терминал и начинаем сканирование. Перед этим выберем машину, среди рабочих я выбрал любую, которая стоит на Linux.
Самое простое, что можно сделать – это запустить Nmap без опций.
Nmap 10.10.10.150
Результат:
В выводе мы видим два открытых порта: ssh и http. Давайте постараемся получить более подробную информацию.
Мы сразу видим вывод, но он сохранился и в нашу папку. Это удобно, когда мы работаем с большими файлами, поскольку в редакторе можно легко проводить поиск нужной вам информации. Посмотреть записанный вывод можно командой:
Less [имя файла].nmap
Теперь разберем вывод:
1) Открытый SSH порт.
Здесь используется 22 порт, который обычно стоит по умолчанию. Есть вероятность того, что SSH настроен с ошибками, и тогда мы сможем легко получить доступ, хотя такое бывает редко.
2) Открытый HTTP порт.
Здесь нам выдало достаточно много информации, например CMS Joomla. Чем больше информации мы сможем собрать, тем больше уязвимостей мы сможем найти. С большой вероятностью, нам придется искать эксплоит для этой версии Joomla или для 2.4.29 Apache.
3) Информация о версии ОС.
Информация о версии ОС будет очень полезна для поиска эксплоита, чтобы получить Root доступ. Поиск и работу с эксплоитами мы разберем позже.
Итак, мы видим перед собой два пути – HTTP и SSH. Чаще всего, я начинаю с исследования HTTP. Давайте приступим к изучению.
Поиск уязвимостей HTTP
Не будем очень сильно углубляться. Это мы сделаем позже, когда будет полноценная практика. Давайте узнаем версию Joomla и её основные каталоги.
Узнаем версию Joomla
Введя в поиск «Определение версии Joomla», мне сразу же высветились множества сайтов. Вот один из них: Как узнать, определить версию Joomla на чужом сайте?
Прочитав, можно понять, что нам надо перейти: domain_name/language/en-GB/en-GB.xml.
Переходим по ссылке, и видим версию Joomla:
Тут еще хранится email админа, но в этой машине он нам не понадобится.
Результат выглядит примерно так:
В нашем случае есть несколько уязвимостей, которые мы можем использовать, но это мы будем делать в следующей части. Пока мы ведем себя, как разведчики .
Задание
Небольшим заданием для вас будет – изучить утилиты с этого сайта: https://kali.tools/?tag=сканирование-портов. Каждым инструментом попробуйте провести сканирование любой машины. Результаты всех сканирований сохраняйте в одну папку. Почти у каждого сканера, рядом с уязвимостью есть ее код, например в Nikto был OSVDB-8193. Поискав в Google этот код, изучите разные уязвимости машин, и находите способы использования эксплоитов к этим уязвимостям. Все это понадобится нам в следующей части, при проведении атаки.
Заключение
В прошлой части я сказал, что мы будем анализировать видеоролики с канала IppSec, но немного подумав, я решил сделать реальную практику, чтобы вы сами могли провести сканирование и найти уязвимости. В следующей рассмотрены самые частые уязвимости и их использование для проведения атаки.
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. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.
GS: How to play Machines
Following the new version of the Hack The Box platform, we are putting out guides on how to navigate the new interface.
Whether you’re a new player or a veteran in Hack The Box, this guide will give you some useful tips and guidance on how to play Machines (commonly referred to as Boxes) in the new platform design.
Navigating to the Machines page
You’ll need to navigate to the left-hand side menu and click on Labs, then Machines from your dashboard.
This will take you to the Boxes line-up page, where you can find all controls required for you to play the Boxes. This includes VPN connection details and controls, Active and Retired Boxes, a to-do list, and more.
Machine difficulties
Machines/Boxes come in four separate difficulty levels; Easy, Medium, Hard, and Insane.
They are named appropriately and have their own respective logo language:
VPN Server selection
If you’d like to learn more about using the VPN ticketing system and subsequently connect to the labs to access the Boxes, we have a dedicated article on the topic.
Click the button below to learn how more about Lab Access:
Highlights
On the Machines/Boxes page, you will see the highlighted Boxes at the top. These can be any number of highlights, such as the staff pick, the next Box to retire, and the newly announced Box for the week.
For the Boxes that have an upcoming launch date announced, there will be a timer to the actual release of the Box along with some basic information about it.
For the Boxes that have a retiring date set, there will also be a timer until retirement along with the option to Play Machine, which will start an instance of that machine on your selected VPN server.
Menus
There are three menus that you can select from to filter through the Boxes lineup.
Active Machines
The Active Machines list displays the Boxes available to everyone, both VIP and free account users.
In the case of VIP users, these, like any other Box, will need to be booted up by the user attempting to attack them. In the case of free users, these Boxes will always be online on their respective Free Lab VPN servers.
Retired Machines
The Retired Machines list displays the Boxes that have been retired and offer no more points upon completion. However, these Boxes provide both the official and user-submitted write-ups for the educational advancement of users. You can use these write-ups to learn how to tackle the Box and how different services and setup configurations can be abused to access a vulnerable system.
The list is split into two sections. The Free Retired Machines section contains a shortlist of recently retired Boxes made available to free users. The Boxes on this list are the only retired Boxes that you can play without a VIP subscription.
The VIP Retired Machines section contains all retired Boxes, including the few available to free users.
Machines To-Do List
The Machines To-Do List contains Boxes (both Active and Retired) that you’ve added to your own personal to-do list. To find out more about how to add a Box to your to-do list, please read below.
Filters
You can filter each of the above lists according to your needs. The filter options are listed as drop-down menus above the machine entries in the respective list. These consist of the following:
Status (Complete, Incomplete, both)
Sort By (Release Date, Name, User Owns, Systems Owns, Rating, User Difficulty)
Difficulty (Easy, Medium, Hard, Insane)
OS (Linux, Windows, FreeBSD, Other)
You can also use the Advanced Search on the Retired Machines menu. This will allow you to filter in more detail according to the Attack Path, Attack Sub, and Programming Languages used during the attacks.
Remember to clear your filters if you’re looking for a certain Box that you can’t find!
Picking a Box to play on
Once you get accustomed to the line-up interface, you can pick a machine that you’d like to tackle. In this example, we’ll be using Sauna.
Note that some of the items you will see here will be restricted to VIP accounts. You will not need to start up or stop the machine to play it for a free user account.
You can find the general Box information in the header at the top. This will display the logo and name of the box, the difficulty rating, and the number of points offered upon completion for the box.
You can find the Box state, control buttons, and other links on the left of the page. If you’re a VIP user, you can start or stop the Box from here.
All other users can add the Box to their To-Do List, submit a review of it or visit the Forum link associated with it.
The Forum Thread link should be handy to beginners as this is where You can find posts about certain challenging tasks within the machine.
On the main section of the Machine page, you can find the tabs related to general information, statistics, activity of other users, changelog for this Box, other users’ reviews, and walkthroughs (once this Box retires).
Take your time getting accustomed to each of them before proceeding.
The IP address of the Box can be seen below the machine state, on the left-hand side. For VIP users, this IP address will only become visible after the machine is powered on.
If you’re using a free account, you only need to make sure your VPN is connected. You will not have the machine start/stop buttons because the Boxes on the active line-up for the free servers will be online at all times for you to attack.
Following the steps above, you should already have an .ovpn connection pack ready and waiting in your
/Downloads folder. From there, you only need to boot up your OpenVPN session with the following command after navigating to the
After you get the Initialization Sequence Completed message at the end of the OpenVPN log, you can open a new terminal tab and try to ping the box’s IP address.
Visiting the machine page, you can see all the required information, as seen above.
As a VIP user, you will need to boot up an instance of the machine you’d like to tackle. The reason for this is that there’s a high number of VIP servers. While we can’t keep all the Machines running all of the time for all of these servers, we can give the users the option to start and stop a Machine on demand.
Following the steps above, you should already have an .ovpn connection pack ready and waiting in your
/Downloads folder. From there, you only need to boot up your OpenVPN session with the following command after navigating to the
After you get the Initialization Sequence Completed message at the end of the OpenVPN log, you can open a new terminal tab and try to ping the box’s IP address.
Visiting the Machine page, you can see all the required information, as seen above.
Resetting a Machine
Sometimes a Box gets stuck, or one of its services is manipulated by another user into failing. This requires a reset. To do so, you only need to press the Reset Machine button on the status section.
Resets will clear the progress for any other user, including you, so please make sure that there’s actually something wrong with the services and it’s not localized to your own attack process before issuing a reset. A best practice will be to ask other users if there’s something wrong with the Box or how you are trying to tackle it.
Extending a Machine’s time
Any instance on any VIP server has a lifetime. Once this lifetime expires, the Box is automatically shut off. If you are in the process of attacking an already close-to-expiry instance and wouldn’t like to be interrupted by it shutting down, you can extend the Box’s time. This will give you ownership over that instance and extend the lifetime to a maximum of 24 hours.
Submitting found flags
Once you’ve found a flag, submit it immediately! There is a flag rotation mechanism in place, and if someone resets the Box, you can lose all progress on your current instance as the instance will boot up from scratch, and the flag will be rotated.
To submit a flag, you can press the Submit Flag button on the status section.
Please note that you will be required to rate the Machine before the platform lets you press the Submit Flag button.
Stopping a Machine
Once you are done attacking a Box and would like to take on a different one, you will first need to shut down the previously owned instance. The platform will not let anyone have two active instances simultaneously, so you will have to click on the Stop Machine button to shut your previous one-off.
Reviewing a Machine
We highly encourage everyone to participate in the development of future Boxes in Hack The Box by posting their opinions about the current ones that they are tackling! Once a Box is owned by you, you can submit your review by clicking the Review Machine button.
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. Прохождение 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. Просмотрим все файлы, включая вложенные директории, с целью найти что-нибудь интересное. И мы находим.
В данном файле находим учетные данные двух пользователей. Давайте авторизуемся на веб сервере. И в консоле кинем еще один реверс шелл.
Но сразу забрать флаг не вышло.
Давайте декодируем пароль.
Теперь проделаем все те же функции от имени администратора.
HackTheBox. Прохождение Sauna. LDAP, AS-REP Roasting, AutoLogon, DCSync атака
Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox.
В данной статье находим действующего пользователя с помощью LDAP, работаем с данными автологина, а также выполняем атаки AS-REP Roasting и DCSync, направленные на получение учетных данных.
Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ.
Recon
Данная машина имеет IP адрес 10.10.10.175, который я добавляю в /etc/hosts.
Первым делом сканируем открытые порты. Так как сканировать все порты nmap’ом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 500 пакетов в секунду.
На хосте открыто много портов. Теперь просканируем их с помощью nmap, чтобы отфильтровать и выбрать нужные.
На хосте много служб и первым делом следует посмотреть все, что могут дать WEB, LDAP, SMB и DNS. Для работы с LDAP я предпочитаю ldap браузер JXplorer. Выполним подключение к хосту.
После успешного анонимного подключения нам доступны следующие записи. Среди них находим, предположительно, имя пользователя.
Далее заходим на WEB и находим персонал компании.
У нас есть список возможных пользователей, но не известно, у кого из них имеется учетная запись, и как она называется. Но из LDAP мы узнали пользователя, у которого точно есть учетная запись. Тогда составим список возможных имен этой записи.
Для того, чтобы определить, имеется ли данная учетная запись, можно попытаться выполнить AS-REP Roasting, тогда нам сообщат, если данной учетной записи нет в системе. В противном случае, нам либо удастся выполнить атаку, либо нет — все зависит от флага DONT_REQ_PREAUTH (означает, что для данной учетной записи не требуется предварительная проверка подлинности Kerberos) выставленном в UAC данной записи. Выполнить атаку можно с помощью скрипта GetNPUsers из пакта impacket.
Таким образом, у пользователя Hugo Smith имеется учетная запись hsmith.
На основании того, что админы стараются следовать общему приципу о соглашении об именах пользователей, составим список возможных учетных записей для других пользователей.
И повторим атаку для данных пользователей.
Из всех пользователей, учетную запись имеет лишь одни, и атака проходит, мы получаем хеш пароля пользователя. Брутим его.
И пароль успешно найден. Из множества способов использования учетных данных, выбираем службу удаленного управления (WinRM). Для подключения используем Evil-Winrm.
И берем пользователя.
USER2
Для сбора информации на хосте можно использовать скрипты базового перечисления, наиболее полный — winPEAS. Загрузим его на целевой хост и выполним.
Среди информации, которую он выводит, находим данные автологина.
Но при попытке подключиться — терпим неудачу.
Вернемся и посмотрим, какие учетные записи зарегистрированы в системе. Находим имя учетной записи для данного пользователя.
После подключения и выполнения нескольких перечислений, загружаем на хост SharpHound.
В текущей директории появится архив, скачиваем его.
И закидываем в BloodHound.
Таким образом мы имеем связь GetChangesAll (можно получить по ней информацию)
В приведенном сообщении говорится о привилегии DS-Replication-Get-Changes-All. Это означает, что мы можем запросить репликацию критически важных данных с контроллера домена. Сделать это можно с помощью того же пакета impacket.
И мы имеем хеш админа. Evil-Winrm позволяет подключаться с использованием хеша.
И получаем Администратора.
Вы можете присоединиться к нам в Telegram. Там можно будет найти интересные материалы, слитые курсы, а также ПО. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.






















