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

Pet*_*etr 14 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下载的内核仍然可以利用

小智 3

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

从听起来来看,这种黑客攻击似乎是一种在给定时间内提升任何用户的终端/内核的方法,这至少可以说是很糟糕的。我对此类问题如何工作的想法是一个程序,该程序futex_queue通过调用上述内容来重载syscalls,然后临时为用户提供超级用户访问权限。

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

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

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

如果您的系统容易受到攻击,我不知道有什么明确的测试形式,所以我能告诉您的最好的办法就是尝试强化您的系统,并尽一切努力保护它。无论如何,我不认为有人会轻易获得服务器端口和登录名来在您的系统上运行此漏洞。

干杯!