Linux权限提升:Python库劫持

本文探讨了在Linux环境下,攻击者如何利用Python库和脚本提升权限,详细介绍了三种提权方法:1) 利用具有写权限的模块文件;2) 利用Python库路径优先级;3) 修改Python PATH环境变量。通过创建脆弱环境,展示如何通过篡改模块文件、创建恶意模块和调整环境变量实现权限提升,最终达到root权限。
摘要由CSDN通过智能技术生成

在这篇文章中,我们将介绍一些在基于Linux的设备上通过利用Python库和脚本提升权限的方法。

1.介绍

一般来说,当攻击者处于有python文件的环境中,可以用来提升其访问权限的方式比较有限。本文将介绍利用写权限、sudo权限和编辑Path变量,这三种提权方式。

为了方便演示,我们先创建一个导入一些库的示例脚本。在实际情况中,这可能是个一般的python脚本或是一个开发人员正在进行的项目。在CTF比赛中,可能很容易找到一个包含与此相类似的脚本。我们创建的示例脚本中,首先导入webbrowser模块,然后使用open函数来运行设备上的默认web浏览器,来打开http://www.1218.com.cn/网页(此处以任子行官网举例),如图1-1。

                                 图1-1可以看到运行脚本程序会打开任子行官网

方法一:这个漏洞利用是基于我们导入的模块文件要具有写权限。当被导入的模块文件具有允许任何用户编辑的权限时,它就可能成为一个漏洞。在我们创建的python示例脚本中,调用了webbrowser.py模块文件。为了更好地了解这种提权方式,我们将首先在ubuntu环境中创建脆弱性漏洞环境,然后使用另一个机器来攻击利用这个漏洞。

漏洞创建:正如前文所讲,在这种方法中,漏洞是基于模块文件的权限。为了构造这个漏洞,我们首先需要找到模块文件。我们可以用locate命令来找到它,当然也可以利用find之类的命令进行查找。我们可以看到它位于/usr/lib/python3.8/里面,然后我们可以看到,模块文件的默认权限是:所有者有读、写、执行的权限,组有执行和读的权限,其他用户只有执行的权限。这意味着除非用户是root权限,否则任何人不能编辑该文件。为了构造这个漏洞,我们需要用chmod命令改变一下权限,使每个用户都可以读取、写入和执行。这从下图1-2中可以看到。

图1-2可以看到所有用户对文件具有读,写,执行权限。

要想让Linux机器变得易受攻击,下一步要做的就是提供一个运行python脚本的方法。最简单的方法是写入sudoers文件中,这样攻击者(可以访问用户lele)就可以执行我们创建的python脚本(hack.py)。如图1-3.

图1-3

以上就是一个完整使机器容易受到Python库劫持的攻击的过程,其余没有提到的配置都为Linux的默认配置。

漏洞利用࿱

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值