皇冠管理‘li’端(www.9cx.net):行使软{ruan}件担『dan』保理(li)器实现Linux提权_皇冠平台出租(rent.22223388.com)

皇冠平台出租rent.22223388.com)皇冠运营平台(rent.22223388.com)是皇冠(正网)接入菜宝钱包的TRC20-USDT支付系统,为皇冠代理提供专业的网上运营管理系统。系统实现注册、充值、提现、客服等全自动化功能。采用的USDT匿名支付、阅后即焚的IM客服系统,让皇冠代理的运营更轻松更安全。

,

简介

软件担保理器在Linux刊行版上是以root权限运行的,以便安装、更新或删除软件/软件包。在某些情形下,为了让非root/admin用户也能治理软件包,通常会授予sudo权限的方式来运行软件担保理器。

在本文中,我们将详细先容攻击者是若何行使这个权限,并通过root shell来获得机械的root接见权限的。

软件担保理器

对于基于debian的linux刊行版,通常可以使用下面所示的软件担保理器:

    apt/apt-get

    dpkg

    aptitude

    synaptic

就这里来说,APT(Advanced Packaging Tool)是最常用的一种软件担保理器。而Synaptic是一个GUI应用程序,其功效与下令行工具相似。另外,需要说明的一点是,软件包通常为.deb花样的文件。

对于基于Redhat的刊行版,可用的软件担保理器如下所示:

    yum (Yellowdog Updater, Modified)

    rpm

    dnf

这个刊行版下面的软件包通常为.rpm文件。

此外,另有一个叫snap的软件担保理器,它支持所有主要的Linux刊行版。因此,这就是说,它可以同时在基于debian和redhat的刊行版上使用。

在本文中,我们假设入侵者最先只拥有一个低权限的用户身份:只拥有以sudo身份运行上述软件担保理器的权限。

破绽行使方式:DEB

现在,假设我们有一个ubuntu服务器,而且该用户能够在其上通过sudo运行apt。


方式一:确立一个恶意的debian软件包

现实上,低权限的用户可以通过确立一个包罗下令的debian包来提升权限。

首先,我们将确立一个名为exploit的目录,然后确立一个运行whoami下令的shell剧本,并将其放在该文件夹中。



准备好后,我们将使用一个叫做fpm(Effing package management)的工具来确立一个debian软件包,以执行我们刚刚确立的剧本。

为了确立这个debian软件包,可以运行如下所示的fpm下令:



接下来,我们用下面的下令通过apt安装该软件包:



由于该下令是以root身份执行的,这样,我们就能以root身份运行任何下令了。现实上,我们可以使用差其余战略来获得一个root shell,好比给root用户添加ssh密钥或者获得一个反向的shell。

就本例来说,我们只需在exploit.sh剧本中把whoami下令改为bash,然后确立一个新的debian软件包即可。但这次,我们需要指定一个新的版原本升级已安装的现有版本。



这样,我们就能乐成地以root身份获得一个交互式shell。这种方式也适用于apt-get和dpkg。

方式2:APT设置选项

APT是软件担保理系统的一个高级下令行接口。这意味着,它为更低级的dpkg软件担保理器提供了一个前端接口。

当apt挪用dpkg时,我们可以指定在挪用发生之前(Pre-Invoke)或之后(Post-Invoke)运行的shell下令。

另外,上述内容可以使用设置文件举行设置。这些设置文件通常存储在/etc/apt/apt.conf.d中。然而,当需要提升权限的时刻,低权限的用户可能没有权限在该目录中确立文件。

APT也支持通过使用-o选项通过下令行指定这种设置。行使这一点,我们可以通过以下下令来获得一个root shell。





由于apt可以与dpkg举行交互,因此,我们也可以使用类似dpkg的设置来获得一个root shell。需要注重的是,我们不能直接将dpkg的设置转达给apt的下令行选项,因此,我们需要借助于设置文件。

APT允许我们通过下令行选项-c指定除默认设置之外要使用的设置文件。

