KnightCTF 2024. Решаем задачи по сетям с CTF-турнира. Часть 2
Разбираем задачи с турнира по информационной безопасности. Пригодится новичкам, которые хотят прокачать свои навыки.
В прошлой статье мы рассказывали о турнире KnightCTF 2024, который организовала команда из Бангладеша. Но туда вошли не все задачи. В статье расскажем еще о четырех из категории networking. Читайте далее — узнаете, как получить секретную информацию в bash-history и найти пароль админа среди дампа.
Дисклеймер: материал не обучает хакингу и не призывает к противозаконным действиям. Все описанное ниже лишь демонстрирует, какие пробелы в безопасности встречаются в реальных веб-приложениях. И предупреждает, на что нужно обратить внимание при разработке программного обеспечения.
Задача: Hidden File
Условие
Какой флаг у скрытого файла?
Дано
Решение
В прошлой части мы решали задачу Port, в которой нужно было найти номер порта (6200/tcp) у обратной оболочки сервера. Из кода эксплойта можно понять, что для коннекта использовался telnet, поэтому все команды были перехвачены в открытом виде. Оттуда получаем 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:
Распаковываем архив. Внутри — .docx-файл с картинкой. На ней изображен маскот рыцаря KnightCTF 2024:
Формат .docx — тоже архив, нужно его открыть. В нем находятся три папки с файлами и XML-документ.
С помощью обычного поиска по тексту ищем в названии KCTF. Находим флаг в maybeconfidential/maybeconfidential/word/document.xml. Задача решена!
Задача: Super Admin
Условие
Какой пароль у суперадминистратора в веб-приложении? Загрузите дамп SQL, чтобы решить задачу. Он может понадобиться вам для решения других задач.
Формат флага: KCTF{password}
Дано
Дамп 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-турниров, рекомендуем почитать предыдущие статьи на эту тему.