2

我试图在较低级别更好地理解我的计算机,除了编写堆栈缓冲区溢出漏洞之外还有什么更好的方法?我最近遇到了ROP。我阅读了论文http://cseweb.ucsd.edu/~hovav/talks/blackhat08.html,它提到有一个 ROB 代码的编译器。linux(64位)的这种编译器的名称是什么?

谢谢,康斯坦丁

4

1 回答 1

7

我是加州大学圣地亚哥分校这个项目的研究人员之一,编写了 C-to-exploit-string 编译器部分。您所指的具体工作是特定于 SPARC 的(并且进一步针对已知的 Solaris libc 二进制文件进行了定制)。这些论文实际上更好地概述了我们所做的事情(以及概括和编程方法):

对于Linux+x64,自我们研究以来,已经出现了很多ROP攻击创建工具,一般可以通过网络搜索找到。而且其中大多数都比我们(现在相对较旧)的研究专用工具更有用和用户友好。

让我提出一个建议,如果您想了解 Linux 系统的较低级别并且尚未这样做,请考虑使用以下“逐步”方法:

  1. “老派”堆栈注入:在你的机器上禁用不可执行的堆栈保护,只注入 shell 代码。这里有很多资源——从 Aleph One 的开创性“Smashing The Stack For Fun and Profit”开始(在网络上广泛可用)。
  2. Return-to-Libc:重新启用非可执行堆栈,并尝试创建自定义有效负载以跳转到 libc(可能是 execve)并尝试获取 shell。

一旦你掌握了这些,那么进入 ROP 就会容易得多。如果你已经在那里,那么你的力量!

于 2011-05-06T14:18:00.780 回答