毛巾根(futex exploit)是如何工作的

时间:2014-10-04 07:52:44

标签: linux security

Linux内核存在安全问题,影响大多数Android设备,基本上允许任何用户成为root用户。

由于我是linux用户很长一段时间,我很好奇这个漏洞是如何工作的,特别是如何检查我的PC(自定义内置)或我的任何服务器上的内核是否容易受到攻击。是否有任何源代码(最好是文档)或漏洞的详细信息,以便我可以看到它是如何工作的?我只能找到利用该漏洞的通用信息或封闭源二进制文件,并在任何用户执行时为您提供root权限,但没有背景信息或内核哪个部分存在缺陷的详细信息以及如何执行此操作。

到目前为止,我发现了这篇有趣的文章http://tinyhack.com/2014/07/07/exploiting-the-futex-bug-and-uncovering-towelroot/,它解释了它使用堆栈黑客,通过调用某些系统调用来获取futex_queue的堆栈。虽然我理解它是如何工作的,但我不知道如何更改该堆栈中的任何内容实际上可以提升当前进程的权限。我发现有趣的是,这个人说,因为内核3.13已经发生了变化,现在需要不同的技术来利用它。这是否意味着甚至没有修复,并且仍然可以在最近的内核中利用,可以从kernel.org下载?

1 个答案:

答案 0 :(得分:2)

正如SilverlightFox所说,stackexchange(http://security.stackexchange.com/)的安全部分可能会更好,但这里什么都没有。

从它的声音来看,这种黑客似乎是一种提升任何用户的终端/内核达到给定时间的方法,这不仅仅是坏事。我对这种问题如何起作用的想法是一个程序,通过调用那些futex_queue来重载syscalls,然后临时提供具有超级用户访问权限的用户。

我查看了您提供的链接,发现它确实需要从SSH或类似程序进行远程登录。在控制台屏幕截图中,它使用行gcc -o xpl xpl.c -lpthread,表明此漏洞利用C语言完成。并直接从文章引用:

  

这实际上是错误的地方:有服务员的情况   仍然在服务器列表中链接并且函数返回。请注意,内核堆栈与用户堆栈完全分开。你不能   通过在用户空间中调用自己的函数来影响内核堆栈。您可以通过执行系统调用来操作内核堆栈值。

http://www.clevcode.org/cve-2014-3153-exploit/的图像中,它显示towelroot漏洞的输出,测试地址限制并进入任务结构以生成超级用户shell。此外,在tinyhack文章中,它简单地重新设计了这个漏洞的基础,所以我建议你看看它并从中进行工作。

如果您的系统容易受到攻击,我不知道任何明确的测试形式,所以我能告诉您的最好的方法是尝试强化您的系统并竭尽所能保护它。无论如何,我不认为有人会轻易掌握服务器端口和登录以在您的系统上运行此漏洞。

干杯!