Вопрос по ubuntu, random – Практика атаки переполнения буфера в Ubuntu

3

Я пытаюсь научиться использовать атаку переполнения буфера в Ubuntu. К сожалению, я не могу отключить функцию рандомизации макета адресного пространства (ASLR) в этой ОС, которая включена по умолчанию. Я пробовал некоторые работы, найденные в некоторых книгах Fedora:

echo "0" > /proc/sys/kernel/randomize_va_space 

но по какой-то причине защита все еще существует. Пожалуйста, дайте мне несколько предложений. Благодарю.

[править] Фактически вышеприведенная команда не была успешной, она называлась «Отказано в доступе», даже с sudo. Как я могу это исправить?

[добавление] Я продолжал получать ошибку ошибки сегментации, когда она показывает адрес в стеке. Это связано с неисполняемым стеком в Ubuntu :(?

Вам нужен execstack (apt-get install execstack), чтобы отключить NX для каждого приложения. Rushyo
Связанные с:stackoverflow.com/questions/5194666/… 0fnt

Ваш Ответ

5   ответов
1

Вы можете отключить ASLR для определенного процесса, запустив с setarch

Для 32-битных программ:

setarch i386 -R yourProgram

Для 64-битных программ:

setarch x86_64 -R yourProgram
7

Вам понадобятся root-права, прежде чем пытаться это сделать, и, если я не ошибаюсь, перезапустить после того, как вы это сделали.

 sudo -i
 echo "0" > /proc/sys/kernel/randomize_va_space
Конечно, после перезагрузки все изменилось; / proc является изменчивым каталогом. Попробуйте перекомпилировать ядро с выключенным randomize_va_space :)
@wakandan - я полагаю, "перезапустить" относится к вашей программе, а не Ubuntu. Когда вы перезапускаете Ubuntu, защита устанавливается на его начальное значение (включено).
Спасибо за ответ, это пригодится в ближайшие пару дней.
Спасибо. Я использовал вашу команду всякий раз, когда мне нужно: D wakandan
Я попробовал это, как вы сказали, но после перезапуска Ubuntu я просмотрел этот файл, и предыдущее значение в этом файле не изменилось: |. Благодарю. wakandan
1

GCC компилировать с-fno-stack-protector

Это не ASLR.
1

чтобы отобразить файлы с правами доступа root с помощью sudo, вы можете использовать следующий код:

echo "0" | sudo tee /proc/sys/kernel/randomize_va_space
2

нашел это сам

Вы должны скомпилировать этот путь:

gcc -fno-stack-protector -z execstack -o OUTPUT INPUT.c

Это не ASLR.

Похожие вопросы