我目前正在阅读几本有关安全编程的安全书籍(我的热情),但是它们在光盘上提供的发行版有缺陷或不存在。 书籍:黑客剥削的艺术 2nEd、灰帽黑客 2nEd 问题是,当我尝试遵循这些示例时,显然较新的发行版具有堆栈保护和其他安全功能来防止这些情况,并且我尝试手动设置 Hacking the art ofexploitation 提供的环境,但我失败了。 我也尝试过 DVL(Dam Vulnerable Linux),但它太臃肿了,我只想要一个最小的环境,我可以在一个小分区中拥有一个最小的环境,并从引导加载程序中进行选择,或者在一个小型虚拟机中拥有。
所以我的问题是这样的:我如何去设置一个环境(发行版旧内核),我可以在其中遵循大多数这些示例。也许如果有人可以告诉我 DVL 的内核和 GCC 版本,我可以获得最多的信息我自己设置的。
请您参考如下方法:
您需要重建没有堆栈和堆保护(包括不可执行堆栈)的内核。然后,您需要使用 gcc 标志进行编译以关闭保护,其中之一是“-fno-stack-protector”。另外,因为您很快就会遇到它,您可能希望静态编译您的程序,因为当您调试 0x41414141 有效负载时,它会更容易理解它。
此外,根据您对“膨胀”的定义,最简单的方法可能是下载较旧的 linux、redhat 5 或旧的 slackware,然后使用默认工具链安装和使用它。