Linux权限提升(基础到高级)0x5(终章)

admin 2024年5月13日02:20:05评论9 views字数 2078阅读6分55秒阅读模式

点击此处查看本系列的前几部分

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

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

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

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

在本系列的这一部分中,我将介绍另外 3 种技术。

注意:这是Linux 权限提升系列的最后一部分,因为我涵盖了几乎所有重要的攻击向量(A/C 到 OSCP),但如果我发现任何新的向量/技术,我肯定会更新本系列。

Linux权限提升(基础到高级)0x5(终章)

Linux权限提升(基础到高级)0x5(终章)

13 权限提升:本地用户帐户暴力破解

用户是Linux 操作系统中的一个实体,可以操纵文件并执行其他一些操作。每个用户都被分配一个唯一的 ID 和属性。Linux中每个用户的密码以hash格式存储在/etc/shadow中。

理论

利用此方法提权很简单;(仅当没有其他攻击媒介可行时才使用此技术,因为此技术需要时间/资源,创建大量日志并且基于运气)

1. 查看系统当前所有用户。

2. 收集有关目标密码策略的所有可能信息(这部分是可选的,但很有用,因为我们可以缩小第3部分中字典/单词列表的搜索范围)

3. 对系统上的特定用户发起攻击。

实践

场景设定:系统中发现1个用户“luke”

Linux权限提升(基础到高级)0x5(终章)

此外,目标文件服务器上有一个文件,它向我们提供了目标网络中的密码策略的提示。

Linux权限提升(基础到高级)0x5(终章)

现在让我们尝试暴力破解用户“luke”的密码。这里用来暴力破解本地用户“luke”账户的工具是sucrack。

https://github.com/hemp3l/sucrack

Linux权限提升(基础到高级)0x5(终章)

Linux权限提升(基础到高级)0x5(终章)

现在我们可以切换到Luke用户来进一步将我们的权限提升到root或其他用户。

Linux权限提升(基础到高级)0x5(终章)

14 权限提升:二进制文件

理论

二进制包是包含(预构建)可执行文件的应用程序包,从源代码构建,并且不可逆。

利用此方法提权很简单;

  1. 搜索系统中所有已安装的二进制文件

2. 检查更容易出现漏洞的二进制版本,例如 exim、pkexec、su 等。

3. 查找或编写漏洞利用代码以获得该二进制文件所有者权限。

实践

在这里,我发现了一个 pkexec 程序,默认情况下具有 root 的 suid 位,但在这里我们不想滥用 suid,而是让我们检查这个 pkexec 二进制文件,因为这个二进制文件过去出现过漏洞。

Linux权限提升(基础到高级)0x5(终章)

我使用工具自动检查当前的 pkexec 二进制文件是否存在任何漏洞,或者是否容易受到CVE-2021–4034 的攻击。(最流行的 CVE 被称为“Pwnkit”,它影响了几乎所有 Linux 机器。此漏洞发生在 polkit 重,出现在所有Linux系统上默认安装的polkit实用程序pkexec中。

https://github.com/cyberark/PwnKit-Hunter

Linux权限提升(基础到高级)0x5(终章)

我使用这个漏洞利用代码来利用这个漏洞。

https://github.com/arthepsy/CVE-2021-4034

Linux权限提升(基础到高级)0x5(终章)

我们就获得了Root权限。同样,我们可以利用 Linux 中安装的其他易受攻击的二进制文件,例如 su、adduser、sudo、mount 等。

Linux权限提升(基础到高级)0x5(终章)

15 权限提升:共享对象注入

共享库是管理 Linux 系统上的依赖关系的最常见方法。这些共享资源在应用程序启动之前加载到内存中,当多个进程需要相同的库时,它只会在系统上加载一次。此功能可节省应用程序的内存使用量。

理论

利用共享对象注入方法提权很简单;

1. 使用 ltrace 或 strace 检查使用任何共享对象 (.so) 库的程序或服务(这两个程序都允许我们监视/跟踪该执行程序调用的所有系统调用或共享对象库)。

2. 如果找到任何共享对象库,则使用相同的库名称创建有效负载。

3. 再次执行该程序,这次它将调用您的有效负载共享对象而不是原始对象。

实践

场景设定:在这里,我们发现了一个具有 root suid 的二进制文件(但同样不需要在这里滥用 suid,因为我们要寻找共享对象)。

Linux权限提升(基础到高级)0x5(终章)

所以我们在后台运行这个二进制文件并跟踪进程。

Linux权限提升(基础到高级)0x5(终章)

我们发现一个共享对象(libcalc.so)正在被二进制文件(suid-so)访问,另一件好事是这个.so没有打开,因为它不存在于系统中。因此,让我们创建一个名为libcalc.so 的有效负载。

Linux权限提升(基础到高级)0x5(终章)

创建有效负载,之后只需编译它并再次执行二进制文件(suid-so)。

Linux权限提升(基础到高级)0x5(终章)

这次二进制文件 (suid-so) 将调用我们的有效负载(它会生成一个 shell),但该 shell 将是 root,因为二进制文件 (suid-so) 设置了 root suid 位,因此它以 root 权限运行。

参考及来源:

https://medium.com/bugbountywriteup/privileges-escalation-techniques-basic-to-advanced-in-linux-46ee0d67118d

Linux权限提升(基础到高级)0x5(终章)

16 免责&版权声明

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

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

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月13日02:20:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux权限提升(基础到高级)0x5(终章)https://cn-sec.com/archives/2086753.html

发表评论

匿名网友 填写信息