为缓冲区溢出学习设置环境

时间:2009-10-03 06:35:50

标签: security environment stack-overflow buffer-overflow distro

我目前正在阅读有关安全编程的几本安全书(我的热情),但是他们在光盘上提供的发行版都是错误的,或者是不存在的。 书籍:黑客剥削艺术2nEd,灰帽子黑客入侵2nEd 问题在于,当我尝试按照这些示例时,显然更新的发行版具有堆栈保护和其他安全功能,以防止这些情况,我试图手动设置黑客攻击艺术提供的环境,但我失败了。 我也试过DVL(Dam Vulnerable Linux),但它的方式太过臃肿,我只想要一个最小的环境,我可以在一个小分区中选择引导加载器或者在一个小的虚拟框中。

所以我的问题是:我如何设置一个环境(发行版旧内核),我可以跟随大部分这些例子。可能如果有人能告诉我内核和GCC版本的DVL我可以得到最多它自己设定。

3 个答案:

答案 0 :(得分:2)

您需要在没有堆栈和堆保护(包括非可执行堆栈)的情况下重建内核。然后,您需要使用gcc标志进行编译以关闭保护,其中一个将是“-fno-stack-protector”。另外,因为你很快就会遇到它,你可能想静态编译你的程序,因为当你调试0x41414141有效载荷时,它会更容易理解它。

另外,根据您对“膨胀”的定义,最简单的方法是下载较旧的Linux发行版,redhat 5或旧的slackware,并使用默认工具链进行安装和使用。

答案 1 :(得分:1)

如果您仍然可以使用DVL,则可以使用以下命令:

$ uname -r
$ gcc --version

自己找出来。

编辑:根据distrowatch.com,linux内核为2.6.20,gcc为3.4.6

答案 2 :(得分:0)

sevagas网站上有一篇与您的问题相关的文章: How-to setup a buffer overflow testing environment