С чего начать пывнить: GitHub-проекты и разборы CVE
https://t.me/sploitdev
В прошлой статье мы рассказали про CTF и площадки с тасками. Теперь рассмотрим GitHub проекты и разбор CVE.
GitHub-проекты
Хостить площадку для CTF может быть накладно. Поэтому авторы часто выкладывают таски и обучающие проекты на GitHub.
Этот способ удобен не только для разработчиков, но и для решающих. В нем есть возможность полностью управлять окружением и результатом компиляции кода. Еще можно модифицировать код, добавляя новые защиты или больше отладочной информации.
Вы можете искать такие проекты самостоятельно по ключевым словам: exploit development GitHub, vulnerability research, binary exploitation 101.
Вот некоторые из проектов:
- HEVD — популярный проект, который содержит примеры для эксплуатации ядерных уязвимостей в ядре Windows и Linux.
- how2heap — известный проект по обучению эксплуатации кучи в glibc.
- https://github.com/bkerler/exploit_me — уязвимое приложение для демонстрации различных техник под ARM.
- https://github.com/RPISEC/MBE — материалы курса Modern Binary Exploitation от команды RPISEC. Несколько устарело, чтобы называться modern, но как точка начала подойдет.
- https://github.com/DhavalKapil/heap-exploitation — интерактивная книга по эксплуатации кучи.
Не все проекты на GitHub не содержат теорию, но хороши для практики. Вы можете просто взять готовый пример и попытаться разобраться в нём самостоятельно. А для популярных проектов можно найти готовые решения с подробными разборами.
Разбор CVE
Подробные разборы уязвимостей и эксплоитов многие исследователи выкладывают их в личные блоги, чаще всего в X (Twitter).
Также стоит обратить внимание на блоги крупных компаний.
Например:
- CheckPoint,
- Google Project Zero,
- BI.ZONE (по фильтру «уязвимости»),
- Synacktiv,
- Zscaler.
Также вы можете гуглить номер CVE и искать разборы — так можно найти новые блоги исследователей и компаний.
Сначала советуем читать разборы, вникать в них и пытаться проделать описанные действия самостоятельно.
Потом можете анализировать patchdiff, понять в чём заключается уязвимость и попытаться писать тригеры, а дальнейшем эксплоиты. Так вы наработаете навык анализа багов и насмотренность, которая поможет находить уязвимости самостоятельно.
Этот подход максимально эффективный, если вы хотите быстро выйти на написание боевых эксплоитов под реальные таргеты и поиск 0-day.
Оба способа требуют начальной подготовки, поэтому начинать с них не рекомендуем. Лучше используйте как точку входа CTF или обучающую площадку/курсы.