linux远程利用漏洞CVE-2016-4484 93次空密码重试就可以获得root权限 影响大多数Linux版本

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

在linux上只需要按住Enter键约70秒 或者 重试93次空密码,黑客拿到了具有根权限的Shell,从而获得了对加密Linux机器的完全远程控制。这个安全缺陷已被确认影响Debian、Ubuntu、Fedora和其他许多Linux版本。Arch Linux和Solus用户不受此安全问题影响。

这个安全问题源于Cryptsetup工具实现上的一个漏洞(CVE-2016-4484)。Cryptsetup工具通过Linux Unified Key Setup (LUKS)来加密硬盘;而在基于Linux的操作系统上,LUKS是标准的硬盘加密实现。据说这个东西,2004年就有了,你可以想象这个漏洞影响范围有多大。

LUKS和Cryptsetup是什么

LUKS(Linux Unified Key Setup)为Linux硬盘加密提供了一种标准,它不仅能通用于不同的Linux发行版本,还支持多用户/口令。因为它的加密密钥独立于口令,所以如果口令失密,我们可以迅速改变口令而无需重新加密真个硬盘。通过提供一个标准的磁盘上的格式,它不仅方便之间分布的兼容性,而且还提供了多个用户密码的安全管理。必须首先对加密的卷进行解密,才能挂载其中的文件系统。

cryptsetup就是加密工具,默认已经安装在系统中。使用cryptsetup对分区进行了加密后,这个分区就不再允许直接挂载。如果要使用这个分区,必须对这个分区做一个映射,映射到/dev/mapper这个目录里去,我们只能挂载这个映射才能使用。然而做映射的时候是需要输入解密密码的。

问题就出在这个挂载过程中,对于密码重试居然没有限制 (这是哪个程序员干的事情,拖出去打死……)

93次空密码重试就可以获得root权限

这个漏洞实际存在于系统启动时Cyrpsetup工具在解密过程中对错误密码的处理上,使得用户可以多次尝试密码操作。即使用完了所有的93次密码尝试机会,用户仍会掉进一个具有根权限的Shell(Ubuntu中为Busybox)。也就是说,如果你输入93次空白密码,或者按住"Enter"键约70秒,你就能访问根initramfs(初始RAM文件系统)Shell。

一旦获得目标Linux机器上的根Shell,你就能复制、修改或者破坏硬盘,或者通过网络偷出数据。

漏洞也可被远程利用

由西班牙安全研究人员Hector Marco和Ismael Ripoll发现的这个漏洞影响几乎所有的Linux发行版本,包括Debian、Ubuntu、Fedora、Red Hat Enterprise Linux(RHEL)、以及SUSE Linux Enterprise Server (SLES)。这可能置数以百万计的用户于风险之中。

在今年奥地利维也纳的DeepSec大会上发布的安全公告中,这两位研究人员这样解释这个漏洞:

“这个漏洞允许攻击者获取受影响系统的根initramfs shell。这个漏洞不受具体系统或配置的限制,因而非常切实可靠。攻击者可以复制、修改或者破坏硬盘,并设置网络来偷出数据。在图书馆、自动柜员机、机场设备、实验室等环境下,这个漏洞尤其严重。在这些环境下,整个启动过程都受到(BIOS和GRUB中的密码)保护,而我们只能使用键盘和鼠标。”

此时你可能会认为,只有在能物理访问目标系统时,才可能利用这个漏洞。但是,这个漏洞也可能被远程利用。如果使用了利用Linux的云端服务,你就可以远程利用这个漏洞,而不需要“物理访问”。

漏洞影响大多数Linux版本 提权、泄露、DoS一个都不少

然而,重要的是要意识到,虽然这个shell允许攻击者进行一系列的操作,但攻击者并不能利用这个漏洞来访问加密盘中的数据。根据Marco的描述,攻击者可以进行下列操作:

权限提升 :因为引导区一般都不会被加密,

  • 它可被用来存储SetUID位被使能的可执行文件。这个文件随后可被本地用户利用来提升权限。
  • 如果引导区未被防护,攻击者随后就可能替换掉内核和initrd镜像。

信息泄露 :攻击者可能访问所有的磁盘。虽然系统分区是被加密的,但它可能会被复制到外部设备,并随后被暴力破解。显然,在外部设备上访问解密后的信息是有可能的。

拒绝服务 (DOS):攻击者有能力删除所有磁盘上的信息。

如何修复这个漏洞

幸运的是,这个漏洞非常容易被修复。

首先,在LUKS密码提示窗口下按住Enter键约70秒,直到出现一个shell,以查看你的系统是否存在这个漏洞。如果存在,你需要向你的Linux版本提供商确认是否有可用的补丁。

如果没有可用的补丁,修改cryptroot文件从而在密码尝试次数达到上限时终止启动程序,也可以修复这个漏洞。为此,你可以将下列命令行添加到启动配置中:

sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="/GRUB_CMDLINE_LINUX_DEFAULT="panic=5 /' /etc/default/grub grub-install

由于已经有可用的补丁,因此请确保你始终使用最新的补丁包版本和最新的操作系统。




原文发布时间: 2017年3月24日  
本文由:HackerNews 发布,版权归属于原作者
原文链接:http://toutiao.secjia.com/linux-remote-exploit-cve-2016-4484
本文来自云栖社区合作伙伴安全加,了解相关信息可以关注安全加网站
相关文章
|
24天前
|
安全 Linux 虚拟化
|
23天前
|
Linux 数据安全/隐私保护
linux特殊权限!!
本文介绍了Linux系统中的特殊权限,包括suid、sgid和sbit。suid使普通用户在执行特定命令时获得root权限;sgid使用户在创建文件时继承目录的用户组权限;sbit确保用户只能删除自己在共享目录中创建的文件。此外,文章还讲解了chattr和lsattr命令,用于更改和查看文件的扩展属性,以及umask的概念和计算方法,帮助理解文件和目录的默认权限。
36 1
linux特殊权限!!
|
17天前
|
安全 算法 Linux
Linux 服务器还有漏洞?建议使用 OpenVAS 日常检查!
在数字化时代,Linux 服务器的安全至关重要。OpenVAS 是一款优秀的开源漏洞扫描工具,可以帮助及时发现并修复服务器中的安全隐患。本文将介绍 OpenVAS 的主要功能、使用方法及应对漏洞的措施,帮助用户加强服务器安全管理,确保企业数字化安全。
40 7
|
2月前
|
Kubernetes Linux 测试技术
|
2月前
|
Linux Shell 数据安全/隐私保护
Linux如何在服务器上进行密码的修改?
【10月更文挑战第6天】Linux如何在服务器上进行密码的修改?
81 1
|
2月前
|
Linux 应用服务中间件 nginx
Linux下权限设置之suid、sgid、sticky
Linux下权限设置之suid、sgid、sticky
|
2月前
|
Linux 数据安全/隐私保护 Windows
Linux_权限理解(详细PLUS
Linux_权限理解(详细PLUS
|
2月前
|
网络协议 Linux 网络安全
【Linux】用户和权限及实用操作------迅速了解用户和权限及其实用操作
【Linux】用户和权限及实用操作------迅速了解用户和权限及其实用操作
|
安全 Linux 数据安全/隐私保护
Linux 忘记密码解决方法
Linux 忘记密码解决方法
111 0
|
安全 Linux 数据安全/隐私保护
Linux 忘记密码解决方法
Linux 忘记密码解决方法
105 1