Практика атаки переполнения буфера в Ubuntu

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

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

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

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

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

 Rushyo04 сент. 2012 г., 14:26
Вам нужен execstack (apt-get install execstack), чтобы отключить NX для каждого приложения.
 0fnt14 февр. 2013 г., 08:09

Ответы на вопрос(5)

нашел это сам

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

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

 04 сент. 2012 г., 14:05
Это не ASLR.

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

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

setarch i386 -R yourProgram

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

setarch x86_64 -R yourProgram
Решение Вопроса

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

 sudo -i
 echo "0" > /proc/sys/kernel/randomize_va_space
 30 июл. 2009 г., 02:49
@wakandan - я полагаю, "перезапустить" относится к вашей программе, а не Ubuntu. Когда вы перезапускаете Ubuntu, защита устанавливается на его начальное значение (включено).
 27 июл. 2009 г., 23:54
Спасибо за ответ, это пригодится в ближайшие пару дней.
 wakandan03 июл. 2009 г., 03:52
Спасибо. Я использовал вашу команду всякий раз, когда мне нужно: D
 wakandan02 июл. 2009 г., 10:56
Я попробовал это, как вы сказали, но после перезапуска Ubuntu я просмотрел этот файл, и предыдущее значение в этом файле не изменилось: |. Благодарю.
 02 июл. 2009 г., 20:07
Конечно, после перезагрузки все изменилось; / proc является изменчивым каталогом. Попробуйте перекомпилировать ядро с выключенным randomize_va_space :)

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

 04 сент. 2012 г., 14:24
Это не ASLR.

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

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

Ваш ответ на вопрос