GNU C库(GLIBC)用作GNU系统中的C库,并且是基于Linux的系统不可或缺的。 GLIBC的核心定义了程序的基本功能,包括系统调用和诸如Open,Malloc,printf和Exit的常见功能。 Dynamic Loader是GLIBC的重要组成部分,通过管理共享库并在运行时链接它们在准备和执行程序中起关键作用。
介绍以授权用户而无需重新编译,GLIBC_Tunables环境变量使用户可以在运行时修改Glibc的行为。它提供了一种调整性能和行为参数的方法,从而影响应用程序启动。
动态加载器处理GLIBC_Tunables中的缓冲区溢出漏洞构成了关键的安全风险。剥削授予当地攻击者提高特权,可能导致完全访问。成功利用了Fedora,Ubuntu和Debian等重大分布,强调了严重性和广泛的影响。
滥用或剥削此漏洞会影响系统性能,可靠性和安全性。虽然删除了漏洞的细节,但风险即将出现,因为缓冲区溢出可以迅速转变为仅数据攻击。使用GLIBC的流行Linux分布可能很容易受到影响,这强调了迅速意识和缓解的需求。
分配:2023年10月3日
类型:本地特权升级
受影响的版本:GLIBC 2.34及以后
发行:Rhel,Ubuntu,Fedora,Debian,Amazon Linux,Gentoo和其他使用GLIBC缓解措施
升级:迅速应用GLIBC更新。
显示器:请了解安全咨询。
评论:评估应用程序中的glibc_tunables。
审核:检查系统日志是否可疑活动。
Ubuntu 22.04 Ubuntu Glibc 2.35-0ubuntu3.1 SU来自Util-Linux 2.37.2 ASLR ON
二手Ubuntu(版本22.04.1)ISO用于创建虚拟机
成功安装后,我们不必更新任何内容,但是我们将安装Git和GNU Binutils软件包,因为它在系统中找不到,并且当您编译漏洞利用Python脚本时,您将面临错误。
通过使用这些命令:
$ sudo apt install git
$ sudo apt install binutils
检查是否脆弱
$ env -i "GLIBC_TUNABLES=glibc.malloc.mxfast=glibc.malloc.mxfast=A" "Z=`printf '%08192x' 1`" /usr/bin/su --help
如果输出
Segmentation fault (core dumped)
则它是脆弱的。
检查通常与GNU C库(GLIBC)关联的动态链接器/加载器的版本
$ ldd --version
输出将提供GLIBC的版本
ldd (Ubuntu GLIBC 2.35-0ubuntu3.6) 2.35
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
现在我们知道我们的机器很脆弱,可以升级根特征
注意:我们不应该在计算机中安装GCC,如果我们安装它将失去其漏洞,因此脚本将无法正常工作。
由于我们没有安装GCC,因此我们需要在主机计算机中编译C程序,然后将其导入到Guest Machine。
我们可以使用此命令
$ gcc exploit.c -o (outputname)
编译C程序
导入C程序的输出文件后,还会导入Python(Genlib.py)脚本。
现在编译Python脚本
$ python3 genlib.py
在编译了一个“”文件夹之后。
我们将在 /TMP文件夹中执行此操作,以便用户可以执行脚本和程序
现在最后,我们将执行该程序以升级根源特权
$ ./(nameoftheprogram)
这将需要一些时间,并获得根壳。
确保授权,而不是利用!
参考: