В мире соревнований по информационной безопасности (CTF — Capture The Flag) существует множество заданий‚ построенных на игре слов и нестандартном мышлении․ Одним из таких классических челленджей стал таск «404 Flag Not Found» (категория misc‚ 80 очков)‚ представленный на соревновании Internetwache CTF 2016․ В этой статье мы подробно разберём суть задания‚ методику его решения и извлечённые уроки․
Условие задачи
Описание задания звучало предельно лаконично:
«Я попытался скачать флаг‚ но почему-то получил только ошибки 404 :(»
К заданию прилагался архив misc80․zip‚ внутри которого находился файл сетевого трафика (pcap-дамп)․ Уже из описания становилось ясно‚ что речь идёт об анализе сетевых пакетов и‚ вероятно‚ об HTTP-запросах‚ завершившихся ошибкой 404․
Первичный анализ трафика
Открыв дамп в Wireshark‚ участники обнаруживали следующую картину:
- DNS-трафик — несколько запросов на разрешение доменных имён;
- серия HTTP GET-запросов к некоему ресурсу;
- ответы сервера с кодом 404 Not Found — то есть запрашиваемый «флаг» якобы не существовал․
На первый взгляд трафик выглядел бесполезным: сервер ничего не отдал‚ контента нет․ Однако в CTF-заданиях категории misc данные часто прячутся там‚ куда обычно никто не смотрит․
Ключ к решению: TCP-флаги
Внимательный анализ параметров TCP-пакетов показал аномалию: значений флагов TCP было подозрительно много‚ и они варьировались от пакета к пакету без видимой логической причины․ Это классический приём скрытой передачи данных — стеганография в заголовках протокола․
Алгоритм извлечения выглядел так:
- Отфильтровать нужные TCP-пакеты в Wireshark․
- Извлечь значения поля TCP flags из каждого пакета (например‚ с помощью tshark или скрипта на Python с библиотекой scapy)․
- Интерпретировать байты значений флагов как ASCII-символы․
При извлечении первых байт исследователи заметили знакомую сигнатуру — магические байты PDF-файла (%PDF)․ Это подтвердило правильность направления: в полях флагов был зашит целый файл․
Восстановление файла и получение флага
Собрав все байты в правильном порядке‚ участники восстанавливали PDF-документ‚ внутри которого и находился искомый флаг в стандартном формате соревнования․ Задание было решено 153 командами‚ что говорит о его средней сложности: оно требовало знания сетевых протоколов и внимательности‚ но не глубокого реверс-инжиниринга․
Похожие задания и вариации
Тема «404» в CTF встречается неоднократно:
- 404CTF (Франция‚ DGSE и Télécom SudParis) — крупное соревнование‚ где формат флага выглядит как
404CTF{․․․}‚ а в ряде заданий требовалось вычислить MD5 от названия улицы в нижнем регистре без акцентов‚ с заменой пробелов на дефисы․ - Команда «404 Flag Not Found» — участники OWASP Kathmandu 7th Meetup CTF‚ победившие в веб-категории (состав: Гришма А․‚ Джениш Ш․‚ Гаджендра М․*)․
- Задания на обход авторизации‚ где изменение запроса меняет код ответа с 401 на 404‚ что указывает на возможность обхода слоя авторизации․
Задание «404 Flag Not Found» отлично иллюстрирует базовые принципы решения CTF-тасков категории misc/forensics:
- Не доверяйте очевидному, ошибка 404 может быть лишь ширмой;
- Изучайте все поля пакетов — данные могут скрываться в заголовках TCP‚ IP‚ DNS;
- Ищите магические байты — сигнатуры известных форматов (PDF‚ ZIP‚ PNG) помогают понять структуру скрытых данных;
- Автоматизируйте извлечение, tshark‚ scapy и простые скрипты экономят часы ручной работы․
Такие челленджи, отличный тренажёр для начинающих специалистов по сетевой криминалистике и анализу трафика․