• Твой профиль заполнен на 0%. Заполни за 1 минуту, чтобы тебя нашли единомышленники и работодатели. Заполнить →

Статья CTF для начинающих: как выбрать категорию и не убить мотивацию на первом соревновании

Кодовый замок на тёмном антистатическом коврике, три цифры отмечены зелёными галочками, остальные растворяются в тени. Позади светится экран ноутбука с терминалом и категориями задач.


Я помню свой первый CTF. Открыл задачу из категории PWN, увидел бинарник без исходного кода, загрузил в Ghidra - и следующие четыре часа пялился на что-то, отдалённо напоминающее C, но абсолютно нечитаемое. Ноль решённых задач, ощущение полной некомпетентности и желание никогда больше не возвращаться к соревнованиям по кибербезопасности.

Проблема была не в моих знаниях. Я начал не с той категории. Если бы в тот день я открыл задачу на crypto с тегом «Caesar» или взял простой web-таск с SQL-инъекцией - первый флаг был бы через 20 минут, и я остался бы на волне. Вместо этого полез в самую сложную категорию и закономерно обломался.

Эта статья - то руководство, которого у меня не было. Не «что такое CTF» (вы и так это знаете, раз читаете), а конкретный план: какие CTF категории задач дают быстрый результат, какие платформы использовать, какие инструменты поставить и как выстроить подготовку к CTF так, чтобы через месяц вы стабильно решали задачи уровня easy-medium.

Форматы CTF соревнований для новичков: почему Jeopardy - ваш единственный выбор на старте​

CTF соревнования делятся на два основных формата: Jeopardy и Attack-Defense. Если вы новичок - забудьте про Attack-Defense минимум на полгода.

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

Attack-Defense - команды получают одинаковую уязвимую инфраструктуру. Нужно одновременно атаковать чужие сервисы и защищать свои. Тут автоматизация эксплойтов, патчинг на лету, координация в команде из 5-10 человек. Если вы не можете уверенно объяснить, чем reverse shell отличается от bind shell - в Attack-Defense вы будете балластом.

Начинайте с Jeopardy. Участвовать можно в одиночку. Задачи решаются в своём темпе. Ошибки никому не видны. Это ваш полигон.

CTF категории задач: честный рейтинг сложности для тех, кто начинает с нуля​

Вот то, чего не пишут ни в одном русскоязычном руководстве: не все категории CTF одинаково доступны новичку. Есть задачи, которые решаются за вечер после прочтения одной статьи. А есть категории, где без полугода подготовки вы не сдвинетесь с места. Разберём каждую - от самой простой к самой сложной для человека без опыта.

Misc и Crypto начального уровня - первые флаги за 15 минут​

Misc (она же Joy) - задачи, которые не вписываются в другие категории. Часто это головоломки: декодирование base64, работа с необычными системами счисления, эзотерические языки программирования вроде Brainfuck, поиск паттернов в данных. Большинство Misc-задач уровня easy решаются через CyberChef - онлайн-тулза, которая умеет делать сотни преобразований данных.

1776446496174.webp


Crypto начального уровня - это не RSA и не эллиптические кривые. Это шифр Цезаря, ROT13, XOR с коротким ключом, base64-кодирование. На PicoCTF задачи с тегами «Caesar» и «ROT13» решаются буквально за минуту, если вы знаете, что такое подстановочный шифр. Задачи по криптографии напрямую связаны с реальными техниками - в MITRE ATT&CK деобфускация данных описана как Deobfuscate/Decode Files or Information (T1140, Defense Evasion), а в реальных атаках злоумышленники кодируют и шифруют вредоносные файлы для обхода детекта - T1027.013 (Encrypted/Encoded File). Навыки распознавания кодировок и шифров, полученные на CTF, потом пригодятся при разборе реальных артефактов.

Стартовый набор: откройте CyberChef, загрузите строку, попробуйте операцию Magic (автоопределение кодировки). Для шифра Цезаря - ROT13 с перебором сдвига. Для base64 - echo "строка" | base64 -d в терминале. Для начала хватит за глаза.

Web - самая популярная и самая полезная категория​

Если вы хотите строить карьеру в кибербезопасности, web-категория - ваш главный приоритет после первых побед в Misc и Crypto. Задачи на веб-безопасность проверяют умение находить и эксплуатировать уязвимости в веб-приложениях: SQL-инъекции, XSS, SSRF, path traversal, broken authentication.

Web-задачи на CTF моделируют технику Exploit Public-Facing Application (T1190, Initial Access) из MITRE ATT&CK - ту самую, которая используется в реальных атаках на веб-сервисы. Это не абстрактные головоломки, а практические навыки пентестера.

