Привет, Хабр! В прошлой статье я рассказывал о турнире KnightCTF 2024, который организовала команда из Бангладеша. Но туда вошли не все задачи. Под катом расскажу еще о четырех из категории networking. Читайте далее — узнаете, как получить секретную информацию в bash-history и найти пароль админа среди дампа. Пригодится как опытным, так и начинающим специалистам по информационной безопасности.

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

Используйте навигацию, чтобы перейти к интересующей задаче:

Задача: Hidden File
Задача: Confidential
Задача: Super Admin
Задание: Famous Tool 2

Задача: Hidden File


Условие


Какой флаг у скрытого файла?

Дано


.pcap-файл

Решение


В прошлой части я рассказывал о задаче Port, в которой нужно найти номер порта у обратной оболочки сервера — 6200/tcp. Из кода эксплойта можно понять, что для коннекта использовался telnet, поэтому все команды были перехвачены в открытом виде. Оттуда я получаю bash_history.


Содержание bash-history.

В выводе есть строка 37n3vq6rp6k05ov33o5fy5b33sj3rq2sy4p56735853h9. Это не классический Hex-формат, а Twin-Hex. В нем исходный текст преобразуется в два символа за раз.

Далее декодирую строку с помощью Python-модуля для Twin-Hex:

$ python twin_cipher.py -d "37n3vq6rp6k05ov33o5fy5b33sj3rq2sy4p56735853h9"

Готово — получаю флаг!

Задача: Confidential


Условие


Здесь есть что-то конфиденциальное. Сможете ли вы найти его? Пожалуйста, воспользуйтесь приложением к первой задаче.

Формат флага: KCTF{fl4G}

Решение


Вернемся к bash-history из предыдущей задачи. На 162 строке вижу скачанный архив maybeconfidential.zip. Давайте узнаем, что в нем находится.


Содержание трафика.

В Wireshark можно получить файлы, которые передавались в момент записи дампа трафика. Выбираю ФайлЭкспортировать объектыHTTP, добавляю в фильтр maybeconfidential.zip:


Список HTTP.

Распаковываю архив. Внутри — .docx-файл с картинкой. На ней изображен маскот рыцаря Knight CTF 2024::


Изображение в архиве.

Формат .docx — тоже архив, нужно его открыть. В нем находятся три папки с файлами и XML-документ.


С помощью обычного поиска по тексту ищу в названии KCTF. Флаг находится в maybeconfidential/maybeconfidential/word/document.xml. Задача решена!


Задача: Super Admin


Условие


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

Формат флага: KCTF{password}

Дано


Дамп SQL.

Решение


Интересная задача! Раз был дан только дамп, с него я и решил начать. И не прогадал: внутри была интересная часть с информацией о пользователях


Содержание дампа SQL.

Забираю хеш пользователя root 5f27f7648285dec7954f5ee1ad696841 и расшифровываю его хеш-сумму в декодере md5. Получаю пароль — letmeinroot.


Декодированный пароль из хеш-суммы.

Подставляю пароль в строку для формирования флага — KCTF{letmeinroot}. Готово!

Задание: Famous Tool 2


Условие


Какой инструмент использовал злоумышленник, чтобы выявить уязвимость страницы редактирования задания? Пожалуйста, используйте вложение из первой задачи.

Формат флага: KCTF{toolname/version}

Решение


Продолжаю работать с уже известным .pcap-файлом. В коде эксплоита из задачи Port применяю фильтр http contains “sql”. Вижу несколько обращений с IP-адресами, протоколами и другими параметрами.


Фильтр в эксплоите.

Похоже на сканирование — нужно проверить. В Wireshark открываю пакет 49187:


Содержание пакета.

Нахожу User-Agent и вижу значение sqlmap/1.7.10#stable. Делаем вывод, что для атаки злоумышленник использовал инструмент sqlmap версии 1.7.10. Готово — формируем флаг.

Интересные материалы по CTF


Если хотите ознакомиться с другими задачами CTF-турниров, рекомендую почитать предыдущие статьи на эту тему.

Комментарии (0)