С чего начать пывнить
https://t.me/sploitdev
Если вы решили вступить на странный и непонятный путь поиска уязвимостей и написания эксплоитов, у вас есть несколько вариантов как можно изучить эту тему и практиковаться.
Выделим основные подходы:
- Решать CTF и изучать подобные площадки с разной степенью поиска уязвимостей и «искусственности» тасков.
- Разбирать обучающие проекты с GitHub. Например, HEVD, любые курсы Binary exploitation 101 и похожее.
- Изучать большие обучающие ресурсы по типу pwn.college.
- Читать разборы боевых CVE, разбираться самому на основе готовых эксплоитов, диффать патчи на 1-day уязвимости и писать эксплоиты.
Первые три метода похожи тем, что это тренировочные задания. Они помогут правильно настроить майндсет, научиться обращать внимание на мелкие специфические детали и познакомиться с инструментами. Но не все из них содержат прикладные знания для создания боевых эксплоитов.
В этой статье кратко опишем каждый подход.
CTF и площадки
CTF — очень популярный способ входа в offensive. Подходит для изучения как веб-приложений, так и для бинарных. CTF хорош тем, что задания всегда имеют одно заложенное автором решение, а иногда и больше.
Задания на поиск бинарных уязвимостей и написание эксплоитов называются PWN или Exploit (очень редко). Также можно встретить объединение задач на бинари в одну категорию Binary (тоже редко).
Соревнования бывают разной сложности: от базовых заданий на написание простейшей ROP-цепочки, до новых сложных техник эксплуатации или поиска 0-day.
Таких ивентов очень много, следить за ними можно на ctftime.org. При выборе соревнований стоит учитывать рейтинг и команду организаторов. Но если вы только начинаете путь, рекомендуем играть во всё подряд.
Отдельно стоит сказать о CTF-подобных площадках с набором тасков. Их главный плюс в том, что вы можете решать задания в комфортном для вас темпе, не ограниченом длительностью ивента.
А если где-то застрянете, можно спросить совет или найти готовое решение в интернете и разобрать его. Но к этому варианту не рекомендуем прибегать до полного отчаяния и осознания, что вы совсем не понимаете куда двигаться.
Ниже приведём список популярных площадок:
Обучающие проекты
Этот подход подход похож на CTF, но отличается тем, что нет конкретной площадки. Вы не ограничены временем и доступностью сайта.
Также нет финального ответа на каждое задание. Нужно просто проэксплуатировать уязвимость, запустить калькулятор или получить максимальные привелегии.
Такие проекты можно найти на GitHub. Это репозитории, где разложены задания с небольшим описанием.
Часто в них содержится вводная информация и подробные решения на каждое задание. А еще можно посмотреть решения других людей.
Этот вариант тренировки и обучения хорош тем, что нет гонки за рейтингом и вы всегда можете сразу посмотреть райтапы.
Примеры проектов:
- https://github.com/hacksysteam/HackSysExtremeVulnerableDriver
- https://ropemporium.com/
- https://github.com/shellphish/how2heap
- https://guyinatuxedo.github.io/index.html
- https://github.com/WesleyWong420/binary-exploitation-101
Обучающие площадки
Большинство базовых тем охватывает площадка pwn.college.
Из минусов — это открытая образовательная система для студентов университета Arizona State University, поэтому они настоятельно просят не публиковать райтапы.
На русском языке есть pwn.spbctf.ru. Здесь есть неплохие образовательные видео и база с заданиями. Из минусов — мало тем и много однообразных тасков.
CVE и разборы
Изучать разборы CVE и писать свои экслпоиты по patchdiff — самый мощный способ развития, если вы хотите получить прикладные знания. Но он требует большой набор знаний, поэтому для новичка слишком сложен.
Например, ядерные уязвимости и уязвимости в большом корпоративном софте требуют глубокого понимания таргетов. Поэтому рекомендуем сначала потренироваться на чём-то попроще.
Разборы CVE можно искать в интернете, популярных тематических блогах и профилях в X (Twitter).
Например: