面向返回的编程编译器

时间:2011-04-13 08:06:18

标签: exploit

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

谢谢, 康斯坦丁

1 个答案:

答案 0 :(得分:5)

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

对于Linux + x64,自我们的研究以来,已有许多用于ROP攻击创建的工具,您通常可以通过搜索网络找到它们。其中大部分都比我们(现在相对陈旧的)研究专用工具更有用,更方便用户使用。

让我提一个建议,如果你想了解Linux系统的较低级别并且还没有这样做,请考虑使用以下方法的“步骤”方法:

  1. “Old-School”堆栈注入:禁用盒子上的非可执行堆栈保护,并注入shell代码。很多资源在这里 - 从Aleph One的开创性“粉碎堆栈的乐趣和利润”开始(广泛在网上提供)。
  2. 返回Libc:重新启用非可执行堆栈,并尝试创建自定义有效负载以跳转到libc(可能的execve)并尝试获取shell。
  3. 一旦你掌握了这些,那么进入ROP会更容易。如果你已经在那里,那么给你力量!