磁盘组权限提升是一种复杂的攻击方法,针对 Linux 环境的磁盘组管理系统中的漏洞或错误配置。在磁盘组权限提升攻击期间,攻击者可能会将重点放在磁盘设备(例如/dev/sda)上,它代表 Linux 系统中的主硬盘驱动器,通常与第一个SCSI(小型计算机系统接口)磁盘设备相关联。攻击者利用与 /dev/sda 和类似设备相关的漏洞或错误配置来获取对敏感数据的未经授权的访问权限或利用相关漏洞。通过操纵权限或利用与磁盘设备相关的错误配置,攻击者旨在提升其权限或访问关键系统资源。
在本文中,我们将利用 ubuntu 机器上的磁盘组权限提升漏洞并获取 root 访问权限。以下是机器:
攻击者机器:Kali Linux(192.168.1.7)
让我们首先在 ubuntu 机器上创建一个新用户raj 。
usermod -aG disk raj
groups raj
apt install openssh-server
使用以下命令为root用户生成ssh 私钥和公钥:
ssh-keygen
mv id_rsa.pub authorized_keys
默认情况下,sshd 服务器系统范围的配置文件中PermitRootLogin和PubkeyAuthentication选项被注释掉。
这里我们需要在配置文件中做两处修改,第一处是将PermitRootLogin的值改为yes并删除注释(#),第二处是删除PubKeyAuthentication上的注释(#)。
service ssh restart
service ssh status
由于磁盘组配置错误漏洞是 Linux 中的一种权限提升技术,因此我们使用ssh服务并以raj用户的身份获取初始 shell ,以展示使用此漏洞的权限提升部分。
我们可以使用id命令来验证raj用户所属的组。可以看出raj是磁盘组的成员。
为了以人类可读的格式检查每个已安装文件的磁盘空间摘要,我们将使用以下命令:
这里我们将考虑安装/ (根)目录的分区,即/dev/sda3。
选择分区后,现在可以使用 Linux 中的debugfs实用程序来检查和修改分区。此实用程序还可用于创建目录或读取目录的内容。
使用debugfs实用程序创建测试目录后,它显示文件系统具有只读权限。因此,我们可以在这里尝试读取 root 用户的 ssh私钥,以便我们稍后可以使用 ssh 私钥登录。
debugfs /dev/sda3
mkdirtest
cat /root/.ssh/id_rsa
由于我们能够读取 root 用户的 openssh私钥,因此我们可以复制私钥并粘贴到文件中并赋予其有限的权限,以使其不成为过于宽松的私钥。
观察到权限提升已经完成,攻击者已经拥有root权限。现在我们可以读取/etc/shadow文件,获取其他用户的哈希值。
磁盘组权限提升是 Linux 系统安全的主要问题。它允许攻击者未经授权访问敏感数据并提升其权限。了解这种攻击的工作原理并建立强大的安全措施来防范这种攻击至关重要。这样做对于最大限度地降低风险和确保系统免受攻击至关重要。
原文始发于微信公众号(三沐数安):磁盘组权限提升
评论