下面,让我们确立一个恶意的设置文件并使用它。



为了使上述方式奏效,不能安装系统上已安装好的软件包。

需要说明的是,这里的手艺也适用于apt-get。

方式3:挪用默认分页器

当查看更新日志时,apt/apt-get会使用sensible-pager来显示信息,通常默认设置为less。这意味着apt会运行less,由于less也会以root身份运行,因此,我们可以通过它来获得root shell。

运行第一条下令,然后在分页器界面中运行第二条下令。这这种方式也适用于apt-get。


破绽行使方式:RPM

假设我们有一台centos 7服务器。与上节类似,假设我们最初的权限很低,只能以sudo身份运行yum。

方式1:确立一个恶意的rpm包

使用与前面相同的手艺,我们可以使用fpm确立一个恶意的rpm包。我们将使用ubuntu机械来确立这个包,然后将其转移到centos服务器上。

在这种情形下,进入shell是行不通的,因此,我们需要运行一个下令,以获得差其余shell权限。为此,我们可以将确立一个suid bash二进制文件,通过它获得root权限。

我们将在/tmp中确立exploit文件夹和exploit.sh剧本。然后,将下面的下令放到该剧本中。



现在,我们可以通过与确立debian软件包类似的下令来确立恶意的rpm软件包。



然后,我们可以通过启动一个python http服务器并通过下载的方式将其转移到centos服务器上。

在ubuntu服务器上执行下面的下令:


在centos服务器上执行下面所示的下令:


乐成下载后,我们就可以安装该软件包,并执行其中包罗的脚原本确立我们的suid bash二进制文件了。



这样,我们就乐成地获得了一个root shell。

方式2:加载自界说的yum插件

Yum提供的插件可以扩展和增强其功效。其中,某些插件是默认安装的。每当我们挪用yum下令时,Yum就会指出哪些插件(若是有的话)已经被加载和激活。

如下图所示,当我们运行yum update下令时,可以看到已经加载了哪些插件。

皇冠管理端

www.9cx.net)实时更新发布最新最快最有效的皇冠管理端网址,包括皇冠管理端手机网址,皇冠管理端备用网址,皇冠管理端最新网址,皇冠管理端足球网址,皇冠管理端网址大全。


凭证yum的使用说明:

插件是一个Python “.py”文件,它被安装在yum.conf中pluginpath选项所指定的目录中。

要想使用某个插件,必须知足以下条件:

1. 插件模块文件必须安装在适才形貌的插件路径中。

2. /etc/yum.conf中的全局插件选项必须被设置为“1”。

3. 插件的设置文件必须存在于/etc/yum/pluginconf.d/中,而且该文件中的启用设置必须设置为“1”。知足上述要求的最小设置文件为:

    [main]

    enabled = 1

凭证yum.conf的手册页的先容,另有几个插件设置需要举行处置:

  •     plugins

    0或1都可以。全局开关,启用或禁用yum插件。默以为0(禁用插件)。感兴趣的读者,可以参见yum(8) man中的PLUGINS部门以获得更多关于安装yum插件的信息。

  •     pluginpath

    yum寻找插件模块时所用的目录列表,默认的搜索目录为/usr/share/yum-plugins和/usr/lib/yum-plugins。

  •     pluginconfpath

    yum寻找插件设置文件时所用的目录列表。默认值是/etc/yum/pluginconf.d。

行使这些信息,我们可以查看centos服务器上的yum.conf。


我们看到,插件现在已经启用,但没有其他选项的条目,这意味着使用的是默认选项。

现实上,我们可以通过查看fastestmirror插件文件和设置来确认这一点。


现在我们已经为发动攻击做好了响应的准备。由于我们是一个低特权用户,以是,现在还没有默认的插件目录的写入权限,以是我们需要使用一个设置文件来指定我们有权编写的目录。

