当前位置:安全资讯 >> 全文

那三个Linux SystemD 漏洞修复了吗?PoC 已发布了哦~

发布时间:2019-2-1 18:09 标签: Linux,SystemD,漏洞, PoC
分享到 0

修复最近在 SystemD 中发现的三个漏洞了吗?如果还没修复,可要抓紧了:安全公司 Capsule8 已经公布了 PoC

不过也不必太惊慌:利用代码已得到处理,基本的安全措施即可阻止它,因此应该不会适用于常见的 Linux 安装程序。然而,Capsule8 等公司可能已经发布了绕过这些保护措施的方式,因此可以将本文作为对利用开发的一种洞见。谷歌 Project Zero 团队例行发布其安全利用的内部结构,可作为学习参考。

说回 SystemD

1月中旬,安全公司 Qualys 发布了影响 systemd-journald 的三个缺陷。Systemd-journald 是一种 systemd 组件,用于处理日志数据的收集和存储。Linux 的多种发行版本已经发布了这些漏洞 CVE-2018-16864CVE-2018-16865 CVE-2018-16866 的补丁。

这些代码缺陷的利用可导致攻击者修改系统内存以利用 systemd-journal,导致运行该软件的系统根账户权限提升。换句话说,在系统上运行的恶意软件或已登录的恶意用户能够滥用这些漏洞获取对整个盒子的管理员级别的访问权限。

Capsule8 公司的研究科学家 Nick Gregory 在博客文章中指出,该公司已经开发出 PoC 利用代码用于测试计算机是否处于风险之中以及验证补丁是否起作用。

他指出,“Qualys 公司发布的最初报告中并未提到一些有意思的点,如如何和受影响服务进行通信以触及易受攻击的组件,以及如何控制计算出的哈希值以损坏内存。”

遭操控

这个利用脚本用 Python 3 编写,针对的是 ubuntu/bionic64 Vagrant 图像的 20180808.0.0 版本,并假设已禁用 ASLR。一般而言,生产环境中并不会关闭 ASLR,因而导致它主要是一种学术研究。

该脚本经由 Linux alloca() 函数利用 CVE-2018-16865,该函数在调用的堆栈帧中分配指定数量的字节存储空间,可用于操纵堆栈指针。

基本上,通过创建大量日志条目并将其附加到日志,攻击者能够覆盖内存并控制易受攻击的系统。

“我们利用这个漏洞的一般方法是首先发送正确的大小和数据,以便使堆栈指针指向 libc BSS 内存区域,然后用指向系统的指针覆盖 free_hook 函数指针。” Gregory 解释称,“在我们控制的内容释放内存时,将授予我们任意命令执行权。”

创建次利用代码的其中一个挑战是,控制用于编码日志条目的哈希函数的输出。PoC 代码已被调整到特定的 Vagrant 图像,说明这些值已被提前计算过。

要在其它 Linux 发行版本中使用 PoC,要求使用哈希预映像,而由于哈希并非加密安全,因此可通过工具完成。Capsule8 打算在后续文章中进行进一步探讨,但可能会隐瞒一些细节,以避免 ASLR 防御措施被攻破。

Gregory 还补充道,“我们也打算提供完整的 ASLR 绕过,但正在考虑这样做是否为脚本小子降低了太多的门槛。”

Capsule8 公司的联合创始人兼首席科学家 Brandon Edwards 表示,“我们提供了在某些条件下利用 Vagrant 图像的足够信息。根据我们对披露 ASLR 绕过的考虑,可能会再次发布至少一篇文章。我们将写一些关于如何计算所需原像的内容。”

Edward 表示,开发该 PoC 的目的是验证 Capsule8 实时攻击检测的功效。他表示,触发该利用代码的 缺陷证实,alloca() 并非动态分配内存的方式。

他指出,另外一点是一些编译器标记会阻止它遭利用。他指向 GCC fstack-clash-protection 选项称,“有些发行版本开箱即用,而有些则不然。”

本文由360代码卫士编译,不代表360观点,转载请注明“转自360代码卫士www.codesafe.cn”。
原文链接:https://www.theregister.co.uk/2019/01/31/systemd_exploit/
参与讨论,请先 登录 | 注册

用户评论