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

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

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

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

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

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


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


Ответы (5)


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

 sudo -i
 echo "0" > /proc/sys/kernel/randomize_va_space
person scragar    schedule 02.07.2009
comment
Я пробовал, как вы сказали, но после перезапуска Ubuntu я просмотрел этот файл, и предыдущее значение в этом файле не изменилось: |. Спасибо. - person wakandan; 02.07.2009
comment
Конечно, он изменился обратно после перезагрузки; /proc является временным каталогом. Попробуйте перекомпилировать ядро ​​с выключенным randomize_va_space :) - person MoshiBin; 02.07.2009
comment
Спасибо за ответ, он пригодится в ближайшие пару дней. - person Javed Ahamed; 28.07.2009
comment
@wakandan - я считаю, что перезапуск относится к вашей программе, а не к Ubuntu. Когда вы перезапускаете Ubuntu, защита устанавливается на исходное значение (включена). - person James Caccese; 30.07.2009

сам нашел

вы должны скомпилировать таким образом:

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

person IP-Sh0k    schedule 06.06.2010

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

echo "0" | sudo tee /proc/sys/kernel/randomize_va_space
person knittl    schedule 07.11.2009

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

person nononn    schedule 07.11.2009

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

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

setarch i386 -R yourProgram

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

setarch x86_64 -R yourProgram
person Stephen    schedule 13.02.2013