PaX и переполнение буфера
Возможно ли переполнение буфера в Linux с PaX в ядре. Я хочу использовать исполняемый файл, изменив адрес возврата с помощью правильного ввода. Я использую Ubuntu 10.04 и проверяю это с помощью paxtest, но не понимаю, что означает результат. Это результат paxtest в моей системе:
Исполняемое анонимное сопоставление: убито Исполняемый bss: убит Исполняемые данные: Убит Исполняемая куча: убито Исполняемый стек: убит Исполняемое анонимное сопоставление (mprotect): уязвимо Исполняемый файл bss (mprotect): уязвим Исполняемые данные (mprotect): уязвимы Исполняемая куча (mprotect): уязвима Исполняемая разделяемая библиотека bss (mprotect): уязвима Исполняемые данные общей библиотеки (mprotect): уязвимы Исполняемый стек (mprotect): уязвим Рандомизационный тест анонимного отображения: 12 бит (угадано) Тест рандомизации кучи (ET_EXEC): 13 бит (угадано) Проверка рандомизации кучи (ET_DYN): 14 бит (угадано) Основная исполняемая рандомизация (ET_EXEC): 12 бит (угадано) Основная исполняемая рандомизация (ET_DYN): 12 бит (угадано) Рандомизация общей библиотеки: 12 бит (угадано) Проверка рандомизации стека (SEGMEXEC): 19 бит (угадано) Проверка рандомизации стека (PAGEEXEC): 19 бит (угадано) Возврат к функции (strcpy): уязвим Возврат к функции (strcpy, RANDEXEC): уязвим Возврат к функции (memcpy): уязвим Возврат к функции (memcpy, RANDEXEC): уязвим Исполняемая разделяемая библиотека bss: уязвима Исполняемые данные общей библиотеки: убиты Сегменты для записи текста: уязвимы
1 ответ
Да, ты можешь. Смотрите строки:
Return to function (strcpy) : Vulnerable
Return to function (strcpy, RANDEXEC) : Vulnerable
Увы, мой школьный проект состоял в том, чтобы предотвратить именно такой подвиг, используя grsecurity. PaX не помешал мне переписать обратный адрес.