2012-09-04 46 views
0

我试图测试virtualbox中的缓冲区溢出攻击,并且由于各种发行版的所有安全特性,过去几周一直在挣扎。堆栈粉碎测试环境

我已经尝试过下面的教程一步一步没有运气。

与其试图禁用所有的安全功能,我试图得到一个旧的Linux发行版,但其中大多数不带gcc并且缺乏工作存储库。

我甚至在Ubuntu 10.10(我也下载了它)中发现了一个YouTube视频,包括禁用各种安全功能并且没有运气的所有命令。我可以得到分段错误,但不是“非法指令”。

有没有一个古老的linux发行版,我仍然可以下载没有这个保护,它与gcc(或一个完整的存储库的那些巨大的dvd isos之一),所以我可以测试这个呢?

回答

0

你不需要。

编译与海湾合作委员会标志-fno-stack-protector的可执行文件,并与sudo sh -c "echo 0 > /proc/sys/kernel/randomize_va_space"关闭ASLR禁用许多 Linux发行版的两大内存破坏攻击缓解。 (这两种保护技术可以追溯到足够年内使找到的旧发行耗时一个副本,保存Damn Vulnerable Linux

有可能在一定的分布,你必须写XOR执行内存页面,这是通过实施您必须禁用自己的不同软件包的数量。考虑到,如果你没有得到一个堆栈粉碎警告,这几乎可以肯定你没有一个W^X内存页面的可执行文件。

这意味着如果你遇到了分段错误,你可能已经成功地覆盖了存储在堆栈上的EIP,并且只是让你的shellcode偏移量错误或者你已经做了字节码错误(一些非法的多字节指令向后不是更长的非法!)。在GDB中检查你的程序,我想你会发现你出错的地方。

探索The Shellcoder's Handbook可能是一个有利可图的使用你的时间。

+0

感谢您的回复。我已经试过了-fno-stack-protector并关闭了ASLR。 – NullPointer

+0

然后,您需要关闭W^X页面(为了您的兴趣,在窗口中调用DEP)。你在使用什么操作系统? –

+0

谢谢你的帮助。我设法找到了该死的弱点Linux,并让缓冲区溢出来工作,并得到一个shell产生它。 我想更进一步,现在通过对具有粘性位权限的脚本执行此漏洞利用(如passwd文件)来升级特权。这件事我没有运气。在线教程说运行'chmod u + s rootme',但程序仍然以我的用户身份运行。 我在窗口看过DEP,但不知道它是一回事。 – NullPointer