快捷搜索:  as  test  伦敦晚  创意文化园  万博  tagid=29386  gtgt  as -0

买usdt有没有手续费(www.caibao.it):CVE-2020-28243 SaltStack Minion内陆特权提升破绽剖析

USDT第三方支付平台

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

0x00 前言

近期,我在SaltStack的Salt中发现了一个下令注入破绽,当master挪用restartcheck时,该破绽允许通过特制的历程名称对minion举行特权提升。

受影响的版本:自2016.3.0rc2到3002.5之间的所有版本

CVSS评分:7.0 高危

官方通告:https://saltproject.io/security_announcements/active-saltstack-cve-release-2021-feb-25/

PoC:https://github.com/stealthcopter/CVE-2020-28243

在这篇文章中,我将重点先容以下几部门内容:

1、发现:我是若何发现这个破绽的?

2、破绽详情:为什么这个破绽有用?

3、行使方式:应该若何行使这个破绽?

4、平安问题:包罗容器逃逸、未经身份验证的远程代码执行

5、时间节点:这一历程花了多长时间?

0x01 关于SaltStack Salt

SaltStack Salt是一个盛行工具,用于自动化和珍爱基础结构,其使用历程分为两个角色。其中,一个系统设置为master,卖力控制毗邻到该系统的其他系统。其中的一个或多个系统被设置为minion,与master毗邻并响应其发出的随便下令。

master和minion通常都是以root身份在其安装的系统上运行。

0x02 破绽发现

在查看SaltStack的源代码并寻找平安破绽的历程中,我选择使用Bandit(一个针对Python应用程序的平安扫描程序)运行源代码,并查看其发现的问题。

我以为会看到很少的破绽,由于SaltStack的代码库较大,而且已经维护了几年的时间。然则,从下面的截图中可以看到,Bandit展示的问题数目比我预期的还要多,其中包罗117个高危问题。

Bandit针对SaltStack Salt的检测讲述:

固然,其中的许多问题都是误报,或者对我们来说意义不大,而且可能需要破费大量时间来逐一举行剖析。为了快速找到要害破绽,我决议将精神聚焦在几个子历程实例可能发生的下令注入破绽。我将Popen与代码库中的shell=True连系使用。

在剖析其中的一些破绽的历程中,我实验了多种方式,早先都无法控制这些破绽。但厥后,我发现可以行使历程名称,以一种异常巧妙的诱骗手段来控制它们。

这也就是我们正在寻找的破绽。

0x03 破绽详情

minion在重新启动检查的历程中存在下令注入破绽。当某个历程打开的文件形貌符以(deleted)为末端时(需要加上前面的空格),攻击者可以通过全心设计历程名称的方式实现下令注入。这样一来,就允许随便用户在minion任何未明确制止的目录中确立文件,实现到root的内陆特权提升。

3.1 破绽代码

存在破绽的代码位于restartcheck.py的第615行,其中使用shell=True和被攻击者操作的下令来挪用subprocess.Popen。

cmd = cmd_pkg_query   package
paths = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)

凭证操作系统的差异,软件包是由历程名称组成的,cmd_pkg_query可能如下:

Debian:dpkg-query --listfiles

RedHat:repoquery -l

NILinuxRT:opkg files

若是我们能够插入bash控制字符到历程名称中(例如; | &&等),就可以在代码到达上述一行时触发注入。

然则,要到达这一行代码,历程首先需要打开文件处置程序,打开以(deleted)为末端的文件,而且该文件必须位于未明确制止的目录中。

被制止的目录列表请参考这里。这个列表可能会清扫掉一些我们可能会实验的位置,例如/tmp和/dev/shm。然则,特权较低的用户可能会接见一些常用的位置,例如:

/var/crash

/var/spool/samba

/var/www

3.2 历程名称

在我们的研究历程中,事实证实,要可靠地修改善程名称是一件对照难的事情。而且,ps列出的历程名称可能会与Python psutil库返回的名称差异。

在Linux中,历程名称可以包罗任何字符(除null外)。任何用户都可以在系统上启动历程,而且历程自己可以设置历程的名称。因此,它们就成为了下令注入破绽的优越目的,由于开发职员不太可能会想到历程名称包罗特殊字符或注入的场景。

,

Usdt第三方支付接口

