Аудит и дизассемблирование exploit'ов


Содержание


Аудит и дизассемблирование exploit'ов
Введение
Введение - часть 2
Как препарируют exploit'ы
Анализ message queuing exploit'а
Листинг1 фрагмент exploit'а, ответственный за сборку пакета-убийцы
Рисунок1 устройство пакета-убийцы, передаваемого на атакуемый сервер
Рисунок1 устройство пакета-убийцы, передаваемого на атакуемый сервер - часть 2
Листинг2 массив offsets хранит
Листинг3 последовательность pop reg/pop reg/retn, содержащаяся в mqsvc.exe файле
Листинг4 фрагмент функции, формирующий новый SEH-фрейм (компилятор — Microsoft Visual C++)
Рисунок2 расположение SEH-фреймов относительно переполняющихся буферов
Листинг5 структура SEH-фреймов
Листинг6 последовательность вызова функций при обработке исключения
Листинг7 фрагмент RTL-функции
Листинг8 программа, сохраняющая
Листинг9 в начале shell-кода расположен расшифровщик, расшифровывающий весь остальной код
Листинг10 псевдокод команды fstenv, сохраняющей среду FPU
Листинг11 карта размещения среды в стековой памяти
Листинг12 скрипт для IDA Pro, расшифровывающий shell-код
Рисунок3 расшифровка shell-кода в hiew'e
Листинг13 древний антидизассемблерный трюк — прыжок в середину команды
Листинг14 код, вычисляющий базовый адрес KERNEL32.DLL через PEB
Листинг15 недокументированная структура PEB_LDR_DATA
Листинг16 недокументированная структура LDR_MODULE
Листинг17 вызов API-функции по хэш-именам
Листинг17 вызов API-функции по хэш-именам - часть 2
Листинг18 процедура MyGetProcAddress, возвращающая адрес API-функции по хэш-сумме его имени
Листинг19 загрузка библиотеки ws2_32 для работы с сокетами и ее инициализация
Заключение
>>> Врезка как запустить shell-код под отладчиком
>>> Врезка интересные ссылки



- Начало -