CTF. Первые шаги
КапибарыВсем привет!
Сегодня мы начнем нашу серию постов о CTF. Что это такое и с чем их едят? Что нужно знать, чтобы в них участвовать? Зачем это нужно? И немножко поговорим о программах, которые вам в этом пригодятся 😁
Наши заметки будут рассчитаны на школьников, поэтому не судите строго, если что-то где-то будет на уровне "а это мы будем изучать потом". Если где-то что-то тяжело и непонятно, то не стесняйтесь писать об этом в комментариях.
Мы уже писали, но давайте еще раз вспомним, что CTF (Capture the flag) - это соревнования по компьютерной безопасности, целью которых является получение наибольшего числа флагов. Они могут быть как командными, так и индивидуальными (намного реже). Обычно в них участвуют командами в составе 3-5 человек, и одному игроку будет очень тяжело.
Выделяют два основных формата проведения CTF: task-based и attack-defense. Первые, task-based или как их еще называют Jeopardy, основаны на решении задач различных категорий. Первое время мы будем рассказывать только о них. Баллы там даются за каждый сданный флаг (строка, полученная при решении задания), в зависимости от сложности задания.
Кроме этого, CTF бывают еще и Attack-Defense. В них участникам предоставляется образ с уязвимыми сервисами (сайтами, FTP и т.п.). Они должны развернуть свой сервер и закрыть его уязвимости, и при этом атаковать уязвимости сервисов у других команд. Баллы даются за атаку (сданный флаг) и за защиту (работоспособность сервисов).
CTF сейчас существует очень много, есть попроще, есть посложнее, а есть и полигоны, на которых можно неспеша тренировать свои навыки. У нас на канале мы будем потихоньку их разбирать и публиковать анонсы.
Отдельно будем предупреждать о CTF именно для школьников, и, особенно, российских, которые дают красивые сертификаты, которые можно добавить себе в Портфолио.

CTF-турниры очень популярны среди людей самого разного возраста — от школьников и студентов до состоявшихся профессионалов. Зачем же тебе участвовать в CTF?
Во-1, это куча удовольствия и положительных эмоций 😁🥳🥇
во-2, это возможность получить новые знания и навыки в области компьютерной безопасности. Посмотри статью про пентестеров.
в-3, здесь можно познакомиться с людьми, которые разделяют твои интересы
в-4, участвовать в соревнованиях можно откуда угодно, хочешь из любимой кровати, а хочешь и вместе с друзьями в одном помещении 😀
и, конечно, показать свои знания и умения другим 🤩
CTF – это вызов! Это игра, которая затягивает, и когда ты в них участвуешь, как и при занятиях спортом, мозг запускает выработку серотонина, и это очумело стимулирует развитие навыков и компетенций! 🥳🥇
Присоединяйся к нам! Участвуй в CTF!

Какие же бывают задачи в CTF
#crypto (криптография) — такие задания связаны с расшифровкой сообщений, защищенных различными алгоритмами (от самых простейших до современных шифров). Мы обязательно их разберем в ближайшее время!
#stego (стеганография) — наука о тайной передаче информации путем сокрытия самого факта передачи. В них тебе нужно найти, как именно и какую информацию передали. Тоже попробуем порешаем их.
#web — поиск уязвимостей на серверах и сайтах.
#reverse (rev, реверс-инжиниринг) — исследование кода программного обеспечения, могут быть любые языки, как интерпретируемые (в них команды легко читаются), так и компилируемые, и даже со своей ВМкой (виртуальной машиной). Очень сложная тема. Будем изучать позже, может быть даже через полгода-год.
#OSINT (recon) — поиск информации по открытым источникам, в том числе по фотографиям (гео OSINT). Классная штука! Интересная, актуальная и несложная 😁
#forensics — поиск следов вирусов и взлома или компьютерная криминалистика. Это направление посложнее и нужен опыт. Но попроще, чем реверс и взлом 😁
#pwn — взлом сервисов или системы. Очень сложная тема. Будет сильно попозже.
#misc (joy) — развлекательные задачи разнообразной тематики.
На этом знакомство с CTF можно считать завершенным. Надо приступать к подготовке рабочего места 😁 И мы его начнем создавать с виртуальных машин.
Виртуальная машина - это программа, которая позволяет превратить часть ресурсов твоего компьютера в отдельный. Для чего это нужно? Во-1, чтобы не захламлять во время CTF основную машину. Потому что приходится качать кучу всякой ненадежной ерунды. Во-2, для каждого направления можно настроить отдельную виртуалку. Например, для реверса или работы со звуком винда смотрится повыигрышнее, ту же стеганографию лучше делать в докере, который лучше работает под Линуксом, а задачи с bash'ом вообще не сделаешь без него.
Какую программу для работы с виртуальными машинами лучше выбрать? Давайте остановимся на VirtualBox'е. Да, VMware помощнее, но она платная, а это дополнительные "издержки". Или финансовые, или временные :)
Первым шагом мы скачиваем дистрибутив с официального сайта. Какую версию выбрать? Все зависит от операционной системы host (это твоя основная Ось). Кстати, ты уже знаком с жаргоном программистов? Скачав дистрибутив, сразу скачивай и Oracle VM VirtualBox Extension Pack. Он очень нужен для устойчивой работы твоей виртуалки.
Установка VirtualBox сложностей не вызывает - далее, далее, и далее (ссылка на руководство). Параллельно мы качаем образы для нас. В качестве Линукса предлагаю взять Kali Linux (это сборка для пентестеров и безопасников, а вот здесь - хорошая статья про то, что не надо надеяться только на него 😁). Ссылка для скачивания виртуальной машины под VirtualBox. Скачали, распаковали Winrar, два раза щелкнули по файлу. Можно настройки не менять, запустили, логин/пароль kali/kali. И потихоньку начинаем осваивать Linux. Ссылочки в помощь:
https://selectel.ru/blog/tutorials/linux-for-beginners/
https://itproger.com/course/linux
https://habr.com/ru/articles/655275/
Виртуалку для Windows можно взять с официального сайта (но работает только два месяца) или сделать самостоятельно. 😁
Все наши утилиты мы будем выкладывать в виде контейнера для Docker. Это специальная прога, которая позволяет «упаковать» кучу приложений со всем его окружением и зависимостями в контейнер и быстро его развернуть.
Чуть-чуть ссылок на тему как с ним работать:
https://habr.com/ru/articles/659049/
https://habr.com/ru/articles/310460/
https://habr.com/ru/articles/358774/
Установка в винде происходит через инсталлятор с официального сайта, а в линуксе штатно, через apt-get.
На этом, наверное, пока все. Пробуем, осваиваемся, если что непонятно, пишем!