Порог входа средний. Нужно понимать HTTP-протокол (методы GET/POST, заголовки, cookies), базовый SQL и основы HTML/JavaScript. Если вы знаете, что такое SELECT * FROM users WHERE id=1 - простейшую SQL-инъекцию уже осилите.

Главный инструмент - Burp Suite Community Edition. Он перехватывает HTTP-запросы, позволяет их модифицировать и отправлять заново. На старте достаточно освоить вкладки Proxy и Repeater. Также изучите OWASP Top 10 - список десяти наиболее критичных веб-уязвимостей. Большинство CTF-задач на web строятся именно вокруг него.

Forensics и OSINT - когда не нужно писать код

Forensics - анализ цифровых артефактов: дампов памяти, PCAP-файлов сетевого трафика, образов дисков, файлов с метаданными. Задачи по форензике учат работать с Wireshark (анализ трафика), exiftool (метаданные файлов), binwalk (извлечение вложенных файлов), strings (поиск читаемых строк в бинарных файлах). Команда strings файл | grep -i flag - буквально первое, что стоит попробовать в любой forensics-задаче. Лично я начинаю именно с неё - удивительно, как часто флаг валяется прямо в открытом виде.

OSINT (Open Source Intelligence) - поиск информации в открытых источниках. Вам дают никнейм, фрагмент фото, координаты - нужно раскопать флаг, используя Google, социальные сети, Wayback Machine и dorking-операторы. OSINT не требует навыков программирования, но требует системного мышления и упорства.

Обе категории доступны новичкам, но имеют особенность: задачи бывают либо очень простыми (найди метаданные в картинке), либо крайне сложными (восстанови удалённый файл из дампа памяти). Средних вариантов мало.

Stegano - скрытая информация, которую надо уметь искать​

Стеганография - сокрытие данных внутри обычных файлов: изображений, аудио, видео. В MITRE ATT&CK стеганография описана в двух контекстах: T1001.002 (Steganography) - сокрытие данных C2-канала внутри легитимных файлов или протоколов, и T1027.003 (Steganography) - обфускация вредоносных данных для обхода детекта. CTF-задачи чаще моделируют второй сценарий.

На CTF стеганографические задачи решаются инструментами вроде steghide, zsteg, stegoveritas. Типичный подход: проверить LSB (младшие биты пикселей), попробовать извлечь данные с паролем и без, проверить спектрограмму для аудиофайлов. Категория нишевая, задач обычно мало, но решаются они быстро - если знаешь инструменты. Не знаешь - можно просидеть час, тупо пялясь в PNG.

Reverse и PWN - куда не стоит лезть первые три месяца​

Я ставлю эти категории в конец намеренно. Reverse Engineering - анализ скомпилированных бинарных файлов без исходного кода. Тут нужны Ghidra или Binary Ninja, понимание ассемблера (x86/x64), структуры ELF/PE-файлов, calling conventions. Это месяцы изучения.

PWN (Binary Exploitation) - поиск и эксплуатация уязвимостей в бинарных файлах: buffer overflow, format string, use-after-free, ROP-chains. Кроме знания ассемблера нужно понимать работу стека, кучи, механизмов защиты (ASLR, NX, canaries). Основной инструмент - pwntools (Python-библиотека для написания эксплойтов), но даже с ним порог входа высочайший.

Техники PWN напрямую связаны с Exploitation for Privilege Escalation (T1068) и Exploitation for Client Execution (T1203) в MITRE ATT&CK, но на старте вам нужна теоретическая база, которую за неделю не набрать.

Мой совет: если вы новичок - пропустите Reverse и PWN на первых 3-5 соревнованиях. Вернитесь к ним, когда уверенно решаете web и crypto среднего уровня. Серьёзно, не повторяйте мою ошибку из первого абзаца.

Capture the flag обучение: где тренироваться​

PicoCTF - идеальная точка входа​

PicoCTF - платформа от Carnegie Mellon University, заточенная под обучение. Задачи отсортированы по сложности, есть подсказки (hints), категории покрывают весь спектр: General Skills, Cryptography, Web Exploitation, Forensics, Binary Exploitation, Reverse Engineering.

Почему именно picoCTF для старта:
  • Задачи не исчезают - архив доступен круглый год
  • Сложность начинается с абсолютного нуля (буквально: «выполните команду ls в терминале»)
  • Каждая задача имеет баллы и теги - легко выбрать свой уровень
  • Есть встроенная веб-оболочка - не нужно настраивать локальное окружение
Начните с категории General Skills на 50-100 очков, затем переходите в Cryptography и Web Exploitation.

HackTheBox для начинающих и TryHackMe​

