点击星标,即时接收最新推文
本文选自《内网安全攻防:红队之路》
扫描二维码五折购书
Linux 主机权限提升问题是普遍存在的。在Web 服务器、数据库、防火墙、IOT等基础设施中,大部分都运行着Linux 操作系统,鉴于Linux 设备在大量基础设施中的数量,组织加强和保护这些设备至关重要。在内网中,渗透测试人员也将遇到大量的Linux系统。
内核漏洞提权
通过linux-exploit-suggester排查内核漏洞提权
SUDO提权
SUID提权
GTFOBins与权限提升
内核漏洞提权
内核权限提升指的是通过利用许多内核交互的内核入口函数中的弱点来获取这些权限的过程。用户从文件系统读取、打开设备文件、发出系统调用或通过网络接口发送数据包等操作都需要与内核进行交互。
内核漏洞利用是利用内核漏洞以提升权限执行任意代码的程序。成功的内核漏洞利用通常会以 root 命令提示符的形式为攻击者提供超级用户访问目标系统的权限。在许多情况下,在一个老旧的 Linux 系统上利用内核漏洞进行权限提升是比较简单的。
完成一个内核漏洞利用往往需要条件:
*易受攻击的内核。
*匹配的漏洞利用程序。
*将利用载荷上传到目标的能力
*在目标上执行利用载荷的能力
通过linux-exploit-suggester排查内核漏洞
linux-exploit-suggester是Z-Labs发布的一款提权审计工具,下载地址见https://github.com/mzet-/linux-exploit-suggester,该工具通过对比Linux公开已知的内核漏洞,列出可能存在的漏洞。linux-exploit-suggester主要用于评估当前主机内核漏洞情况以及评估某个特定内核版本漏洞情况。
在目标Linux上,使用 uname -a 获取当前系统的版本情况,如图所示。
系统版本情况
通过wget下载linux-exploit-suggester,然后使用如下命令添加执行权限,结果如图所示。
wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/ master/linux-exploit-suggester.sh -O les.sh
chmod +x les.sh
下载linux-exploit-suggester脚本
执行如下命令,linux-exploit-suggester会输出该 Linux 内核在已知漏洞中的暴露情况,如图所示。
./les.sh -u "Linux linux 5.10.25-linuxkit #1 SMP Tue Mar 23 09:27:39 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux"
系统版本匹配内核漏洞
在实际网络环境中,也可以在目标Linux系统中运行linux-exploit-suggester,工具将输出当前环境下可能存在的内核提权漏洞,并且输出相应的漏洞细节。首先需要使用以下命令将linux-exploit-suggester下载到目标环境,然后添加执行权限,执行les.sh,可以获得当然环境下的内核漏洞信息,如图所示。
实际环境匹配内核漏洞
通过以上提权信息,攻击者可以进一步利用内核漏洞达到提权的目的。同时也可以作为漏洞检查工具,对Linux主机存在的内核漏洞进行排查。
SUDO提权
Sudo是 常见的Linux系统管理指令,是允许系统管理员让普通用户执行如cat reboot su等命令或者全部的root命令的一个工具。
在权限提升中,如果攻击者无法直接获得 root 访问权限,他可能会尝试查找任何具有 SUDO 访问权限的用户。当攻击者可以访问任何 sudo 用户,便可以使用已经配置了SUDO的特定二进制文件。管理员可能只允许普通用户通过 SUDO 运行部分命令而不是所有命令,但是即使如此,也存在安全隐患,导致这些特定命令存在权限提升问题。
通过以下命令可以列出sudo的权限,从而获得允许低权限用户sudo的二进制文件。
sudo -l
如图所示,可以看出主机sudo配置了二进制文件/bin/find。Find命令是一个比较典型的案例,当find分配了sudo权限时,攻击者可以利用find来执行任意root命令,达到提权的目的。
查看sudo
接下来通过如下命令,可以利用find提升到root权限,如图所示。
sudo find /tmp -exec sh -i \;
通过find提权
— 实验室旗下直播培训课程 —
和20000+位同学加入MS08067一起学习