近日,Qualys研究团队公开披露了在Polkit的pkexec 中发现的一个权限提升漏洞,也被称为PwnKit。该漏洞是由于pkexec 无法正确处理调用参数,从而将环境变量作为命令执行,任何非特权本地用户可通过此漏洞获取root权限。目前该漏洞PoC已公开。
创新互联专业为企业提供谢家集网站建设、谢家集做网站、谢家集网站设计、谢家集网站制作等企业网站建设、网页设计与制作、谢家集企业网站模板建站服务,10年谢家集做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
具有任意用户权限的攻击者都可以在默认配置下通过修改环境变量来利用此漏洞,从而获得受影响主机的root 权限。
Polkit预装在CentOS、Ubuntu、Debian、Redhat、Fedora、Gentoo、Mageia等多个Linux发行版上,所有存在Polkit的Linux系统均受影响。
以下为安全版本
注意:版本号必须完全一致,否则还是存在漏洞。最好的办法是通过代码验证,验证代码库地址:
切换到源代码目录,编译,运行,输入命令whami可以看到当前用户已经变成了root。
事实证明确实存在此漏洞!
以下命令在Rocky Linux 8.5上验证,可以修复CVE-2021-4034漏洞
命令的含义
yum clean all :清除所有的缓存信息,包括packages、metadata、headers,这个命令相当于执行了下面三条命令
yum makecache : 生成缓存
此时再执行验证代码,可以发现已经无法提升权限。
注意 :在某些CentOS 8版本中,执行 yum update polkit -y 之后,polkit的版本号显示为:polkit-libs-0.115-12.el8.x86_64,经过验证,此版本仍然存在漏洞。此时只能通过下面的临时缓解措施解决。
CentOS 8 操作系统可能确实无法通过 yum update polkit -y 的方法修复漏洞,这是因为C entOS 8已经于2021年12月31日停止更新并停止维护(EOL)。
那么只能通过临时缓解措施解决了。
缓解之前的
缓解之后的
变化在于文件/usr/bin/pkexec的权限由之前的4755变成了0755
本次测试环境在阿贝云免费云服务器()上进行,阿贝云目前正在进行"免费虚拟主机"和“免费云服务器”体验活动,感兴趣的可以试试。
linux管理常见错误一:随意许可,原因是不理解许可
如果对许可配置不当,就会给黑客留下机会。处理许可问题的最简单方法是使用所谓的RWE方法,即Read(读取)、Write(写入)、Execute(执行)。假设你想让一个用户能够读取一个文件但不能写入文件。为此,你可以执行:chmod
u+w,u-rx 文件名,一些新用户可能会看到一个错误,说他们没有使用文件的许可,因此他们就使用了:Chmod 777
文件名,以为这样能够避免问题。但这样做实际上会导致更多的问题,因为它给了文件的可执行的权限。
记住这一点:777将一个文件的读取、写入、执行的许可给了所有用户,666将一个文件的读取、写入权限给了所有用户,而555将文件的读取、执行权限给了所有用户,还有444、333、222、111等等。
linux管理常见错误二:忽视更新
这并不是说Linux管理员缺乏技巧。不过,许多Linux管理员在运行了Linux之后,以为日后就无事可做了,以为它安全可靠。其实,新的更新可以为一些新的漏洞打上补丁。维持更新可以在一个易受损的系统与一个安全的系统之间构造分水岭。Linux的安全来自于不断地维护。为了实现安全性,为了使用一些新的特性和稳定性,任何管理员都应当跟上Linux的更新步伐。
linux管理常见错误三:不经过严格审核,从多种渠道下载安装各种类型的应用程序
乍看起来,这也许是一个不错的主意。如果你在运行Ubuntu,你会知道包管理程序使用的是。deb软件包。不过,你找到的许多应用程序是以源代码的形式提供的。没有问题吗?这些程序安装后也许能够正常工作。但是你为什么不能随意安装程序呢?道理很简单,如果你以源的形式安装了程序,那么,你的软件包管理系统将无法跟踪你所安装的东西。
因此,在程序包A(以源的形式安装)依赖于程序包B(从一个。deb库安装的),而软件包B是从更新管理器更新的时候,会发生什么事情呢?程序包A可能运行,也可能无法运行。不过,如果程序包A和B都从。deb库安装的话,二者都能运行的机会将更高。此外,在所有的程序包都来自于同样的二进制类型时,更新程序包将更为容易。
linux管理常见错误四:将服务器启动进入到X
在一台机器是专用服务器时,你可能会想到安装X,这样一些管理任务就会简单一些。不过,这并不意味着用户需要将服务器启动进入到X.这样会浪费珍贵的内存和CPU资源。相反地,你应当在级别3上停止启动过程,进入命令行模式。这样做不但会将所有的资源留给服务器,而且还会防止泄露机器的机密。要登录到X,用户只需要以命令行方式登录,然后键入startx进入到桌面。
linux管理常见错误五:糟糕的口令
记住,root
的口令通常是linux王国的关键。所以为什么要让root的口令那么容易被破解呢?保障你的用户口令的健壮性至关重要。如果你的口令比较长,且难于记忆,可将这个口令存放在一个可被加密的位置。在需要这个口令时,可用解密软件解开这个口令使用之。
linux管理常见错误六:没有备份关键的配置文件
许多管理员都有这样的体会,在升级到某个X版本,如X11之后,却发现新版本破坏了你的xorg.conf配置文件,以至于你再也无法使用X?建议你在升级X之前,先对以前的/etc/x11/xorg.conf作一个备份,以免升级失败。当然,X的升级程序会设法为用户备份xorg.conf文件,但它却在/etc/x11目录内备份。即使这种备份看起来不错,你最好还是自己做一个备份吧。笔者的一个习惯是将其备份到/root目录中,这样,用户就可以知道只有根(root)用户能够访问此文件。记住,安全第一。这里的方法也适用于其它的关键备份,如Samba、Apache、Mysql等。
linux管理常见错误七:忽视日志文件
/var/log的存在是有理由的。这是存放所有的日志文件的唯一位置。在发生问题时,你首先需要看一下这里。检查安全问题,可看一下/var/log/secure.笔者看的第一个位置是/var/log/messages.这个日志文件保存着所有的一般性错误。在此文件中,你可以得到关于网络、媒体变更等消息。在管理一台机器时,用户可以使用某个第三方的应用程序,如logwatch,这样就可以创建为用户创建基于/var/log文件的各种报告。
linux管理常见错误八:没有安装一个可正常运行的内核
你可能不会在一台机器上安装10个以上的内核。但你需要更新内核,这种更新并没有删除以前的内核。你是怎么做的呢?你一直保持使用最近的可正常工作的内核。假设你目前正常工作的内核是2.6.22,而2.6.20是备份内核。如果你更新到2.6.26,而在新内核中一切都工作正常,你就可以删除2.6.20了。
linux管理常见错误九:逃避使用命令行
恐怕很少有人愿意记住那么多命令。在大多数情况下,图形用户界面是许多人的最爱。不过,有时,命令行使用起来更加容易、快捷、安全、可靠。逃避使用命令行是Linux管理的大忌。管理员至少应当理解命令行是如何工作的,至少还要掌握一些重要的管理命令。
linux管理常见错误十:以根用户身份登录
这是一种很危险的错误。如果用户需要根特权来执行或配置一个应用程序,可以在一个标准的用户账户中使用su切换到root用户。登录到root为什么不是一件好事儿?在用户以标准用户身份登录时,所有正在运行的X应用程序仍拥有仅限于此用户的访问权。如果用户以根用户身份登录,X就拥有了root的许可。这就会导致两个问题,一、如果用户由GUI犯了一个大错,这个错误对系统来说,有可能是一个巨大的灾难。二、以根用户的身份运行X使得系统更易于遭受攻击。
2021年02月04日,国外研究团队发现Sudo堆溢出漏洞(CVE-2021-3156),漏洞隐藏十年之久,成功利用此漏洞,任何没有特权的用户都可以在易受攻击的主机上获得root特权。研究人员已经在Ubuntu 20.04(Sudo 1.8.31),Debian 10(Sudo 1.8.27)和Fedora 33(Sudo 1.9.2)上独立验证漏洞并开发多种利用漏洞并获得完整的root用户特权,其他操作系统和发行版也可能会被利用。目前正值春节前最后一个工作周,腾讯安全专家提醒linux系统管理员尽快修复Sudo高危漏洞。
关于centos的修复方法主要是升级sudo命令的版本
操作步骤
1. yum makecache
参考文档
【安全通告】Linux Sudo本地提权漏洞安全风险通告(CVE-2021-3156)
由于最近Bash爆发了一个严重的漏洞,故此影响了市面上几乎所有的Linux系统。处于安全的角度考虑客户要求为每一个受影响的主机都进行漏洞修补。由于公司使用的是红帽系统故此安全也同样受到影响。
(题外话:红帽的补丁需要收费才能下载,作为穷人我表示无奈,问了一下公司也表示没有购买红帽的服务,红帽的服务一般是按着CPU颗数算的,好像是两颗为一组,一组服务(红帽的人管服务叫订阅)5×8服务价格为799美元,7×24的价格为1299美元。)
有漏洞的服务器执行以下命令会有"vulnerable"和"this is a test"的信息提示,如图:
如果没有漏洞或者漏洞已修补则只提示"this is a test"。
由于公司没有购买红帽服务故此从第三方渠道获得了补丁。(花了我好多积分,肉疼)
设计到的服务器有两种,一种是Red Hat Enterprise Linux Server release 5系统是32为的,系统上的bash为bash-3.2-24.el5。
拿到的补丁文件有bash-3.2-33.el5_11.4.i386.rpm这个文件是适合我这个版本使用。
上传到服务器上,开始安装。
顺利安装完成,再次执行测试语句得知漏洞已修补。
另一种为Red Hat Enterprise Linux Server release 6也是32位的,bash的版本为bash-4.1.2-8.el6.i686。这台比较麻烦得到的补丁包为bash-4.1.2-15.el6_5.2.src.rpm。一般来讲这种src的包都是为编译的,需要编译之后生成正常的rpm来进行安装。突然脑子抽筋了直接进行了安装,结果就报错了,如图:
后来想起来未编译的src的包需要进行编译然后才能生成正常的rpm包。
把src的包上传到服务器上,然后如下命令进行编译:
rpmbuild --rebuildbash-4.1.2-15.el6_5.2.src.rpm编译之后看提示在/root/rpmbuild/RPMS/i686/目录下生成了若干个包。
进入/root/rpmbuild/RPMS/i686/在下面找到bash-4.1.2-15.el6.2.i686.rpm这个包进行安装,再次测试漏洞已修复完成,如图:
剩下的就是还剩了几台红帽6的服务器,拿着这个编译好的包,到各个服务器上安装即可。到此为止宣布修复完成。
有需要红帽5和6补丁包的朋友我在这里提供了下载地址,32和64位的都在这里,上传Linux公社1号FTP服务器中了,请需要的朋友可以下载并参考以上步骤安装即可。
------------------------------------------分割线------------------------------------------
FTP地址:
用户名:ftp1.linuxidc点抗
密码:
在 2014年LinuxIDC点抗 \10月\Bash漏洞最新补丁安装教程【附下载】
下载方法见
------------------------------------------分割线------------------------------------------
Gitlab-shell 受 Bash CVE-2014-6271 漏洞影响
Linux再曝安全漏洞Bash 比心脏出血还严重
解决办法是升级 Bash,请参考这篇文章。
Linux Bash安全漏洞修复
更多RedHat相关信息见RedHat 专题页面
本文永久更新链接地址: