С чего начать пывнить: CTF и площадки с тасками
https://t.me/sploitdev
В предыдущей статье мы кратко разобрали как можно прокачать навыки бинарной эксплуатации.
В этой статье подробнее расскажем о CTF и площадках.
CTF
Ваше путешествие в CTF всегда начинается с https://ctftime.org/. Здесь можно следить за ивентами по всему миру и активностью топовых команд.
Если вы раньше не играли в CTF, то первое время советуем играть во все подряд. По мере развития можете переходить только на сложные контесты.
При выборе соревнования ориентируйтесь на рейтинг и команду разработки. Чем больше ивентов с хорошим рейтингом у команды — тем лучше. Если CTF нужен вам только как вариант вхождения в бинарную эксплуатацию, не обязательно искать команду. Просто решайте задания из категории PWN.
Площадки
Существует несколько площадок. Большая часть ориентирована на Linux user space задачи под glibc, но есть и другие темы. Некоторые площадки содержат только сложные задания, другие более лояльны к новичкам. Перечислим их от наиболее лояльных к более хардкорным.
pwn.spbctf.ru
Хороший вариант для новичков на русском. Есть видео в которых подробно объясняются базовые концепции. После видео можно потренировать на задачах по теме, очень удобно.
Контента не так много, не охвачены более сложные темы и некоторые задания однообразны.
HTB
Очень большое количество заданий из категории PWN. Но доступны они все только по премиум подписке, что удручает людей из РФ.
Минус в том, что некоторые задания однообразны и бессмысленны. Например, есть три задания подряд где нужно просто отправить большой буфер и это будет решением.
Из плюсов — площадка отлично подойдет чтобы набить руку. Обучающих материалов хоть и не много, но есть официальные разборы тасков.
www.root-me.org
Популярная площадка с хорошим набором тасков. Снова упор на Linux user space, но есть и задания на ядро Linux и Windows, браузеры и даже некоторая экзотика по типу эксплуатация под MIPS.
К некоторым таскам можно найти PDF-файлы с описаниями техник эксплуатации.
pwnable.kr
Очень старый ресурс, но здесь все еще можно найти прикольные задачи, в том числе и для начинающих. Здесь только задания, без обучающих материалов.
Сайт разбит на 4 части по уровням сложности.
- Toddler's Bottle — очень простые задания на знание языка C, программирование и Ассемблер.
- Rookiss — лёгкие задачи на бинарную эксплуатацию и окружения Linux.
- Grotesque — средний+ уровень сложности, есть интересные задачи.
- Hacker's Secret — сложный уровень с необычными заданиями.
Таски разнообразные и интересные — есть эксплуатация ядра, user space, особенности окружения Linux и прочее.
Для начала мы рекомендуем прорешать часть первой категории, полностью решить вторую и попробовать порешать таски из третьей и четвертой категорий.
pwnable.xyz
Не самая популярная площадка с большим количеством заданий. Напоминает предыдущую, но таски проще. Так же давно не обновляется. Первые задания вполне подойдут для начинающих.
pwnable.tw
Площадка в целом неплохая, но для начинающего может быть слишком сложной.
Она не обновлялась 4 года и содержит в только таски на Linux user space. Есть достойные задания, но в основном — много однообразных. Много задач на старые техники эксплуатации кучи и необычное поведение функций в libc.
Отдельно выделим серию из 3 задач на необычный shellcoding со странными ограничениями, довольно интересные.
Вот таски, с которых можно начать новичку:
- Start,
- orw,
- calc,
- 3x17,
- dubblesort,
- hacknote,
- Silver Bullet,
- applestore.
После советуем изучить известные атаки на кучу в glibc и продолжить решать.
alpacahack.com
Вариант для продвинутых. Почти все таски на PWN от известного в кругах пывнеров автора под ником ptr-yudai. Он делает очень качественные задачи на разные CTF и на этой площадке собраны самые интересные.
Есть задачи и из других категорий, а также активно проводятся мини-ивенты под названием «раунды». Раунд — это 4 задания на одну категорию с повышающимся уровнем сложности. Это формат соревнования для продвинутых, для начала работы с площадкой рекомендуем сосредоточиться на обычных тасках.
Путь начинающего
Если вы совсем не знаете с чего начать, советуем следующий маршрут:
- pwn.spbctf.ru — смотрите видео и пытайтесь решить все задачи.
- pwnable.kr — решайте перечисленные в нашем описании площадки задачи.
- pwnable.tw — решайте перечисленные в нашем описании площадки задачи.
- www.root-me.org — решайте несложные задачи.
Пункт со звездочкой: если у вас есть возможность оформить подписку HTB — на первых этапах решайте таски от простого к сложному.
Путь продвинутого
У более опытного пывнера нет цели, есть только путь. Мы советуем следующий:
- pwnable.tw и pwnable.kr — решайте сложные задания.
- alpacahack.com — решайте таски из архива и участвуйте в PWN-контестах.
- www.root-me.org — решайте задания на эксплуатацию ядра, бразуера и прочее не Linux user space.
Путь профи
Если вы дошли до этого уровня и считаете себя профи — поздравляем, площадки вам больше не нужны. Выбирайте самые сложные CTF-соревнования и вперед!
Но если очень хочется порешать что-то, то попробуйте закрыть pwnable.tw и pwnable.kr, а также самые сложные задачи с www.root-me.org.
В следующей статье мы разберем полезные проекты с GitHub.
Не переключайтесь!