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

admin 2023年9月21日11:25:55评论10 views字数 2183阅读7分16秒阅读模式

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

在本系列的这一部分中,我将介绍另外 3 种技术,格式与上一部分相同。首先是一些理论,然后是 Linux 系统上的实践。

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



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

07 NFS


理论


NFS 允许系统通过网络与其他系统共享目录和文件。通过使用 NFS,用户和程序可以访问远程系统上的文件,就像访问本地文件一样。


利用NFS方法提权很简单;

1. 检查 NFS 的配置文件(如果目标安装了 NFS,则位于 /etc/nfs)。

2. 查看具有“no_root_squash”属性的目录。

3. 在本地系统中挂载该易受攻击的(no_root_squash)NFS 目录。

4. 创建您的有效负载并设置该有效负载的写入和执行权限(使用本地系统上的 root 权限执行此操作)。

5. 所有这些操作都将在您的目标系统 NFS 目录中同步,因此只需从那里触发有效负载即可。


root_squash 是使用身份认证时远程超级用户(root)身份的特殊映射(本地用户与远程用户相同)。在 root_squash 下,客户端的 uid 0(root)被映射到 65534(nobody)。


root_squash 是一种避免通过 suid 可执行文件 Setuid 在客户端计算机上进行权限提升的技术。如果没有 root_squash,攻击者就可以在服务器上生成 suid 二进制文件,并在其他客户端上以 root 身份执行,即使客户端用户没有超级用户权限也是如此。因此,它可以保护客户端计算机免受其他恶意客户端的侵害。


实践


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


tmp 及其中的所有目录都没有禁用no_root_squash


在您的机器上(攻击者端)执行如下命令,挂载目标 nfs 共享。


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


挂载成功。


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


在该共享中创建有效负载并设置 suid。


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


在目标端执行该 setuid 有效负载。


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



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

08 环境变量


理论


环境变量允许您自定义系统的工作方式以及系统上应用程序的行为。例如,环境变量可以存储有关默认文本编辑器或浏览器、可执行文件的路径或系统区域设置和键盘布局设置的信息。


利用环境变量方法提权很简单;

1. 检查 LD_PRELOAD(使用 env_keep 选项)

2. 编写一个编译为共享对象 (.so) 的有效负载

3. 用指向我们 so 文件的LD_PRELOAD运行程序


LD_PRELOAD 是一个允许任何程序使用共享库的函数。如果启用“env_keep”选项,我们可以生成一个共享库,该库将在程序运行之前加载并执行。请注意,如果真实用户 ID 与有效用户 ID 不同,LD_PRELOAD 选项将被忽略。


实践


检查系统是否设置了 LD_PRELOAD 环境变量。(大多数 Linux 发行版默认启用此功能)


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


编译有效负载


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

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


执行

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



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

09 通配符


理论


对于 GNU/Linux 系统和各种其他用途,通配符在很多方面都很有用。命令可以使用通配符一次对多个文件执行操作,或在文本文件中查找短语的一部分。通配符有很多用途,通配符的使用有两种不同的主要方式,它们是 shell 经常使用的通配符模式/标准通配符。另一种选择是正则表达式,它在许多其他命令中都很流行,并且常用于文本搜索和操作。


了解更多通配符及其行为的基础知识,可访问如下链接。


https://tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm

用通配符方法提权很简单;

1. 检查任何脚本中是否使用了通配符。

2. 在此处搜索与通配符一起使用命令的通配符操作技巧。


https://gtfobins.github.io/

3. 利用并获得该脚本的所有者访问权限。


实践


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


在上面的计划任务脚本 (compress.sh) 中,tar 程序使用了 * 通配符,并且它以 root 权限每 1 分钟运行一次。


脚本内容:脚本将其工作目录更改为“用户”主目录,然后创建“用户”主目录中可用的所有文件/目录(*)的 tar 存档并将其保存到 /tmp/backup 目录中。)


我们知道 tar 有内置选项,可以让我们执行操作。详情查看如下页面。


https://www.manpagez.com/info/tar/tar-1.24/tar_47.php

让我们创建一个简单的反向 shell 脚本。


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


接下来创建一个文件(其名称将是 tar 内置选项 - checkpoint-action:它允许我们执行脚本或某些操作。)


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


这里 checkpoint-action 操作选项调用我们的反向 shell 脚本。

“如果我们使用 tar 命令,那么 tar 何时运行。tar 将识别文件名并将其视为内置命令,而不仅仅是普通的文件/名称。”

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


tar 再次运行后,它将触发 shell.elf ,同事我们得到目标 shell。



参考及来源:

https://infosecwriteups.com/privileges-escalation-techniques-basic-to-advanced-in-linux-3220bc8b6914



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

免责&版权声明


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

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

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年9月21日11:25:55
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux权限提升(基础到高级)0x3http://cn-sec.com/archives/2054835.html

发表评论

匿名网友 填写信息