TryHackMe - лучший вариант для тех, кто хочет пошаговое руководство. Платформа предлагает «комнаты» (rooms) с подробными инструкциями. Комната «CTF collection Vol.1» - хорошая тренировка базовых навыков: base64, exiftool, стеганография, шифр Цезаря.

HackTheBox - ступень выше. Тут есть раздел Challenges (изолированные задачи по категориям) и Machines (полноценные виртуальные машины для пентеста). Начинайте с Challenges уровня Easy.

OverTheWire - серия wargames по безопасности. Bandit - идеальная игра для освоения Linux-командной строки. Если вы не уверены в базовых командах cd, cat, grep, find - пройдите Bandit до 15-го уровня прежде, чем браться за CTF. Потренируйтесь на кошках, так сказать.

CTFtime - расписание живых соревнований​

CTFtime - агрегатор CTF-событий со всего мира. Тут публикуется расписание предстоящих соревнований, рейтинги команд, архивы задач и writeup-решения. Фильтруйте по весу (weight) - чем ниже вес, тем проще соревнование. События с весом 0-25 обычно подходят для новичков.

Не ждите «идеального момента». Зарегистрируйтесь на ближайший CTF с весом до 30 на CTFtime, решите хотя бы одну задачу - и вы уже участник.

Подготовка к CTF: пошаговый план первых 30 дней​

Вот конкретный план, который я даю участникам своих воркшопов. Ни одного абстрактного «изучите криптографию» - только действия.

Дни 1-3: Среда. Установите виртуальную машину с Kali Linux через VirtualBox или VMware. Kali идёт с большинством нужных инструментов из коробки. Минимальные требования к хосту: 4-ядерный процессор, 16 ГБ RAM (8 ГБ - абсолютный минимум, но VM будет тормозить). Для VM выделите 2–4 ГБ. Пройдите уровни 0-10 Bandit на OverTheWire, чтобы освоить Linux CLI.

Дни 4-7: Первые флаги. Зарегистрируйтесь на PicoCTF. Решите 10 задач из General Skills (50-100 очков). Перейдите в Cryptography - возьмите задачи с тегами Caesar, base64, XOR. Используйте CyberChef для всех преобразований. Документируйте каждое решение в заметках (это важно - через неделю вы не вспомните, как решали).

Дни 8-14: Web-основы. Прочитайте OWASP Top 10. Установите Burp Suite Community Edition. Научитесь перехватывать запросы через Proxy и модифицировать их в Repeater. Решите 5 web-задач на PicoCTF уровня easy. Попробуйте комнату OWASP Top 10 на TryHackMe.

Дни 15-21: Forensics и инструменты. Установите Wireshark и откройте любой PCAP-файл с задачи. Научитесь фильтровать трафик: http.request.method == "POST", tcp contains "flag". Попробуйте strings, exiftool, binwalk на файлах из forensics-задач PicoCTF.

Дни 22-28: Первое живое соревнование. Найдите на CTFtime ближайший Jeopardy-CTF с низким весом. Зарегистрируйтесь. Во время соревнования решайте только Misc, Crypto и Web - игнорируйте PWN и Reverse. После окончания прочитайте writeup к каждой задаче, которую не решили. Каждой - это не преувеличение.

Дни 29-30: Ретроспектива. Запишите, какие категории дались легко, какие - нет. Скорректируйте план на следующий месяц. Если web пошёл хорошо - копайте глубже в web. Если forensics зацепил - двигайтесь в forensics.

Инструменты для CTF: минимальный набор без которого не обойтись​

Не нужно ставить 50 утилит. Вот то, что реально используется на каждом соревновании:

КатегорияИнструментДля чего
УниверсальныйCyberChefДекодирование, шифры, преобразования данных
WebBurp Suite CEПерехват и модификация HTTP-запросов
ForensicsWiresharkАнализ сетевого трафика (PCAP)
Forensicsstrings, file, xxdБыстрый анализ неизвестных файлов
ForensicsexiftoolЧтение метаданных файлов
ForensicsbinwalkИзвлечение вложенных данных из файлов
CryptoPython 3 + стандартная библиотекаСкрипты для расшифровки
Steganosteghide, zstegИзвлечение скрытых данных из изображений
ReverseGhidraДекомпиляция бинарных файлов
Общийgrep, find, awkПоиск паттернов и фильтрация данных

Python - ваш главный язык для CTF. Даже если вы не программист, выучите базовый синтаксис: циклы, работу со строками, чтение файлов. Python используется повсеместно - и в атаке, и в защите. В MITRE ATT&CK техника T1059.006 (Command and Scripting Interpreter: Python) описывает злоупотребление интерпретатором Python для выполнения вредоносного кода - в CTF-задачах это часто моделируется через Python sandbox escape.

