三种利用python脚本劫持实现Linux提权的方法 0x3

admin 2024年3月13日16:40:37评论8 views字数 1770阅读5分54秒阅读模式
点击此处查看本系列的前几部分。
三种利用python脚本劫持实现Linux提权的方法 0x1
三种利用python脚本劫持实现Linux提权的方法 0x2
三种利用python脚本劫持实现Linux提权的方法 0x3

01 方法三

这个漏洞基于 Python PATH 环境变进行搜索的Python 库。该变量保存了一个目录列表,Python 在其中搜索导入模块。如果攻击者能够更改或修改该变量,他们就可以利用它来在目标机器上提升权限。为了更好地了解背后的原理,以及它是如何导致特权升级的,我们将首先在我们的 Ubuntu 环境中创建这个漏洞,然后再使用 Kali Linux 来利用这个漏洞。

漏洞创建

如前所述,这种方法中的漏洞基于环境路径变量。要创建这个漏洞,首先我们需要恢复之前创建的易受攻击权限,以防止这台机器以多种方式变得脆弱。我们在 tmp 目录中创建了 hack.py 脚本。我们可以验证脚本内容与之前相同。

cd /tmplscat hack.py

三种利用python脚本劫持实现Linux提权的方法 0x3

接下来,我们需要在 sudoers 文件中做一些更改。首先,我们将文件位置更改为 /tmp 目录,然后我们向文件中添加 SETENV 标签。这意味着 pavan 用户可以使用具有 sudo 权限的 SETENV 命令,而无需输入 root 密码。SETENV是一种工具,可以更改PYTHONPATH环境变量的值,以将任何位置包含到我们在上一个方法中学到的执行顺序中

nano /etc/sudoerspavan ALL=(root) NOPASSWD:SETENV  /usr/bin/python3.8 /tmp/hack.py

三种利用python脚本劫持实现Linux提权的方法 0x3

这是使机器容易受到 Python 库劫持的完整过程。所有未提及的配置都设置为 Linux 的默认值,绝对没有进行任何其他更改,现在是扮演攻击者的时候了。

三种利用python脚本劫持实现Linux提权的方法 0x3

02 利用

再次强调,利用过程不包含获取目标机器初始立足点的方法,而是专注于在攻击者获得初始立足点后如何提升权限。为了模拟这一点,我们以用户 pavan 的身份连接到目标机器。像任何需要提升权限的攻击者一样,我们运行了 sudo -l 命令,以查看我们能够以特权运行哪些脚本或二进制文件。结果显示我们可以使用 SETENV,这意味着我们可以使用它来修改导入模块的优先级顺序。由于 hack.py 位于 /tmp 目录中,我们进入该目录并检查 hack.py 脚本。

ssh pavan@192.168.1.46sudo -lcd /tmpls

三种利用python脚本劫持实现Linux提权的方法 0x3

由于脚本导入了 webbrowser 模块,我们首先将创建一个名为 webbrowser.py 的恶意模块文件,然后利用更改环境变量 PYTHONPATH 的能力,我们将添加一个条目来包含我们的恶意模块文件。恶意模块文件包含反向 shellcode。我们在与脚本中提到的相同端口上启动了 Netcat 监听器,然后将 /tmp 目录添加到 Python 路径中,并执行 hack.py 文件以提升我们的访问权限。

cat hack.pynano webbrowser.pycat webbrowser.pysudo PYTHONPATH=/tmp/ /usr/bin/python3.8  /tmp/hack.py

三种利用python脚本劫持实现Linux提权的方法 0x3

脚本运行后,我们立即看到一个会话连接到了我们的 Netcat 监听器。通过执行 whoami 命令,我们确认当前会话的用户是目标机器上的 root 用户。我们成功地将权限从 pavan 用户提升到 root 用户。

nc -lvp 1234id

三种利用python脚本劫持实现Linux提权的方法 0x3

结论

在本文中,我们成功设置了三个针对 Python 库环境的真实场景,并介绍了一些可能导致攻击者提升其访问权限到 root 级别的配置错误。开发环境是最受攻击的环境之一,因为在这些环境中,执行任务的便利性优先于环境的安全性。本文证明了单个配置错误可能导致灾难性后果。

参考及来源:

https://www.hackingarticles.in/linux-privilege-escalation-python-library-hijacking/

三种利用python脚本劫持实现Linux提权的方法 0x3

免责&版权声明

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

原文始发于微信公众号(安全小白团):三种利用python脚本劫持实现Linux提权的方法 0x3

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月13日16:40:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   三种利用python脚本劫持实现Linux提权的方法 0x3http://cn-sec.com/archives/2565368.html

发表评论

匿名网友 填写信息