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

admin 2024年5月14日22:07:54评论15 views字数 2336阅读7分47秒阅读模式

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

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

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

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

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

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

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

10 计划任务(脚本完整/未定义绝对路径)

理论

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

利用计划任务(未定义完整路径)方法提权很简单;

  • 确定活跃的工作。

  • 检查是否有任何计划任务脚本未定义完整路径位置。

  • 如果找到,则创建一个与脚本同名的伪造文件,并且计划任务将引用 PATH 来搜索该脚本,并且在搜索时它将触发我们的伪造文件而不是原始文件。

如果未定义脚本的完整路径,则 cron 将引用 /etc/crontab 中 PATH 变量下列出的路径。(cron 守护进程的)PATH 中列出的目录非常重要。找到至少一个可写且与原始作业脚本的位置相比具有高优先级的位置。

实践

场景设定:我们有一个计划任务的脚本(overwrite.sh),未定义完整路径,以 ROOT 权限运行。

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

此外,我们在 Cron 守护进程的 PATH 变量中发现了一个可写目录,与原始脚本位置相比,它位于优先级更高(/home/user)。

下一步,转到该“user”用户目录并创建一个名为 overwrite.sh 的脚本。

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

我们的有效负载(伪造的)文件在运行时会将 bash 二进制文件复制到 rootbash 文件,并为其授予执行和 root suid 位权限。

等待计划任务运行。首先,它将在 PATH 中搜索 overwrite.sh ,并在第一次遍历中在 /home/user 中找到我们的有效负载(伪造的)脚本,因此它将忽略 /usr/bin 中的原始脚本位置并运行有效负载脚本。

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

一分钟后,我们就得到了一个 Root SUID 设置的二进制文件。只需使用 -p (以保留权限)运行它即可获取 root shell。

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

11 sudo(版本)

理论

用于类 Unix 计算机操作系统的 sudo 程序,使用户能够以另一个用户(默认为超级用户)的安全权限运行程序。

利用 sudo(版本)方法进行提权很简单;

1. 检查sudo程序的版本.

2. 搜索并找到该程序的漏洞利用代码。

3. 运行exploit获取root权限。

Linux 中的 sudo 程序有大量漏洞,因此是获得 root 访问权限的非常简单且常见的方法。

实践

检查版本

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

因此,已确认它容易受到CVE-2019-18634 的影响。

要了解此 CVE,请访问如下链接:

https://blog.qualys.com/vulnerabilities-research/2021/01/26/cve-2021-3156-heap-based-buffer-overflow-in-sudo-baron-samedit

下载CVE-2019-18634 漏洞利用代码并编译。

https://github.com/blasty/CVE-2021-3156

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

检查此工具可自动执行 SUDO 程序漏洞评估和测试。

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

12 权限升级:通过具有破坏权限的更高优先级 Python 库路径进行库劫持 (Python)

理论

Python 是一种高级通用编程语言。PYTHONPATH 是一个环境变量,您可以设置它来添加其他目录,Python 将在其中查找其模块和包。

库劫持方法很简单;(如果在 python 脚本中定义了库使用的完整/绝对路径,则不起作用)

1. 检查 python 脚本中使用的库。

2. 检查 PYTHONPATH 变量。

3. 检查所有路径的权限,如果这些路径中的任何一个是全局可写的,则会带来权限提升的风险。

如果未定义 python 模块/库的完整路径,则 python 将引用 PYTHONPATH。PYTHONPATH 中列出的目录非常重要。找到至少一个可写且与原始脚本的位置相比具有高优先级的位置。

实践

场景设定:我们有一个可以通过 ROOT 权限运行的 python 脚本。

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

在此脚本中,正在调用 2 个库,但没有使用完整路径,因此我们可以利用它。

现在,让我们检查 PYTHONPATH 环境变量以检查配置的所有路径。

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

很明显,我们已经在PYTHONPATH 变量最优先(执行脚本的目录)路径中获得了写入权限。

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

这里 /usr/lib/python3.5/zipfile.py (原始库路径)优先级小于正在执行的脚本的目录。

在我们的 python 脚本所在的路径中创建一个 forge 库,执行 Python 反向 shell。

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

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

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

Python 搜索一个名为 zipfile 的库,它会首先在我们调用脚本 (bak.py) 的当前目录中找到它,因此它会采用该库(我们的有效负载)并忽略原始库(其中位于 /usr/lib/python3.5/zipfile.py ,这都是因为路径的优先顺序。

参考及来源:

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

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

免责&版权声明

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

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

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

发表评论

匿名网友 填写信息