在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
本文来自云栖社区合作伙伴安全加,了解相关信息可以关注安全加网站

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

  1. 隐藏十年竟无人发现!Sudo 漏洞被曝出:无需密码就能获取 root 权限

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) Sudo,想必但凡接触过 Linux 或 Unix 操作系统的开发者都知道这个可以"为所欲为"的应用程序,系统管理员 ...

  2. 隐藏了十年的Sudo漏洞爆出:无需密码就能获取root权限

    Sudo,想必但凡接触过Linux或Unix操作系统的开发者都知道这个可以"为所欲为"的应用程序,系统管理员可通过Sudo让普通用户执行部分或全部的root命令. 而就在 1 月 ...

  3. 隐藏了十年的 Sudo 漏洞曝出:无需密码就能获取 root 权限

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) Sudo,想必但凡接触过 Linux 或 Unix 操作系统的开发者都知道这个可以"为所欲为"的应用程序,系统管理员 ...

  4. p7za无root权限安装/7z linux安装

    p7za无root权限安装/7z linux安装 最近在一个无root的服务器下载了超大的7z文件,结果解压的时候发现没有7za傻眼了,后面无root安装的时候还踩了几个坑,记录一下. 源码安装 首先 ...

  5. 非root权限如何读写Linux文件(转)

    非root权限如何读写Linux文件(转) 用户在使用 Linux 系统时难免会出现口令遗失.配置错误.系统故障等问题,导致不能正常登录进自己的 Linux 系统.如果能够以其它的方式去读写 Linu ...

  6. linux:命令su、exit、sudo登入、退出用户、临时root权限详解。

    linux:命令su.exit.sudo登入.退出用户.临时root权限详解. 简单了解root用户:   su和exit:  sudo: sudo 使用时需要输入itheima的密码.输对了也不能使 ...

  7. linux用root权限执行命令,Linux root权限获取之sudo命令详解

    1. 了解sudo的作用 日常操作中为了避免一些误操作,更加安全的管理系统,我们一般使用普通用户登录系统,而非root.当需要执行一些管理员命令操作时,再切换成root用户身份去执行. 普通用户切换到 ...

  8. linux远程登录失败锁定,登录失败锁定策略配置登录超时策略禁用root远程登录脚本...

    登录失败锁定策略配置登录超时策略禁用root远程登录脚本 [plain] #!/bin/sh #set up login timeout # 60s donot do any operation,au ...

  9. Linux Shell Shock漏洞利用和实战

    漏洞介绍: Shellshock,又称Bashdoor,是在Unix中广泛使用的Bash shell中的一个安全漏洞,首次于2014年9月24日公开.许多互联网守护进程,如网页服务器,使用bash来处 ...

  10. 多个Cisco产品报文远程拒绝服务漏洞

    多个Cisco产品报文远程拒绝服务漏洞 影响版本: Cisco NX-OS Cisco Nexus 5000 Cisco IOS Software Cisco IOS-XE Software Cisc ...

最新文章

  1. andriod之对话框--标准对话框、列表对话框、自定义对话框
  2. Python跨平台文件夹分割方法os.sep
  3. 【数据结构与算法】之深入解析“分割数组的最大值”的求解思路与算法示例
  4. web基础编程-图片管理网站
  5. LintCode-244.删除字符
  6. c++ primer plus中文版_如何成为一名厉害的C/C++程序员?
  7. UIAlert的使用
  8. matlab机器人轨迹规划仿真程序,基于MATLAB的六自由度机器人轨迹规划与仿真.pdf...
  9. mysql hibernate 分页查询_hibernate分页查询的实现
  10. python 线程锁_Python3多线程执行任务含线程同步锁
  11. $.ajax+php实战教程之下拉时自动加载更多文章原理分析
  12. HTML项目源码:医疗药品商城模板
  13. 【 移动硬盘安装Ubuntu18.04】
  14. 搜索引擎广告和信息流广告有什么区别?
  15. 干货预警!自动化立体仓库电气安全设计
  16. 字体单位 html,CSS字体单位
  17. java求几何周长面积_java求几何图形面积
  18. 初级软件开发人员进修必备的20本书(上)
  19. 如何在注册表里面删除所有qq相关文件
  20. JS中的pipe原理

热门文章

  1. 人人车严选店成都首店开业 占地面积1.2万平米
  2. 数据分析师——个人求职之路经历分享(2020届)
  3. 深空天体反差指数计算
  4. 帘卷秋声,雁过寒楼。落烟华,满清秋。浣一溪瘦月
  5. UVA - 10827 Maximum sum on a torus(dp最大子矩阵和)
  6. 雨落C++小课堂第二课——C++程序结构(2)
  7. 【HTML——线条雨落】(效果+代码)
  8. 计算机给文件重命名快捷键,计算机中文件重命名快捷键是什么
  9. 联想新计算机开机黑屏,联想笔记本电脑开机黑屏没反应的原因及解决办法攻略【维修总结】...
  10. Python 标准库之 Math 数学函数