Типичный скрипт для перебора шифра Цезаря, который вы будете использовать десятки раз:
Python:
cipher = "ВАША_ЗАШИФРОВАННАЯ_СТРОКА"
for shift in range(26):
    decoded = ""
    for ch in cipher:
        if ch.isalpha():
            base = ord('A') if ch.isupper() else ord('a')
            decoded += chr((ord(ch) - base - shift) % 26 + base)
        else:
            decoded += ch
    print(f"Shift {shift}: {decoded}")
Скрипт перебирает все 26 возможных сдвигов - один из них даст читаемый текст с флагом.

Как читать CTF writeup и превратить чужой опыт в свой навык​

CTF writeup - описание решения задачи, опубликованное другим участником. Writeup-ы - ваш главный источник обучения после соревнования. Но есть правильный и неправильный способ их читать.

Неправильно: открыть writeup, скопировать команды, получить флаг, закрыть вкладку. Вы ничему не научитесь. Проверено - сам так делал первый месяц.

Правильно - метод трёх проходов:
  1. Прочитайте только первый абзац (описание подхода). Закройте writeup. Попробуйте решить задачу самостоятельно, зная направление.
  2. Если застряли - прочитайте до следующего ключевого шага. Снова попробуйте сами.
  3. Прочитайте полностью. Для каждой команды ответьте на вопрос: «Почему автор использовал именно этот инструмент, а не другой?»
После прочтения обязательно воспроизведите решение руками. Не копируйте - перепечатайте каждую команду. Это создаёт мышечную память и заставляет мозг обрабатывать каждый аргумент.

Где искать writeup-решения: CTFtime (раздел Writeups у каждого события), блоги участников, YouTube-каналы с разборами. По данным Intigriti, один из самых эффективных методов обучения - изучение чужих writeup с воспроизведением решений в своей среде.

Типичные ошибки при подготовке к CTF соревнованиям​

За два года менторства я собрал устойчивый список ошибок, которые совершают все новички без исключения.

Начинать с теории, а не с практики. Я видел людей, которые три месяца читали книги по криптографии, прежде чем открыть первую задачу. В CTF не нужно знать теорию досконально - нужно уметь распознать паттерн и подобрать инструмент. Пересказывать учебник в сотый раз не вижу смысла - открывайте задачу и разбирайтесь по ходу.

Пытаться решить всё. На соревновании 30 задач из 8 категорий. Новичок пытается открыть каждую и тратит по 10 минут на задачи, которые ему не по силам. Вместо этого - откройте все, быстро оцените, выберите 5-7 из своих сильных категорий и сосредоточьтесь на них.

Не документировать процесс решения. Через неделю вы не вспомните, какой ключ использовали для расшифровки. Ведите заметки в любом удобном формате - хоть в текстовом файле. Записывайте: условие задачи, что пробовали, что сработало, какие инструменты использовали. По данным Intigriti, документация шагов - один из ключевых навыков для роста в CTF.

Застревать в rabbit holes. Вы уверены, что флаг спрятан именно в этом заголовке HTTP-ответа, и тратите два часа на его анализ. А флаг был в cookie. Правило: 30 минут без прогресса - переключайтесь на другую задачу. Вернётесь со свежей головой.

Игнорировать описание задачи. Организаторы CTF часто прячут подсказки прямо в тексте условия. Название задачи, описание, теги, иногда даже имя автора - всё может указывать на метод решения. Задача называется «Julius»? Скорее всего, это шифр Цезаря (Юлия Цезаря). Не будем торопиться с выводами, но и очевидные подсказки пропускать глупо.

Работать без команды слишком долго. CTF - командный спорт. Даже если вы участвуете в одиночку на тренировке, найдите Discord-сервер или Telegram-чат, где можно обсудить подходы. Сообщества на CTFtime, форумы Codeby, Reddit r/securityCTF - везде есть люди, которые помогут, если вы сформулируете конкретный вопрос (а не «помогите, ничего не работает»).

От первого флага к стабильным результатам​

CTF для начинающих - не про «стать хакером за выходные». Это про системный подход: выбрать правильную категорию, взять задачу по силам, решить её, разобрать чужие решения, повторить. Через месяц такой практики вы будете уверенно решать easy-задачи. Через три - стабильно закрывать medium. Через полгода - задумаетесь о Reverse и PWN.

Не ждите готовности. Зарегистрируйтесь на PicoCTF прямо сейчас, откройте первую задачу из General Skills и захватите свой первый флаг. Всё остальное - итерации.

Каждый человек в топ-10 на CTFtime когда-то тоже не знал, что == в конце строки означает base64. Разница между ними и теми, кто бросил - не в таланте. В количестве решённых задач.
 
Последнее редактирование модератором:
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab