Linux权限提升(基础到高级)0x2

admin 2024年5月17日21:31:34评论14 views字数 2614阅读8分42秒阅读模式
Linux权限提升(基础到高级)0x2

从《Linux权限提升(基础到高级)0x1》查看本系列的第一部分。

Linux权限提升(基础到高级)0x2

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-capabilitieshttps://blog.container-solutions.com/linux-capabilities-in-practice

是的,它们比 SUID、sudo 更好,但这并不意味着它们不可利用,如果配置不当,恶意攻击者可以轻松利用它们。

实践

我们可以使用“getcap”工具来列出启用的Capabilities

Linux权限提升(基础到高级)0x2

我们有很多具有Capabilities的二进制文件,但让我们利用 CAP_SETUID 。这个Capabilities的作用是让我们能够操纵 UID。我们可以将用户 ID 伪造为任何 ID,然后运行任何程序(0 = root 或任何用户)。

Linux权限提升(基础到高级)0x2

此功能与 SUID 相同,但请记住,vim 或 view 都没有设置 SUID 位。因此,在枚举文件以查找 SUID 时,无法发现此权限提升向量。

Linux权限提升(基础到高级)0x2

没有设置 SUID“s”位,但由于Capabilities (CAP_SETUID),其工作方式与 SUID 相同。

Linux权限提升(基础到高级)0x2

这里只需伪造 UID 并运行 bash shell。

Linux权限提升(基础到高级)0x2

Linux权限提升(基础到高级)0x2

05 计划任务

理论

Cron(守护进程/服务)用于安排二进制文件/脚本在特定时间或操作自动执行(与 Windows 中的任务计划程序相同)。默认情况下,它们以其所有者的权限运行(指谁设置了该特定工作)。Cron 作业配置存储为crontab(cron 表),以查看任务下次运行的时间和日期。系统上的每个用户都有自己的 crontab 文件,并且无论是否登录都可以运行特定任务。

利用计划任务方法提权很简单;

1.确定活跃的工作。

2.检查是否有以 root 权限或任何其他用户运行的计划任务。

3.更改将运行的脚本并获得该作业所有者权限。(我们可以更改该脚本是否具有写入、执行perm或未定义完整路径的漏洞等)。

Linux权限提升(基础到高级)0x2

实践

任何用户都可以读取/etc/crontab下保存系统范围 cron 作业的文件,因此请检查它。

Linux权限提升(基础到高级)0x2

让我们列举一下这个自动化脚本。(场景设定:系统管理员已删除该脚本,但该脚本的 cron 作业仍然处于活动状态)

Linux权限提升(基础到高级)0x2

脚本已从系统中删除,但 cron 作业仍在每分钟运行,因此,我们可以做的是创建一个与已删除的脚本文件名称相同的文件,这将导致 cron 作业执行我们的脚本新创建的文件具有 ROOT 权限。

Linux权限提升(基础到高级)0x2

Bash 反向 shell

Linux权限提升(基础到高级)0x2

一分钟后,我们将获得具有 ROOT 权限的目标的反向 shell。

Linux权限提升(基础到高级)0x2

06 PATH

理论

Linux 中的 PATH 是一个环境变量,它告诉操作系统在哪里搜索可执行文件。对于任何未内置到 shell 中或未使用绝对路径定义的命令,Linux 将开始在 PATH 下定义的文件夹中搜索。(PATH是我们这里讨论的环境变量,path是文件的位置)。

利用PATH方法提权很简单;

1.$PATH 下有哪些文件夹

2.您当前的用户是否具有这些文件夹的写入权限?

3.可以修改$PATH吗?

4.您可以启动的脚本/应用程序是否会受到此漏洞的影响?

实践

首先,检查所有具有写入权限的文件夹。

Linux权限提升(基础到高级)0x2

Linux权限提升(基础到高级)0x2

我们找到了一个用户的主目录。

检查路径下有哪些目录/文件夹以及我们是否可以修改路径。(问题 1、2、3 的答案)。是的,当前用户可以修改 PATH。

Linux权限提升(基础到高级)0x2

因此,将 Murdoch 的主目录添加到自定义的路径中。

export PATH=/home/murdoch/:$PATH

Linux权限提升(基础到高级)0x2

在 thm.py 中,看起来它正在执行操作系统命令“thm”(Q4 的答案)

Linux权限提升(基础到高级)0x2

创建了一个名为“thm”的文件并运行该脚本,因此它将转到自定义的路径搜索“thm”,在此上下文中,使权限提升成为可能的原因是脚本以 root 权限运行。因此,当在 /home/murdoch 中找到“thm”时,它将以 ROOT 权限运行。

Linux权限提升(基础到高级)0x2

检查这些自动化工具可以轻松枚举这些漏洞。

https://github.com/carlospolop/PEASS-ng/tree/master/linPEAShttps://github.com/diego-treitos/linux-smart-enumerationhttps://github.com/rebootuser/LinEnumhttps://github.com/sleventyeleven/linuxprivchecker

参考及来源:

https://infosecwriteups.com/privileges-escalation-techniques-basic-to-advanced-in-linux-973cb62cbe8d

Linux权限提升(基础到高级)0x2

免责&版权声明

安全小白团是帮助用户了解信息安全技术、安全漏洞相关信息的微信公众号。安全小白团提供的程序(方法)可能带有攻击性,仅供安全研究与教学之用,用户将其信息做其他用途,由用户承担全部法律及连带责任,安全小白团不承担任何法律及连带责任。欢迎大家转载,转载请注明出处。如有侵权烦请告知,我们会立即删除并致歉。谢谢!

原文始发于微信公众号(安全小白团):Linux权限提升(基础到高级)0x2

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月17日21:31:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux权限提升(基础到高级)0x2https://cn-sec.com/archives/2048706.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息