KnightCTF 2024. Решаем задачи по сетям с CTF-турнира

KnightCTF 2024. Решаем задачи по сетям с CTF-турнира. Часть 2

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

Изображение записи

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

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

Задача: Hidden File

Условие

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

Дано

.pcap-файл

Решение

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

Wireshark. Содержание графика .pcap-файла.
Содержание bash-history. 

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

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


    $ python twin_cipher.py -d "37n3vq6rp6k05ov33o5fy5b33sj3rq2sy4p56735853h9"

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

Задача: Confidential

Условие

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

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

Дано

.pcap-файл

Решение

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

Wireshark. Содержание графика .pcap-файла.
Содержание трафика. 

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

Wireshark. Список объектов HTTP.
Список HTTP. 

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

.docx-файл с картинкой.
Изображение в архиве.

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

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

Задача: Super Admin

Условие

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

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

Дано

Дамп SQL

Решение

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

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

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

Декодированный пароль — letmeinroot.

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

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

Задание: Famous Tool 2

Условие

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

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

Дано

.pcap-файл

Решение

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

Код эксплоита .pcap-файл.
Фильтр в коде — эксплоит.

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

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

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

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

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