Невозможно отучить людей изучать самые ненужные предметы.
Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3
Надо знать обо всем понемножку, но все о немногом.
Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы
Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)
Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода
Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5
Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости
Справочник от А до Я
HTML, CSS, JavaScript
Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы
Помогли мы вам |
Hack The Box. Мы поупражняемся в базовых техниках взлома, получим доступ к Mattermost с помощью Support Ticket System, а потом будем ломать пароли, задавая кастомные правила в hashcat.
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
IP-адрес Delivery — 10.10.10.222, я добавлю его в /
, чтобы можно было обращаться к хосту по имени. Строчка, которую нужно добавить в файл, будет выглядеть вот так:
10.10.10.222 delivery.htb
Любая атака начинается со сканирования открытых на хосте портов. Это нужно, чтобы знать, какие службы отзываются на наш запрос, а соответственно, работают на целевой системе. Исходя из этой информации, мы сможем выбирать путь для получения точки входа и закрепления на хосте.
Я это делаю с помощью следующего скрипта, который использует утилиту Nmap. Он принимает один аргумент — адрес сканируемого хоста. Сначала скрипт производит обычное быстрое сканирование, а затем все найденные порты сканируются с использованием установленных скриптов для Nmap.
ports=$(nmap -p- --min-rate=500 $1 | grep^[0-9] | cut -d '/' -f 1 | tr 'n' ',' | sed s/,$//)nmap -p$ports -A $1
Результат работы скрипта
Так я обнаружил три открытых порта:
SSH в начале решения машины трогать нет смысла: там нужен пароль, а у нас его нет. Перебирать логины и пароли (то есть брутфорсить учетные данные) при решении задачек — последнее дело, наверняка есть более элегантный метод добыть учетку.
Поэтому открываем браузер и заходим на сайт номер один, то есть тот, что работает на 80-м порте. Нам нужно не только искать потенциальные точки входа и уязвимости, но и собирать всю сопутствующую информацию: имена пользователей, версии ПО, на котором работает сайт, и так далее.
Главная страница сайта сразу приглашает нас перейти в раздел Contact Us. Там мы находим две ссылки.
Страница Contact Us
Первая ссылка, обозначенная как HelpDesk, дает нам новый поддомен helpdesk.
, который сразу стоит добавить в файл /
. Тут нас ждет система поддержки, основанная на тикетах.
10.10.10.222 helpdesk.delivery.htb
Главная страница helpdesk.delivery.htb
Это приложение, которое собирает и отслеживает все обращения в службу поддержки из разных источников, к примеру по телефону или по электронной почте. Независимо от способа обращения запрос будет зарегистрирован в единой системе. При каждом новом обращении создается заявка, а к ней прикрепляются данные о клиентах и инцидентах. Доступ к такой системе может быть очень полезен, но пока что пойдем дальше.
Вторая ссылка, с текстом MatterMost server, приводит на тот самый непонятный порт 8065, о котором мы узнали на стадии сканирования. Там нас сразу встречает форма авторизации Mattermost с возможностью регистрации и восстановления пароля.
Форма авторизации Mattermost
Mattermost — это интерактивный онлайновый чат с открытым исходным кодом, с возможностью обмена файлами, своим поиском и интеграциями. Он разработан как внутренний чат для организаций и в основном позиционируется как опенсорсная альтернатива Slack и Microsoft Teams. Заполучив доступ к такому чату, мы сможем узнать полезную информацию и получить сохраненные там файлы.
При регистрации у нас запрашивают адрес электронной почты для подтверждения регистрации. Поэтому мы не можем указать несуществующий адрес.
Поскольку мы уже знаем о существовании системы заявок, стоит попробовать ее использовать. Благо нам доступны опции создания заявки и проверки ее статуса. Переходим на вкладку Open a New Ticket в системе заявок и указываем необходимые для ее создания данные: адрес электронной почты (конечно же, несуществующий), имя пользователя, а также описание своей проблемы (любой текст).
После этого получаем информационное письмо с номером заявки. Но что более важно, для дополнения информации по заявке нам дают адрес электронной почты!
Форма оформления новой заявки
Информационное сообщение о принятой заявке
Так как при просмотре статуса тикета отображается история обращений, мы можем использовать данный нам адрес электронной почты при регистрации. Тогда в заявке мы сможем увидеть присланную на данный адрес ссылку для подтверждения регистрации. Давай так и сделаем: регистрируемся в Mattermost, а затем получаем статус заявки.
Форма регистрации Mattermost
Получение статуса заявки в HelpDesk
Сообщение об успешной регистрации
Как и предполагалось, мы получаем сообщение об успешной регистрации в информации о заявке. В сообщении есть ссылка для подтверждения, перейдя по которой мы станем полноправным пользователем чата Mattermost.
Форма авторизации Mattermost c сообщением об успешной верификации
Смотрим доступные сообщения и среди них находим учетные данные для сервера. С найденными учетными данными успешно подключаемся к хосту по SSH.
Чат Mattermost
Так мы получили флаг пользователя.
Флаг пользователя
Так как на хосте развернут веб‑сервер, а на нем работает аж целое веб‑приложение, первое наше действие — попробовать получить какие‑либо учетные данные пользователей этого приложения. Высока вероятность, что эти учетные данные подойдут и для локальных пользователей тоже. Обычно такие данные хранятся либо в конфигах, либо в базе данных. Mattermost хранит учетные данные пользователей в базе данных MySQL, а учетные данные для подключения к базе находятся в файле конфигураций /
в разделе SqlSettings
по ключу DataSource
.
|
|