在这篇文章中,我们将介绍一些在基于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的默认配置。
漏洞利用