
Анализ CVE, связанной с переполнением стека
Этот репозиторий документирует полный процесс эксплуатации уязвимости типа переполнение буфера, следуя структурированной методологии от начального анализа до контроля потока выполнения.
Цель этого этапа — разработать функциональный эксплойт, позволяющий перенаправить поток выполнения уязвимой программы и заложить основу для выполнения произвольного кода.
Ниже подробно описаны шаги, выполненные в ходе процесса:
Анализ бинарного файла с использованием инструментов реверс-инжиниринга для понимания:
📁Шаг 1 — Статический анализ бинарного файла с IDAFree
Отправка программе некорректных входных данных для вызова контролируемого сбоя и подтверждения наличия уязвимости.
Определение точной позиции, в которой перезаписывается регистр EIP.
📁 Шаг 3 — Определение смещения регистра EIP
Проверка того, что можно управлять потоком выполнения, перезаписывая EIP произвольными значениями.
Обнаружение символов, которые изменяют поведение полезной нагрузки и должны быть исключены из шеллкода.
📁 Шаг 5 — Поиск недопустимых символов
Поиск адресов в памяти, которые позволяют перенаправить выполнение на полезную нагрузку.
Этот проект был выполнен в контролируемой лабораторной среде в образовательных целях.
Реальные системы не атаковались.
Описанный процесс позволяет структурированно продвигаться в разработке эксплойта, проверяя на каждом этапе постепенный контроль над уязвимой программой вплоть до достижения произвольного выполнения кода.