幸运的是,yum允许我们通过下令行下的-c选项来指定设置文件。好了,现在让我们确立一个名为custom_yum.conf的设置文件,其内容如下所示:


接下来,让我们确立插件的设置文件,并把它放到badplugin文件夹中。


然后,让我们最先确立插件自己。


最后,通过用下面的下令执行该插件,就能获得一个root shell。



破绽行使方式:Snap

由于snap可以在所有主要的刊行版上事情,因此,这里将通过ubuntu服务器环境来举行行使方式的展示。这里,我们假设低权限的用户能够以sudo权限运行snap。


确立一个恶意的snap软件包

确立恶意snap软件包有两种方式,一种是使用我们已经使用过的fpm下令,另一种是使用snapcraft下令。

现实上,确立软件包的思绪是一样的,然则在确立snap软件包时,我们可以指定钩子(hook)。

凭证官方文档的先容:钩子是一个可执行文件,当某个动作发生时,会在snap的限制环境中运行该文件。

在snap支持的钩子中,有一个叫做install的钩子。

凭证相关文档的先容:

install钩子只能在初始安装时被挪用,也就是说,它不会在随后的更新历程中被挪用。

钩子在启动snap服务(若是它有的话)和设置钩子之前执行。install钩子通常用于处置一次性的操作,例如在第一次安装时对资源举行早期初始化。

我们可以把这个install钩子确立为一个shell剧本,这样的话,当我们试图安装软件包时,它就会执行我们的恶意下令。

1. Snapcraft

接下来,让我们来设置环境。


其中,snapcraft init下令用于确立一个snap目录,并在其中确立一个snapcraft.yaml文件。

接下来,我们进入snap目录,并确立一个hooks目录,并放入install的相关文件:


现在,我们将相关的恶意下令放到install文件中,并将其转换为可执行的bash剧本。

由于我们的目的是获得一个root shell,因此,我们将使用另一种手艺,即添加一个uid为0的新用户,来获得root权限。固然,您喜欢的话也可以使用反向shell下令。


不要忘了赋予剧本可执行权限。


现在,让我们编辑snapcraft.yaml文件。这里,我们将修改默认名称、摘要和形貌,并删除基本条目。


然后,让我们回到exploit目录,并运行snapcraft下令来确立软件包,然后,最先安装。


一旦安装完毕,我们就会发现相关的用户已经被添加,这样,我们就可以切换为该用户,从而获得root shell。


2. fpm

对于fpm,我们可以使用完全相同的文件结构,不外这里需要将snap目录名改为meta。



当我们安装它时,会发现将添加响应的新用户;这样,我们可以通过切换为该用户,来获得一个root shell,详细方式与前面一样。


小结

正如我们所看到的,攻击者可以通过种种方式行使软件担保理器来提升权限,因此,我们在赋予用户响应的权限的时刻,一定要多加小心。

现实上,fpm软件包也是一个异常好的工具,可以用它快速确立软件包。它可以安装在任何一个刊行版上,但我在centos上安装时遇到了问题,因此,这里就没有怼它举行先容。

固然,除了本文中先容的方式指纹,另有许多其他的方式,好比使用rpm,读者可以自行实验。

参考资料

https://github.com/jordansissel/fpm/

http://manpages.ubuntu.com/manpages/focal/en/man8/apt.8.html

http://manpages.ubuntu.com/manpages/focal/man5/apt.conf.5.html

https://gtfobins.github.io/gtfobins/apt/

https://gtfobins.github.io/gtfobins/yum/

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/sec-yum_plugins

http://yum.baseurl.org/wiki/WritingYumPlugins.html

https://www.tecmint.com/enable-disable-and-install-yum-plug-ins/

https://gtfobins.github.io/gtfobins/snap/

https://snapcraft.io/docs/supported-snap-hooks

https://0xdf.gitlab.io/2021/07/24/htb-armageddon.html

https://youtu.be/8ikdbyOQsLg

本文翻译自:https://blog.ikuamike.io/posts/2021/package_managers_privesc/