18luck新利官网

EN
  • Linux权限提升:Python库劫持

    颁布功夫:2021-07-02
    浏览量: 12724

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

    1.介绍

    通常来说,,,,, ,, ,当攻击者处于有python文件的环境中,,,,, ,, ,能够用来提升其接见权限的方式比力有限。。。 。。。本文将介绍利用写权限、sudo权限和编纂Path变量,这三种提权方式。。。 。。。

    为了方便演示,,,,, ,, ,我们先创建一个导入一些库的示例剧本。。。 。。。在现实情况中,,,,, ,, ,这可能是个通常的python剧本或是一个开发人怨佚在进行的项目。。。 。。。在CTF角逐中,,,,, ,, ,可能很容易找到一个蕴含与此相类似的剧本。。。 。。。我们创建的示例剧本中,,,,, ,, ,首先导入webbrowser??????椋,,,, ,, ,而后使用open函数来运行设备上的默认web浏览器,,,,, ,, ,来打开/网页(此处以18luck新利官网官网举例),,,,, ,, ,如图1-1。。。 。。。

    图片1.png

                       图1-1能够看到运行剧本法式会打开18luck新利官网官网

    步骤一:这个缝隙利用是基于我们导入的??????槲募要拥有写权限。。。 。。。当被导入的??????槲募拥有允许任何用户编纂的权限时,,,,, ,, ,它就可能成为一个缝隙。。。 。。。在我们创建的python示例剧本中,,,,, ,, ,挪用了webbrowser.py??????槲募。。。 。。。为了更好地相识这种提权方式,,,,, ,, ,我们将首先在ubuntu环境中创建脆弱性缝隙环境,,,,, ,, ,而后使用另一个机械来攻击利用这个缝隙。。。 。。。


    缝隙创建:正如前文所讲,,,,, ,, ,在这种步骤中,,,,, ,, ,缝隙是基于??????槲募的权限。。。 。。。为了机关这个缝隙,,,,, ,, ,我们首先必要找到??????槲募。。。 。。。我们能够用locate号令来找到它,,,,, ,, ,当然也能够利用find之类的号令进行查找。。。 。。。我们能够看到它位于/usr/lib/python3.8/里面,,,,, ,, ,而后我们能够看到,,,,, ,, ,??????槲募的默认权限是:所有者有读、写、执行的权限,,,,, ,, ,组有执行和读的权限,,,,, ,, ,其他用户只有执行的权限。。。 。。。这意味着除非用户是root权限,,,,, ,, ,不然任何人不能编纂该文件。。。 。。。为了机关这个缝隙,,,,, ,, ,我们必要用chmod号令扭转一下权限,,,,, ,, ,使每个用户都能够读取、写入和执杏祝。。 。。。这从下图1-2中能够看到。。。 。。。

    图片3.png

                      图1-2能够看到所有效户对文件拥有读,,,,, ,, ,写,,,,, ,, ,执行权限。。。 。。。

    要想让Linux机械变得易受攻击,,,,, ,, ,下一步要做的就是提供一个运行python剧本的步骤。。。 。。。最单一的步骤是写入sudoers文件中,,,,, ,, ,这样攻击者(能够接见用户lele就能够执行我们创建的python剧本(hack.py)。。。 。。。如图1-3.

    图片4.png 

    图1-3

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

    缝隙利用:该缝隙利用的前提是我们在指标机上已经获得初始安身点。。。 。。。而后我们能够利用这种步骤在获得初始安身点后提升权限。。。 。。。为了仿照这种情况,,,,, ,, ,我们先以用户lele的身份衔接到指标机。。。 。。。作为一个必要提升权限的攻击者,,,,, ,, ,我们运行sudo -l号令,,,,, ,, ,看看哪些剧本或二进造文件是以提升的权限运行的。。。 。。?????D芄豢吹剑,,,, ,, ,我们能使用python3.8来运行hack.py。。。 。。。作为一个攻击者,,,,, ,, ,我们使用cat号令查看剧本内容,,,,, ,, ,看到它导入一个名为webbrowser的??????椤!。 。。。我们使用locate号令找到该??????榈牡匚唬,,,, ,, ,发现它位于/usr/lib/python3.8钟祝。。 。。。而后我们还能够发现lele用户占有该??????榈男慈ㄏ。。。 。。。如图1-4,,,,, ,, ,图1-5所示。。。 。。。

    图片5.png

                         图1-4能够看到哪些剧本占有root权限

    图片6.png

                       图1-5能够看到指标剧本所处地位

    我们用vim编纂器打开该??????槲募,,,,, ,, ,而后在被hack.py文件挪用的函数里面参与了反弹shell的python剧本。。。 。。。在前面我们能够看到,,,,, ,, ,它使用一个open函数在浏览器中打开了一个网页。。。 。。。因而,,,,, ,, ,我们将反弹shell的代码增长到该??????槲募中,,,,, ,, ,如下图1-6所示。。。 。。。

    vim /usr/lib/python3.8/webbrowser.py

    图片6.png

                          图1-6将反弹shell的代码写入图中地位

    编纂完??????槲募后,,,,, ,, ,我们保留并关关编纂器。。。 。。。打开ctf机械的另一台终端,,,,, ,, ,我们在shellcode剧本中指定的端口上打开一个Netcat监听器,,,,, ,, ,而后以lele用户回到终端,,,,, ,, ,用sudo执行hack.py剧本,,,,, ,, ,如图1-7所示。。。 。。。

    图片7.png

                                   图1-7

    当剧本运行时,,,,, ,, ,我们就能够看到一个会话衔接到了18luck新利官网Netcat监听器。。。 。。。通过whoami号令和id号令能够看到我们已经成功地将Linux权限从lele用户提升到了root权限用户。。。 。。。

    步骤二:

    这个缝隙是基于Python库蹊径的优先级挨次,,,,, ,, ,它合用于我们剧本在导入的??????槲募。。。 。。。当一个??????樵诰绫局斜坏既胧保,,,, ,, ,Python会以特定的优先挨次在默认目录中寻找特定的??????槲募。。。 。。。在我们创建的python剧本中,,,,, ,, ,我们有webbrowser.py??????槲募被挪用。。。 。。。由于若是在与原始剧本一样的目录下存在一个Python??????槲募,,,,, ,, ,它将获得优吓宗默认蹊径的职位。。。 。。。为了更好地相识背后产生了什么,,,,, ,, ,以及怎么样导致权限升级的,,,,, ,, ,我们先在ubuntu环境中创建缝隙,,,,, ,, ,而后使用另一个机械Linux来利用这个缝隙。。。 。。。

    缝隙构建:

    正如前面所会商的,,,,, ,, ,在这种步骤中,,,,, ,, ,缝隙是基于??????槲募执行的优先挨次。。。 。。。为了机关这个缝隙,,,,, ,, ,首先,,,,, ,, ,我们必要把步骤一参与的反弹shell的代码注解掉或者直接删掉(如图2-1),,,,, ,, ,预防产生滋扰,,,,, ,, ,而后复原我们先前赋予文件的权限(如图2-2)。。。 。。。这样,,,,, ,, ,这台机械就不会在多个方面出现缝隙。。。 。。。

    图片9.png

    图2-1 注解掉先前加的反弹shell代码

    图片10.png

    图2-2复原webbrowser.py的权限。。。 。。。

    接下来,我们回到我们先前创建的python剧本。。。 。。。我们能够看到,它位于lele用户的home目录下,它依然蕴含一样的代码,必要导入 webbrowser??????,,,,, ,, ,如图2-3所示。。。 。。。

    图片11.png

                                 2-3

    sudoers文件中与步骤一中的编写一致,,,,, ,, ,使其蕴含剧本hack.py的正确蹊径,,,,, ,, ,如图2-4所示。。。 。。。

    图片12.png

    图2-4

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

    缝隙利用:

    同样,,,,, ,, ,该缝隙利用的前提是我们在指标机上已经获得初始安身点。。。 。。。而后我们能够利用这种步骤在获得初始安身点后提升权限。。。 。。。为了仿照这种情况,,,,, ,, ,我们以用户lele的身份衔接到指标机械。。。 。。。作为一个必要提升权限的攻击者,,,,, ,, ,我们运行sudo -l号令,,,,, ,, ,看看我们能够用哪些剧本或二进造文件是以提升的权限运行的。。。 。。。我们看到,,,,, ,, ,我们能够使用python3.8来运行hack.py。。。 。。。作为一个攻击者,,,,, ,, ,我们使用cat号令查看该剧本,,,,, ,, ,看到它导入了一个名为webbrowser的??????,,,,, ,, ,如图2-5。。。 。。。

    图片13.png

    图2-5

    由于 hack.py 位于 lele 用户的主目录内,,,,, ,, ,而我们有 lele 用户的接见权限,,,,, ,, ,我们能够在主目录内创建一个文件。。。 。。。在这种情况下,,,,, ,, ,必要把稳的是我们不能编纂 hack.py 文件。。。 。。。在这种情况下,,,,, ,, ,我们将创建一个webbrowser.py文件。。。 。。。而后在创建的webbrowser.py文件中增长反弹shell的代码。。。 。。。如图2-6

    图片14.png 

    图2-6 反弹shell代码

    接下来,我们必要运行一个Netcat侦听器端口,我们提到在反向shellcode。。。 。。。而后我们将持续使用sudo执行hakc.py剧本,,,,, ,, ,如图2-7。。。 。。。

    图片15.png

    图2-7

    当剧本运行时,我们看到一个会话衔接到Netcat侦听器。。。 。。。;;;;;;;峄暗膇d号令证明在指标机械上已经是root权限。。。 。。。我们已经成功地把lele用户提升特权为root用户,,,,, ,, ,如图2-8。。。 。。。

    图片16.png

    图2-8提权为root权限

    步骤3

    这个缝隙是通过Python PATH环境变量进行搜索的Python库来利用的。。。 。。。这个变量有一个目录列表,,,,, ,, ,在这个列表中,,,,, ,, ,Python会搜索导入??????榈姆制缒柯肌!。 。。。若是攻击者可能扭转或批改该变量,,,,, ,, ,那么他们就能够利用它来提升指标机械的权限。。。 。。。为了更好地相识是怎么样导致权限升级的,,,,, ,, ,我们和前面一样先在ubuntu环境中创建缝隙,,,,, ,, ,而后使用另一台Linux来攻击利用这个缝隙。。。 。。。

    缝隙构建

    正如前面所会商的,,,,, ,, ,这个步骤的缝隙利用是基于python环境path变量的。。。 。。。为了机关这个缝隙,,,,, ,, ,首先,,,,, ,, ,和前面一样,,,,, ,, ,我们必要复原Linux环境到最初的配置。。。 。。。而后,,,,, ,, ,在tmp目录内创建hack.py剧本,,,,, ,, ,我们能够验证该剧本的内容与之前一样,,,,, ,, ,如图3-1,,,,, ,, ,图3-2所示。。。 。。。

    图片17.png

    图3-1运行该剧本会打开18luck新利官网官网

    图片18.png 

    图3-2 能够看到剧本内容

    接下来,,,,, ,, ,我们必要在sudoers文件中做一些批改。。。 。。。首先,,,,, ,, ,我们把文件的地位改为/tmp目录,,,,, ,, ,而后在文件中参与SETENV象征,,,,, ,, ,如图3-3所示。。。 。。。这意味着lele用户能够使器拥有sudo权限的SETENV号令,,,,, ,, ,而无需输入root密码。。。 。。。SETENV是个能够扭转Python PATH环境变量的值,,,,, ,, ,并将任何地位纳入我们在前面的步骤中学到的执行挨次的号令。。。 。。。

    图片19.png 

    图3-3给18luck新利官网文件加上SETENV象征配置环境变量

    以上就是使机械容易受到Python库劫持的齐全过程。。。 。。。其余没有提到的配置都被设置为Linux的默认配置。。。 。。。

    缝隙利用

    同样,,,,, ,, ,该缝隙利用的前提是我们在指标机上已经获得初始安身点。。。 。。。而后我们能够利用这种步骤在获得初始安身点后提升权限。。。 。。。为了仿照这种情况,,,,, ,, ,我们以用户lele的身份衔接到指标机械。。。 。。。作为一个必要提升权限的攻击者,,,,, ,, ,我们运行sudo -l号令,,,,, ,, ,看看我们能够用哪些剧本或二进造文件是以提升的权限运行的。。。 。。。我们看到,,,,, ,, ,我们能够用root权限使用SETENV,这意味着我们能够用它来扭转导入??????榈挠畔劝ご巍!。 。。。由于hack.py位于/tmp目录内,,,,, ,, ,我们进入其中并查抄hack.py剧本,如图3-4所示。。。 。。。

    图片20.png 

    图3-4 能够看到已经以root权限进行设置环境变量

    由于它必要导入webbrowser??????椋,,,, ,, ,我们首先将创建一个名为webbrowser.py的恶意??????槲募,,,,, ,, ,而后利用扭转环境变量Python PATH的能力导入18luck新利官网恶意??????槲募,,,,, ,, ,恶意??????槲募中蕴含反弹shell的代码。。。 。。。如图3-5接着在剧本中提到的统一端口上启动一个Netcat监听器,,,,, ,, ,并持续将/tmp目录增长到Python蹊径中,,,,, ,, ,而后执行hack.py文件以提升18luck新利官网接见权限。。。 。。。

    图片21.png

    图3-5恶意??????槲募里蕴含反弹shell的代码

    当剧本运行时,,,,, ,, ,我们能够看到一个会话衔接到了18luck新利官网Netcat监听器。。。 。。。whoami和id号令讲了然我们已经成功地将权限从lele用户提升到了root权限用户,,,,, ,, ,如图3-6。。。 。。。

    图片22.png 

    图3-6已经从通常接见权限提权为root权限

    在这篇文章中,,,,, ,, ,我们通过报答的为Python库的环境设置三个真实的场景,,,,, ,, ,而后介绍了一些谬误的配置可能导致攻击者将其接见权限提升到root权限级此外步骤。。。 。。。


    热点内容

    起头试用18luck新利官网产品
    申请试用

    20年公安服务经验

    7*24幼时应急响应中心

    自主知识产权的产品设备

    专家级安全服务团队

    网络空间数据治理专家

    荣获国度科学技术二等奖

    置顶
    电话

    400-700-1218

    官方热线电话

    征询
    留言
    二维码
    微信公家号
    公司微博
    【网站地图】【sitemap】