测试过的产品:
Zemana 反恶意软件 v.2.74.2.150 和 Zemana 反日志工具 v.2.74.204.150。
自 v.2.74.2.664 起已修复
关于漏洞:
该漏洞允许攻击者在目标机器上获取 SYSTEM 权限,无需用户交互。
前提条件:
1. 攻击者必须能够拦截并篡改发往 URL "POST /api/client/settings/" 的 POST 请求内容。
2. 无需对目标 PC 进行物理访问。
详细信息:
测试过的产品使用明文 HTTP 接收更新,因此攻击者可以轻松地将版本号和相应 URL 改为任意值。
让我们将更新 URL 改为我们自己的简易 Shell(图 0 和附录 1)。

图 0
杀毒软件提示更新文件的数字签名无法验证,但无论如何它允许用户运行(图 1)。如果用户拥有用户权限,则可获得 SYSTEM 权限(图 2)。

图 1. 是否要以 SYSTEM 权限运行某个未知文件?

图 2. 系统权限。
但此警告可以被绕过。
为此,我们需要一份 ZAM.exe 数字签名的副本。让我们克隆它(Security 目录)。
现在,我们的 Shell 携带了 Zemana 数字签名的克隆,操作系统无法对其进行检查(图 3)。

图 3. 不正确的签名。
现在让我们看看 "ZmnAppUpdater" 函数。
我们发现 SignatureChecker 的检查结果被忽略了(图 4)。

图 4. 被忽略的检查。
EAX = 0x80096010 (TRUST_E_BAD_DIGEST)。

图 5. 演示-gif。