028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

KDE4/5命令执行漏洞(CVE-2019-14744)简析-创新互联

作者:   HACHp1@知道创宇404实验室  
日期: 2019/08/08

原文链接: https://paper.seebug.org/1006/

创新互联建站是专业的任县网站建设公司,任县接单;提供成都做网站、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行任县网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

漏洞简介

KDE Frameworks是一套由KDE社群所编写的库及软件框架,是KDE Plasma 5及KDE Applications 5的基础,并使用GNU通用公共许可证进行发布。其中所包含的多个独立框架提供了各种常用的功能,包括了硬件集成、文件格式支持、控件、绘图功能、拼写检查等。KDE框架目前被几个Linux发行版所采用,包括了Kubuntu、OpenMandriva、openSUSE和OpenMandriva。

2019年7月28日Dominik Penner(@zer0pwn)发现了KDE framework版本<=5.60.0时存在命令执行漏洞。

2019年8月5日Dominik Penner在Twitter上披露了该漏洞,而此时该漏洞还是0day漏洞。此漏洞由KDesktopFile类处理.desktop或.directory文件的方式引起。如果受害者下载了恶意构造的.desktop或.directory文件,恶意文件中注入的bash代码就会被执行。

2019年8月8日,KDE社区终于在发布的更新中修复了该漏洞;在此之前的三天内,此漏洞是没有官方补丁的。

一些八卦

影响版本

漏洞复现

环境搭建

KDE4/5 命令执行漏洞 (CVE-2019-14744) 简析

复现过程及结果

PoC有多种形式,此处使用三种方式进行复现,第1、2种为验证性复现,第3种为接近真实情况下攻击者可能使用的攻击方式。

1.PoC1: 
创建一个文件名为”payload.desktop”的文件:

KDE4/5 命令执行漏洞 (CVE-2019-14744) 简析

在文件中写入payload:

KDE4/5 命令执行漏洞 (CVE-2019-14744) 简析

保存后打开文件管理器,写入的payload被执行:

KDE4/5 命令执行漏洞 (CVE-2019-14744) 简析

文件内容如下:

KDE4/5 命令执行漏洞 (CVE-2019-14744) 简析

2.PoC2:

创建一个文件名为” .directory”的文件:

KDE4/5 命令执行漏洞 (CVE-2019-14744) 简析

使用vi写入内容(此处有坑,KDE的vi输入backspace键会出现奇怪的反应,很不好用):

KDE4/5 命令执行漏洞 (CVE-2019-14744) 简析

写入payload:

KDE4/5 命令执行漏洞 (CVE-2019-14744) 简析

保存后打开文件管理器,payload被成功执行:

KDE4/5 命令执行漏洞 (CVE-2019-14744) 简析

3.PoC3: 
攻击者在本机启动NC监听:

KDE4/5 命令执行漏洞 (CVE-2019-14744) 简析

攻击者将payload文件打包挂载至Web服务器中,诱导受害者下载:

KDE4/5 命令执行漏洞 (CVE-2019-14744) 简析

受害者解压文件:

KDE4/5 命令执行漏洞 (CVE-2019-14744) 简析

解压后,payload会被执行,攻击者接收到反连的Shell:

KDE4/5 命令执行漏洞 (CVE-2019-14744) 简析

漏洞原理简析

desktop entry

详见: https://wiki.archlinux.org/index.php/Desktop_entries_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

漏洞的产生

KDE的桌面配置解析参考了XDG的方式,但是包含了KDE自己实现的功能;并且其实现与XDG官方定义的功能也有出入,正是此出入导致了漏洞。

在KDE文档中有如下的话( https://userbase.kde.org/KDE_System_Administration/Configuration_Files#Shell_Expansion ):

Shell ExpansionSo called Shell Expansion can be used to provide more dynamic default values. With shell expansion the value of a configuration key can be constructed from the value of an environment variable.To enable shell expansion for a configuration entry, the key must be followed by [$e]. Normally the expanded form is written into the users configuration file after first use. To prevent that, it is recommend to lock the configuration entry down by using [$ie].Example: Dynamic EntriesThe value for the "Email" entry is determined by filling in the values of the $USER and $HOST environment variables. When joe is logged in on joes_host this will result in a value equal to "joe@joes_host". The setting is not locked down.[Mail Settings]Email[$e]=${USER}@${HOST}

分享题目:KDE4/5命令执行漏洞(CVE-2019-14744)简析-创新互联
浏览路径:http://www.tsicrk.com/article/ccoiei.html

其他资讯

让你的专属顾问为你服务

2.5371s