Статьи
1 неделю назад
Реверсинжиниринг PWN-тасков или эксплуатируем бинарные уязвимости (Часть 4 / Stack3)
Всем доброго времени суток! Набираем обороты... Сегодня мы будем 'пывнить" stack3.exe (ссылочка на файл, как обычно, на Github). Закидываем в Ghidra: Анализируем... Получаем декомпилированный код. Нас встречает все тот же массив из 64-х байт. Небезопасная функция gets(). Функция gets() считывает строку символов из стандартного потока ввода (stdin) и помещает ее в массив local_54. Также в коде есть указатель (local_14) на функцию и проверка (if), не является ли local_14 - NULL. Т.е. если мы "перезапишем"...
2 прочтения · 1 неделю назад
Реверсинжиниринг PWN-тасков или эксплуатируем бинарные уязвимости (Часть 3 / Stack2)
Друзья, всех приветствую! Это третья часть нашего "пывна" :) Сегодня будем изучать работу Stack2.exe (скачать можно ТУТ). Начнем мы, как обычно, со статического анализа. Запускаем GHIDRA: Закидываем "бинарь" в проект и нажимаем на Code Browser: Анализируем... Получаем декомпилированный код. Обращаем внимание на переменную "local_14". Ей присваивается значение переменной окружения "GREENIE". Далее идет проверка. Если переменная "local_14" эквивалентна 0x0 (NULL), то программа выводит сообщение "Пожалуйста установите переменную окружения GREENIE": Смотрим дальше...
2 прочтения · 1 неделю назад
Реверсинжиниринг PWN-тасков или эксплуатируем бинарные уязвимости (Часть 2 / Stack1)
Друзья всех приветствую! Продолжаем «пывнить» :) Кто не прочитал первую статью — она есть ТУТ! В этой статье будем решать таск Stack1 (скачать EXEшник можно ТУТ). Начинаем со статического анализа, открываем stack1.exe в GHIDRA: Анализируем наш бинарный файл: Получаем декомпилированный код: Сразу же обращаем внимание на использование небезопасной функции strcpy(), которая копирует наш переданный аргумент в 64-байтный массив (local_54). В прошлый раз мы перезаписывали переменную, а в этот раз нам нужно присвоить ей конкретное значение, а именно 0x61626364...
2 прочтения · 1 неделю назад
Реверсинжиниринг PWN-тасков или эксплуатируем бинарные уязвимости (Часть 1 / Stack0)
В этой серии райтапов мы разберем известные задания по эксплуатации бинарных уязвимостей с Exploit Exercises (там их больше нет, поэтому я их перекомпилировал под Win). О том, что такое Buffer Overflow прекрасно и с примерами написано ТУТ или ТУТ (отличная статья от @Mogen). Кстати говоря, много крутых задачек на тему PWN есть на Codeby Games, так что рекомендую :) Итак... мы будем решать наши задачки, используя статический (Ghidra) и динамический анализ (x64dbg). И самое главное, мы будем делать это без исходников уязвимой программы, в отличие от того, как это сделано ТУТ и ТУТ...
Видео