【问题标题】:Build an application with some kernel memory disclosure构建具有一些内核内存泄露的应用程序
【发布时间】:2010-07-01 13:26:20
【问题描述】:

我想构建一个 C 应用程序,然后我可以利用它从内核内存中获取一些机密信息。

问题是我真的不明白从哪里开始......我发现在没有适当检查返回值的情况下使用 copy_to_user() 可能会导致这类问题,但我不知道了解它是如何被利用的。 如果你能给我一些建议,让我进步,那就太好了。

编辑:我想要的是一种像这样的漏洞利用:http://inj3ct0r.com/exploits/7837,其中有 X 字节的内核内存最终被转储。

事实是我不想要任何 SCTP 套接字或任何东西,而“只”想要重新创建此机密信息转储的最简单方法。

为了与缓冲区溢出并行,我想创建将使用gets() 函数的文件vuln.c,然后构建将完成这项工作的特殊字符串......在这种情况下披露,我认为这将是另一个 C 文件。

我希望这是有道理的......

最好的。

【问题讨论】:

  • 你不会尝试向 Linux 内核提交木马,是吗?
  • 如果我弄错了,请原谅我,但从您的问题看来,您认为编写一个易受攻击的用户空间应用程序会神奇地为您创建一个内核漏洞。这是完全错误的。如果存在内核漏洞,您无需“利用”您自己的应用程序即可访问它。只需编写代码直接利用内核漏洞。如果不存在内核漏洞(或者至少您不知道任何漏洞),那么您可以创建的任何用户空间代码都不会改变它。
  • 好吧,我想这样做是为了证明这样的漏洞可以存在于我的目标系统上,并更好地了解它们是如何工作的。我认为我可以开发一个易受攻击的内核模块,然后是用户空间漏洞,因为我拥有系统的所有权限。如果可能,问题仍然是:我怎样才能创建这样的漏洞???最好的。

标签: c security memory disclosure


【解决方案1】:

现实情况是,有多种方法可以继续,具体取决于您尝试学习的漏洞利用类型。

  1. 你想通过buffer overflow and change of return pointer?注入代码吗?
  2. 是否已经有对 copy_to_user 的调用,您想使用 off by one error 来利用它?
  3. 你想用return oriented programming代替代码注入
  4. 还有很多其他的,其中一些列在here

【讨论】:

    【解决方案2】:

    假设您不关注内核内部,请查看this question

    【讨论】:

      猜你喜欢
      • 2010-11-24
      • 2011-02-20
      • 2011-03-04
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 2016-03-28
      • 2010-11-27
      • 1970-01-01
      相关资源
      最近更新 更多