iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux系统systemd-journald服务本地提权漏洞怎么修复
  • 788
分享到

Linux系统systemd-journald服务本地提权漏洞怎么修复

2023-06-19 11:06:17 788人浏览 八月长安
摘要

本篇内容介绍了“linux系统systemd-journald服务本地提权漏洞怎么修复”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!0

本篇内容介绍了“linux系统systemd-journald服务本地提权漏洞怎么修复”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

0x00 摘要

Qualys安全公司在systemd-journald中发现了3个漏洞

  • CVE-2018-16864、CVE-2018-16865:内存破坏

  • CVE-2018-16866:信息泄露(越界读)

Qualys安全公司表示,利用CVE-2018-16865 和 CVE-2018-16866 ,在10分钟左右获取了运行在i386体系结构上的Linux的root权限,在70分钟左右获取了运行在amd64体系结构上的Linux的root权限(该EXP未发布)。如果systemd以-fstack-clash-protection标志编译,则漏洞无法利用(因为防止了堆栈冲突,通过下面的分析。就可以知道,漏洞利用的核心就是堆栈冲突)。

0x01 systemd-journald服务介绍

systemd-journald 是一个收集并存储各类日志数据的系统服务。 它创建并维护一个带有索引的、结构化的日志数据库, 并可以收集来自各种不同渠道的日志:

  • 通过 kmsg 收集内核日志

  • 通过 libc 的 syslog接口收集系统日志

  • 通过本地日志接口 sd_journal_print 收集结构化的系统日志

  • 捕获服务单元的标准输出(STDOUT)与标准错误(STDERR)

  • 通过内核审计子系统收集审计记录

0x02 CVE-2018-16864

分析

函数

dispatch_message_real()(journal/journald-server.c)通过将每个字段转换为格式为“=”的字符串来写入日志。这些字符串是使用basic/string-util.h中定义的strjoina()函数构造的,其使用alloca()在栈上分配结果字符串。

如果攻击者能够通过构造较长的字符串,来使得栈与其他内存区域产生冲突,那么就有可能覆盖其他区域的数据,导致崩溃或代码执行。