菜宝钱包(www.caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

,

我们可以使用exec -a直接设置历程名称。然则,这种方式在busybox或sh shell中是不起作用的,而且在使用psutil时似乎没有显示出相同的名称。固然,我们也可以通过直接操作procfs来修改善程名称,然则这种方式也会导致效果纷歧致。

因此,我们最后找到的最简朴、最准确的方式是重命名正在运行的二进制文件或剧本。由于Linux的文件名中不能包罗/字符,以是就限制了我们可以注入的下令。不外,使用Base64编码可以忽略此限制,如下所示:

, 若是我们想将shadow文件复制到/tmp,我们可以运行 
cp /etc/shadow /tmp/shadow
, 将其转换为Base64字符串
echo cp /etc/shadow /tmp/shadow | base64 -w0
, 转换效果
Y3AgL2V0Yy9zaGFkb3cgL3RtcC9zaGFkb3cK
, 我们需要运行的新下令
echo Y3AgL2V0Yy9zaGFkb3cgL3RtcC9zaGFkb3cK|base64 -d|sh -i

0x04 破绽行使

PoC剧本exploit.sh的用法:

为了乐成行使这个破绽,需要使用一个未被SaltStack明确制止的可写目录。在不带参数运行PoC剧本后,将会搜索相符该限制的目录。

示例剧本输出了潜在可写入的目录:

随后,使用-w标志加上选定的可写目录,使用-c标志加上下令,将会确立一个历程,在该历程的名称中包罗下令注入和一个打开的文件处置程序,当master进入该文件处置程序时,破绽将被处罚,并挪用restartcheck。

我们逐步执行破绽行使历程以展示这一破绽。为了实验,我们可以以root用户身份确立一个简朴的文件。首先,带上特定标志运行剧本。

运行破绽剧本,其中符号了历程名称和文件处置程序:

既然已经确定恶意历程正在运行,而且名称中已经注入了下令,同时也打开了文件处置程序,那么我们就可以在SaltStack的master发出restartcheck.restartcheck下令。完成此操作后,可以检查根目录中是否存在被黑的文件。

上图证实破绽行使已经乐成,我们可以以root用户身份执行代码。

不错,接下来我们可以做一些更酷的事情。若何获得一个root Shell呢?在下面的视频中,我们通过复制find二进制文件,并将其设置为suid,最终乐成获得了root身份的Shell。

视频:https://asciinema.org/a/382327

对于其他场景中,下图从master视角展现了破绽行使的历程。

来自master POV的下令注入,其中标出了注入的对应行:

'

0x05 其他平安问题

上面讨论了在内陆行使破绽实现到root用户特权提升的场景。然则,在此历程中我们还应该思量一些其他平安问题。

5.1 容器逃逸

我们在主机上已经列出了容器化的历程,因此可以从容器内部执行这一破绽行使,从而在主机上以root用户身份实现下令执行。

上图展示历程在容器中启动,下图为主机上使用ps列出的容器历程:

5.2 非特权远程代码执行

只管不太可能,但这样的破绽照样有时机被不具备内陆Shell接见权限的攻击者行使。缘故原由在于,在某些情形下,远程用户可以影响历程的名称。

0x06 时间节点

SaltStack的响应速率异常快,我发现和披露该破绽的完整时间节点如下。

2020年11月5日 发现破绽

2020年11月5日 通知SaltStack

2020年11月5日 SaltStack最先考察

2020年11月6日 分配CVE ID

2020年11月7日 SaltStack确认破绽

2020年11月18日 SaltStack通知设计在1月公布修复程序

2021年1月22日 宣布将于2月4日公布平安修复程序

2021年2月4日 平安修复程序公布日期延迟至2月25日

2021年2月25日 已公布平安修复程序( 91天)

0x07 总结

在开发和维护历程中,要保证代码的平安性已经是异常庞大的事情了。不难明晰,开发职员很难想到恶意历程名称的这个维度。若是人人有任何问题或者反馈,迎接在Twitter上与我联系。同时,这也是我的第一个CVE,还请人人温柔一些。

本文翻译自:https://sec.stealthcopter.com/cve-2020-28243/:
发表评论
锐安新媒体公司声明:该文看法仅代表作者自己,与本平台无关。请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片

您可能还会对下面的文章感兴趣: