在Ubuntu中练习缓冲区溢出攻击

时间:2009-07-02 02:56:49

标签: memory ubuntu random

我正在尝试学习在Ubuntu中使用缓冲区溢出攻击。不幸的是,我无法在此操作系统中关闭地址空间布局随机化(ASLR)功能,该功能在默认情况下处于打开状态。我在一些fedora书籍中尝试了一些工作:

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

但由于某种原因,保护措施仍然存在。请给我一些建议。感谢。

[编辑]实际上上面的命令没有成功,它说“Permission Denied”,即使是sudo也是如此。我该如何解决这个问题?

[添加]当它在堆栈中显示地址时,我继续遇到segmetation错误错误。它与ubuntu中的不可执行堆栈有关:(?

5 个答案:

答案 0 :(得分:7)

在尝试之前你需要root权限,如果我没弄错的话,一旦你完成它就重新启动。

 sudo -i
 echo "0" > /proc/sys/kernel/randomize_va_space

答案 1 :(得分:2)

自己找到了

你必须以这种方式编译:

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

答案 2 :(得分:1)

使用-fno-stack-protector

编译gcc

答案 3 :(得分:1)

使用sudo回显具有超级用户权限的文件,您可以使用以下代码:

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

答案 4 :(得分:1)

您可以通过使用setarch

启动来关闭特定进程的ASLR

对于32位程序:

setarch i386 -R yourProgram

对于64位程序:

setarch x86_64 -R yourProgram