从《Linux权限提升(基础到高级)0x1》查看本系列的第一部分。
04 Capabilities
理论
系统管理员可以用来提高进程或二进制文件的权限级别的另一种方法是“Capabilities”。Capabilities有助于在更细粒度的级别(低级别/微级别)管理权限,从而提高安全性。
Capabilities概述:在 Capabilities 出现之前,我们只有特权进程和非特权进程的二进制系统;要么你的进程可以做所有事情——进行管理级内核调用,要么它被限制为标准用户的子集。某些可执行文件需要由标准用户运行,但也需要进行特权内核调用,因此会设置 suid 位,从而有效地授予它们特权访问权限。
这些可执行文件是黑客的主要目标——如果他们能够利用其中的错误,他们就可以升级他们在系统上的权限级别。这不是一个很好的情况,因此内核开发人员提出了一个更细致的解决方案:Capabilities。
这个想法很简单:我们将进程分割开来,只将进程分配给子集(它们需要的必要内核调用),而不是赋予进程进行任何内核调用的全部权限。例如ping,它只能被赋予单个CAP_NET_RAW功能,因为 ping 实际上不需要任何功能,而不是设置 SUID 位,这不仅赋予它 CAP_NET_RAW 权限,还允许进行其他内核级调用。
想了解更多关于这个主题的信息吗?可以访问以下链接:
https://book.hacktricks.xyz/linux-hardening/privilege-escalation/linux-capabilities
https://blog.container-solutions.com/linux-capabilities-in-practice
是的,它们比 SUID、sudo 更好,但这并不意味着它们不可利用,如果配置不当,恶意攻击者可以轻松利用它们。
实践
我们可以使用“getcap”工具来列出启用的Capabilities。
我们有很多具有Capabilities的二进制文件,但让我们利用 CAP_SETUID 。这个Capabilities的作用是让我们能够操纵 UID。我们可以将用户 ID 伪造为任何 ID,然后运行任何程序(0 = root 或任何用户)。
此功能与 SUID 相同,但请记住,vim 或 view 都没有设置 SUID 位。因此,在枚举文件以查找 SUID 时,无法发现此权限提升向量。
没有设置 SUID“s”位,但由于Capabilities (CAP_SETUID),其工作方式与 SUID 相同。
这里只需伪造 UID 并运行 bash shell。
05 计划任务
理论
Cron(守护进程/服务)用于安排二进制文件/脚本在特定时间或操作自动执行(与 Windows 中的任务计划程序相同)。默认情况下,它们以其所有者的权限运行(指谁设置了该特定工作)。Cron 作业配置存储为crontab(cron 表),以查看任务下次运行的时间和日期。系统上的每个用户都有自己的 crontab 文件,并且无论是否登录都可以运行特定任务。
利用计划任务方法提权很简单;
1.确定活跃的工作。
2.检查是否有以 root 权限或任何其他用户运行的计划任务。
3.更改将运行的脚本并获得该作业所有者权限。(我们可以更改该脚本是否具有写入、执行perm或未定义完整路径的漏洞等)。
实践
任何用户都可以读取/etc/crontab下保存系统范围 cron 作业的文件,因此请检查它。
让我们列举一下这个自动化脚本。(场景设定:系统管理员已删除该脚本,但该脚本的 cron 作业仍然处于活动状态)
脚本已从系统中删除,但 cron 作业仍在每分钟运行,因此,我们可以做的是创建一个与已删除的脚本文件名称相同的文件,这将导致 cron 作业执行我们的脚本新创建的文件具有 ROOT 权限。
一分钟后,我们将获得具有 ROOT 权限的目标的反向 shell。
06 PATH
理论
Linux 中的 PATH 是一个环境变量,它告诉操作系统在哪里搜索可执行文件。对于任何未内置到 shell 中或未使用绝对路径定义的命令,Linux 将开始在 PATH 下定义的文件夹中搜索。(PATH是我们这里讨论的环境变量,path是文件的位置)。
利用PATH方法提权很简单;
1.$PATH 下有哪些文件夹
2.您当前的用户是否具有这些文件夹的写入权限?
3.可以修改$PATH吗?
4.您可以启动的脚本/应用程序是否会受到此漏洞的影响?
实践
首先,检查所有具有写入权限的文件夹。
我们找到了一个用户的主目录。
检查路径下有哪些目录/文件夹以及我们是否可以修改路径。(问题 1、2、3 的答案)。是的,当前用户可以修改 PATH。
因此,将 Murdoch 的主目录添加到自定义的路径中。
export PATH=/home/murdoch/:$PATH
在 thm.py 中,看起来它正在执行操作系统命令“thm”(Q4 的答案)
创建了一个名为“thm”的文件并运行该脚本,因此它将转到自定义的路径搜索“thm”,在此上下文中,使权限提升成为可能的原因是脚本以 root 权限运行。因此,当在 /home/murdoch 中找到“thm”时,它将以 ROOT 权限运行。
检查这些自动化工具可以轻松枚举这些漏洞。
https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS
https://github.com/diego-treitos/linux-smart-enumeration
https://github.com/rebootuser/LinEnum
https://github.com/sleventyeleven/linuxprivchecker
参考及来源:
https://infosecwriteups.com/privileges-escalation-techniques-basic-to-advanced-in-linux-973cb62cbe8d
免责&版权声明
原文始发于微信公众号(安全小白团):Linux权限提升(基础到高级)0x2
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论