【问题标题】:How does towelroot (futex exploit) workstowelroot(futex 漏洞利用)如何工作
【发布时间】:2014-10-04 07:52:44
【问题描述】:

linux内核存在一个安全问题,影响了大部分android设备,基本上任何用户都可以成为root。

由于我是 linux 用户已经有一段时间了,我很好奇这个漏洞是如何工作的,尤其是我如何检查我的 PC(定制)或我的任何服务器上的内核是否容易受到这个漏洞的影响.是否有任何源代码(最好记录在案)或漏洞利用细节,以便我可以看到它是如何工作的?我只能找到通用信息或封闭源代码二进制文件,它们确实利用了该错误并在由任何用户执行时为您提供 root,但没有背景信息或内核的哪个部分存在缺陷的详细信息以及如何做到这一点。

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

【问题讨论】:

标签: linux security


【解决方案1】:

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

从它的声音来看,这种 hack 似乎是一种在给定时间内提升任何用户的终端/内核的方法,至少可以说,这很糟糕。我对这类问题如何工作的想法是一个程序,它通过调用那些所说的syscalls 来重载futex_queue,然后临时为用户提供超级用户访问权限。

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

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

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

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

干杯!

【讨论】:

    猜你喜欢
    • 2021-01-13
    • 1970-01-01
    • 2012-06-02
    • 2017-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多