面向返回的编程编译器

发布于 2024-11-01 03:31:48 字数 269 浏览 7 评论 0原文

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

谢谢, 康斯坦丁

I'm trying to better understand my computer on the lower levels and what better way is there other than writing stack buffer overflow exploits? I recently came across ROP. I read the paper http://cseweb.ucsd.edu/~hovav/talks/blackhat08.html and it mentioned there was a compiler for ROB code.
What is the name of such a compiler for linux (64bit)?

Thanks,
Konstantin

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

场罚期间 2024-11-08 03:31:48

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

对于 Linux + x64,有许多用于创建 ROP 攻击的工具自从我们的研究以来,您通常可以通过搜索网络找到它。其中大多数比我们(现在相对较旧的)研究专用工具更加有用和用户友好。

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

  1. “老派”堆栈注入:禁用不可执行堆栈保护你的盒子,只需注入 shell 代码。这里有很多资源——首先是 Aleph One 的开创性著作“Smashing The Stack For Fun And Profit”(在网络上广泛提供)。
  2. 返回 Libc:重新启用不可执行堆栈,并尝试创建自定义有效负载以跳转到 libc(可能是 execve)并尝试获取 shell。

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

I was one of the researchers on this project at UCSD and wrote the C-to-exploit-string compiler portion. The specific work you are referring to was SPARC-specific (and further tailored to a known Solaris libc binary). These papers actually give a better overview of what we did (and generalizations and programming approaches):

For Linux + x64, there have been many tools for ROP attack creation since our research, which you can find generally by searching the web. And most of these are far more useful and user-friendly than our (now relatively old) research-specific tools.

Let me just offer a suggestion that if you want to understand the lower levels of your Linux system and haven't already done so, consider a "stepped" approach with the following:

  1. "Old-School" Stack Injection: Disable non-executable stack protection on your box, and just inject shell code. Lot's of resources here -- start with Aleph One's seminal "Smashing The Stack For Fun And Profit" (widely available on the web).
  2. Return-to-Libc: Re-enable non-executable stacks, and try to create a custom payload to jump into libc (probable execve) and try to grab a shell.

Once you've got a handle on those, then getting in to ROP will be a lot easier. If you're already there, then power to you!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文