在特殊的情况下,一个程序可能有一个很大的cmdline(可以通过/proc//cmdline读取)造成堆栈冲突,从而造成systemd-journald崩溃或代码执行。

Linux系统systemd-journald服务本地提权漏洞怎么修复

Linux系统systemd-journald服务本地提权漏洞怎么修复

利用

首先,从一个cmdline小的进程,发送一个大的、优先级高的消息给journald。这个消息强制一个大的写 /var/log/journal/的操作(1MB与2MB之间),并强制创建一个短暂的线程调用fsync等待从内存写入磁盘的操作完成(重点:该线程的栈区域是在mmap区域中分配)

接下来,创建一些进程(32到64个)写大文件(1MB -- 8MB)到 /var/tmp/中.这些进程使得journald中调用fsync的线程能够存活更久,让我们更能容易利用该漏洞。

最后,通过一个进程发送一个小的,低优先级的消息到journald。其cmdline非常大的(128MB左右,为栈区与 mmap 区域的距离),使得调用alloca()函数时,能够覆盖掉journald中调用fsync()线程的栈空间,从而造成代码执行。

0x03 CVE-2018-16865

分析

journal-file.c中的journal_file_append_entry()函数通过alloca()分配一个EntryItem结构数组,其条目数可以由本地攻击者控制。

通过直接访问UNIX域套接字(默认位于/run/systemd/journal/Socket),攻击者可以向套接字发送许多条目,从而使得 alloca() 函数分配EntryItem结构数组覆盖其他内存区域。进而造成systemd-journald崩溃或权限提升。

Linux系统systemd-journald服务本地提权漏洞怎么修复

利用

首先跳跃到libc的读写段并覆盖一个函数指针。但是这并不简单,从“for”循环(在journal_file_append_entry()中)调用的函数可能会破坏掉在目标函数指针下方的字节, 因此会覆盖可能崩溃或死的重要libc变量。因此,我们有时必须稍微改变我们的alloca()跳跃,以避免覆盖这些重要变量。

我们想用另一个函数或ROP链的地址覆盖我们的目标函数指针,但不幸的是,在“for”循环中调用的函数的栈帧(在journal_file_append_entry()中)不包含我们控制的任何数据。但是,写入alloca()ted“items”的64位“哈希”值是由jenkins_hashlittle2()生成的,这是一个非加密哈希函数:我们可以很容易地找到一个短字符串哈希到指定值(将覆盖我们的目标函数指针的地址),也是valid_user_field()(或journal_field_valid())。

为了完成我们的利用,我们需要journald的栈指针,以及libc读写段中目标函数指针的地址,因此我们需要一个信息泄露漏洞。

0x04 CVE-2018-16866

分析

journald-syslog.c中的syslog_parse_identifier()函数没有正确解析以":"结尾的日志字符串,返回超出原始字符串限制的指针。从而使得攻击者可以利用该漏洞泄露systemd-journal进程的内存地址。

利用

从journald泄漏堆栈地址或mmap地址:

首先,发送一个较大的本地消息到/run/systemd/journal/socket中;journald会调用mmap(),将我们的消息映射到内存,然后调用malloc()分配大量的iovec结构:大多数结构指向我们已经mmap()的消息,但是有少数指向栈(在 dispatch_message_real()).iovec数组的内容在调用free()由heap hole保存(在journald 中处理完我们的消息后)

接下来,发送大量的syslog信息到/run/systemd/journal/dev-log;journald为了接受我们的大量消息,会调用realloc()从而获取刚刚保存iovec数组的heap hole(其中仍然保存着mmap和栈指针)

最后,我们发送一个利用CVE-2018-16866的大型syslog消息: journald在其服务器缓冲区(在先前包含iovec数组的堆块中)接收到大型消息,如果我们仔细选择消息的大小,并将其结束符“:”放置在剩余的mmap或堆栈指针前面,然后我们可以泄漏这个指针(它被错误地解读为我们信息的正文)

0x05 CVE-2018-16865 与 CVE-2018-16866的结合造成任意代码执行

通过 CVE-2018-16866 我们可以获得libc的地址,然后利用CVE-2018-16865我们可以改写libc中的__free_hook函数指针为system函数的地址,从而造成任意代码执行。

详细过程参考资料4

0x06 影响版本

CVE-2018-16864 于 2013 年 4 月引入(systemd v203),并在 2016 年 2 月可利用(systemd v230)。

CVE-2018-16865 于 2011 年 12 月引入(systemd v38),在 2013 年 4 月可利用(systemd v201)。

CVE-2018-16866 于 2015 年 6 月引入(systemd v221),于 2018 年 8 月无意中被修复。

已知受影响的Linux 发行版有:Debian,Red Hat,ubuntu。请自行查看自己系统中的systemd版本是否受影响。

“Linux系统systemd-journald服务本地提权漏洞怎么修复”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Linux系统systemd-journald服务本地提权漏洞怎么修复

本文链接: https://www.lsjlt.com/news/295963.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux系统systemd-journald服务本地提权漏洞怎么修复
    本篇内容介绍了“Linux系统systemd-journald服务本地提权漏洞怎么修复”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!0...
    99+
    2023-06-19
  • 怎么在CentOS系统中修复bash漏洞
    怎么在CentOS系统中修复bash漏洞?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。系统:centos5.x1.检测你服务器是否需要修复 复制代码代码如下:env ...
    99+
    2023-06-07
  • xp系统修复漏洞后蓝屏怎么办
    xp系统修复漏洞后出现蓝屏的解决方法首先,在计算机中进入PE环境;进入到PE环境后,在PE桌面中点击“我的电脑”,选择系统所在的分区;在所在分区中,进入Windows文件夹;进入到Windows文件夹后,在文件中打开漏洞补丁文件夹;漏洞补丁...
    99+
    2024-04-02
  • 云服务器漏洞怎么修复
    云服务器漏洞的修复方法:登录云服务器提供商平台。打开云服务器管理控制台,进入安全中心界面。查看“待处理漏洞”,点击进入管理页面。选择需要修复的页面,点击这条漏洞右侧的“修复”。在弹出来页面中,点击“一键修复”,等待任务修复成功即可。...
    99+
    2024-04-02
  • 阿里云服务器提示有漏洞怎么修复
    首先需要检查服务器是否被黑客入侵,可以通过打开防火墙、使用杀毒软件等方式来检查是否有漏洞存在。 如果确认服务器没有被入侵,可以根据服务器的功能和设计原理,找出漏洞的可能来源。例如,如果服务器的数据存储是基于文件系统的,那么可能存在的漏洞就...
    99+
    2023-10-27
    阿里 漏洞 提示
  • win7系统360漏洞修复后蓝屏怎么办?
    win7蓝屏的原因有很多,可能是软件或程序不兼容,中毒等等。一些网友最近遇到了在修复360漏洞后导致win7系统蓝屏的问题,不知道该如何解决。今日小编将教您win7系统360漏洞修复后蓝屏的解决方案。win7系统360漏洞修复后蓝屏怎么办首...
    99+
    2023-07-17
  • CVE-2023-36874 Windows错误报告服务本地权限提升漏洞分析
    CVE-2023-36874 Windows错误报告服务本地权限提升漏洞分析 漏洞简介 Windows错误报告服务在提交错误报告前会创建wermgr.exe进程,而攻击者使用特殊手法欺骗系统创建伪造的wermgr.exe进程,从而以syst...
    99+
    2023-08-30
    windows 网络安全
  • 云服务器漏洞怎么修复的
    一、漏洞类型 云服务器漏洞主要包括以下几种类型: SQL注入漏洞:SQL 语句可能会在未经授权的情况下被执行,从而导致恶意攻击。 跨站点脚本漏洞:该漏洞可能会利用浏览器的 cookie 标记或 JavaScript 注入等方式攻击服务器...
    99+
    2023-10-28
    漏洞 服务器
  • 网站服务器漏洞怎么修复
    网站服务器漏洞的修复方法:查看是否有账号泄露的情况以及有没有异常登录。查看系统补丁是否更新到最新版。如果同一服务器提供商同期内有多个站点被黑,可联系提供商做出应对方案。关闭危险端口,开启系统防火墙。更新网站文件并覆盖可疑或者被修改过的文件。...
    99+
    2024-04-02
  • 云服务器漏洞修复怎么办
    首先,了解云服务器的漏洞类型是非常重要的。云服务器是一种虚拟服务器,可以托管在互联网上。云服务器的漏洞主要包括以下几种类型: SQL注入漏洞:SQL注入是一种攻击方式,可以通过在数据库中执行任意代码来攻击服务器。SQL注入漏洞是云服务器...
    99+
    2023-10-28
    漏洞 服务器
  • 阿里云服务器提示有漏洞怎么修复啊
    首先,我们需要更新阿里云服务器的操作系统和软件版本,以确保最新的安全补丁已经得到了更新。这些更新可以修复已知的漏洞,例如SQL注入漏洞。同时,我们还需要检查服务器的硬件和网络设置,以确保没有任何可能导致漏洞的硬件或网络问题。 其次,我们需...
    99+
    2023-10-28
    阿里 漏洞 提示
  • 阿里云服务器提示有漏洞怎么修复好
    首先,我们需要了解漏洞的类型。常见的漏洞类型包括SQL注入漏洞、XSS漏洞、CSRF漏洞等。SQL注入漏洞是通过SQL语句攻击用户的方式,可能导致数据库被篡改、泄露等安全问题。XSS漏洞是通过跨站脚本攻击(XSS)攻击用户的方式,可能导致用...
    99+
    2023-10-28
    阿里 漏洞 提示
  • 腾讯云服务器漏洞怎么修复
    腾讯云服务器漏洞的修复取决于所使用的漏洞类型和修复方法。如果您使用的是常见的Web应用程序服务器(WAS)漏洞,通常可以使用防火墙、防毒软件和漏洞扫描工具等来保护您的服务器。如果您使用的是云存储服务(CAS)漏洞,通常可以使用云存储供应商提...
    99+
    2023-10-26
    腾讯 漏洞 服务器
  • 阿里云服务器漏洞怎么修复
    1. 确认漏洞类型 首先,需要确认阿里云服务器存在哪些漏洞。可以通过扫描工具或者安全检测服务来检测服务器的漏洞情况。常见的漏洞类型包括系统漏洞、应用程序漏洞、网络漏洞等。 2. 及时更新系统和应用程序 对于已知的漏洞,阿里云会及时发布安全...
    99+
    2023-10-27
    阿里 漏洞 服务器
  • 教你win7系统360漏洞修复后蓝屏怎么办
    导致Windows 7蓝屏的原因有很多,可能是软件或程序不兼容,可能会受到病毒感染等等。最近有人反映修复win7系统360漏洞后发生蓝屏,希望找到解决win7蓝屏问题的方法。小编今天教大家如何解决修复了360漏洞后win7系统出现蓝屏的问题...
    99+
    2023-07-24
  • 阿里云服务器有漏洞怎么修复
    阿里云服务器是目前市场上最受欢迎的云计算服务之一,但是由于其庞大的用户群体和复杂的系统架构,难免会出现一些漏洞。这些漏洞可能会导致服务器被黑客攻击,数据泄露等问题,因此及时修复漏洞是非常重要的。 检测漏洞首先,我们需要检测服务器是否存在漏洞...
    99+
    2024-01-31
    阿里 漏洞 服务器
  • 阿里云服务器漏洞怎么修复的
    简介 在使用阿里云服务器时,有时候会遇到服务器漏洞的问题,这些漏洞可能会给网站或应用带来安全风险。为了保障服务器的安全性,及时修复服务器漏洞是非常重要的。本文将介绍如何修复阿里云服务器的漏洞。修复步骤步骤一:更新系统和软件首先,确保服务器上...
    99+
    2024-01-16
    阿里 漏洞 服务器
  • 腾讯云服务器漏洞怎么修复的
    腾讯云服务器漏洞的修复取决于多个因素,例如服务器的配置、操作系统和应用程序等。为了更好地确定修复的方案,需要进行深入的技术分析。通常情况下,可能需要使用漏洞扫描工具进行安全性评估,然后使用修复工具对服务器进行重新配置和安装操作系统和应用程序...
    99+
    2023-10-27
    腾讯 漏洞 服务器
  • 云服务器漏洞无法修复怎么解决
    如果云服务器存在无法修复的漏洞,以下是几个解决方案:1. 隔离服务器:将受漏洞影响的服务器与其他服务器物理隔离,限制其对其他服务器的...
    99+
    2023-09-08
    云服务器
  • 腾讯云服务器漏洞怎么修复的啊
    首先,在使用云服务器之前,应该进行安全漏洞评估。评估可以帮助识别潜在的漏洞并采取适当的措施来修复它们。腾讯云提供了多种工具和服务,包括漏洞扫描、漏洞测试、漏洞修复等。这些工具可以帮助用户检测和修复云服务器上的安全漏洞,以提高云服务的安全性。...
    99+
    2023-10-28
    腾讯 漏洞 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作