Блог Сергея Попова
Фотография
нажмите — покажем
нажмите — покажем
Пять команд в терминале вместо двадцати минут в Wireshark: как решать network-таски на CTF
Пока кто-то кликает по меню Statistics → Protocol Hierarchy в графическом интерфейсе, три флага уже улетают в скорборд. На KnightCTF 2024 пять задач из категории networking решались чистым tshark — без единого запуска GUI.
🔍 Первое действие с любым pcap-файлом — не открывать Wireshark, а набрать:
strings capture.pcap | grep -i "flag{"
Подставляешь формат флага из условия (KCTF{...}, flag{...}, ctfa{...}) и в части задач получаешь ответ за одну секунду. Флаг нередко лежит в открытом виде прямо в трафике — организаторы закладывают это намеренно.
Если не сработало — второй шаг: смотрим распределение протоколов.
tshark -r capture.pcap -q -z io,phs
На выходе — дерево с процентами. Видишь 95% HTTP и крошечную долю FTP или странные DNS-запросы? Вот туда и копай. Аномалия в протокольном распределении — почти всегда указатель на флаг.
⚡ Три главных места, где прячут флаги в HTTP-трафике:
• GET-параметры URL — что-то вроде /page.php?secret=flag{abc}
• POST-тело — формы логина, загрузка файлов
• Нестандартные заголовки ответа — X-Flag, X-Secret-Data
Отдельная история — заголовок Authorization: Basic. Встретил строку вроде dXNlcjpwYXNz? Это Base64. Декодируешь одной командой: echo "dXNlcjpwYXNz" | base64 -d → user:pass. В CTF-задачах Base64 встречается повсюду: HTTP-заголовки, поддомены DNS, тело FTP-передач.
🕵️ DNS exfiltration — ещё один классический паттерн. Атакующий кодирует данные в поддоменах DNS-запросов: ZmxhZ3s.evil.com. Выглядит как обычный резолв, а на деле — канал утечки. Кстати, flag{ в Base64 выглядит как ZmxhZ3s — запомни этот паттерн, он экономит время на каждом втором соревновании.
Что касается FTP — протокол передаёт логины и пароли открытым текстом. Если в pcap есть FTP-сессия, креды достаются элементарно. Фильтруешь по ftp.request.command == "PASS" — и вот они.
📌 Минимальный набор для старта:
• tshark — фильтрация, follow stream, экспорт объектов
• strings + grep — быстрый поиск по бинарнику
• base64 — декодирование на лету
• binwalk -e — извлечение вложенных файлов (картинки, архивы, документы)
Всё это есть в любом Linux из коробки. Kali — вообще без доустановки. RAM от 4 ГБ, сеть не нужна, pcap-файлы на CTF редко превышают 50 МБ.
Когда GUI всё-таки нужен? Файлы от 500 МБ с десятками тысяч потоков, визуальный анализ ретрансмиссий и временных диаграмм. Но на типичном CTF — терминал быстрее.
В полной статье — пошаговый разбор реальных задач с KnightCTF и CTF Academy: follow stream через CLI, извлечение файлов из трафика и декодирование DNS-эксфильтрации. Забирай в закладки 👇
https://hackerlab.pro/blog/setevoy-analiz-ctf-razbiraem-http-ftp-i-dns-v-trafike-i-dostaem-flag-bez-wireshark-ekspert
42 · 1.5K ·