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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2022-37017 — 绕过 Symantec Endpoint Protection 客户端用户界面密码 | Kitploit
工具/GitHubGitHub/apeppels/cve-2022-37017
身份验证与授权权限提升漏洞分析漏洞利用逆向工程渗透测试二进制利用
GitHubapeppels/cve-2022-37017

CVE-2022-37017

绕过 Symantec Endpoint Protection 客户端用户界面密码

查看仓库
2年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2022-37017

Symantec Endpoint Protection 14.3.5351 客户端用户界面密码的身份验证绕过

Symantec Endpoint Protection 允许在其 UI 上设置密码保护,以防止配置更改。 此密码检查由既不在受保护进程轻量级(PPL)中也不在内核驱动程序中的逻辑实现;更改内存中的返回值或修补二进制文件可使攻击者绕过密码。 即使启用了篡改防护,此方法仍然有效。

如果攻击者能够以管理员权限执行代码,他们就可以导入恶意策略 XML 和/或用于集中 SEP 管理的连接设置。 借此,他们实际上获得了对客户端的完全控制权。 通过策略导入,他们可以添加排除项、解锁 UI 选项、禁用或更改管理员密码、永久禁用保护,和/或卸载客户端。

如果攻击者没有管理员权限,则可以利用它导出故障排除信息、读取日志以及查看客户端设置。 在 14.0 上,无需管理员权限即可导出策略并禁用篡改防护。这在 14.3.5413.3000 中是不可能的。

在 14.3.5351 中,以下代码检查密码是否匹配:

root@kitploit:~
.text:00438021 loc_438021:                             ; CODE XREF: sub_437FA0+73↑j
.text:00438021                 mov     ecx, offset ServiceName ; "SepMasterService"
.text:00438026                 call    sub_43DDF0
.text:0043802B                 test    eax, eax
.text:0043802D                 jnz     short loc_4380A5
.text:0043802F                 push    ecx             ; Src
.text:00438030                 lea     eax, [ebp+var_14]
.text:00438033                 mov     ecx, esp
.text:00438035                 push    eax
.text:00438036                 call    ds:??0?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z ; ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>(ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>> const &)
.text:0043803C                 call    sub_4380F0
.text:00438041                 test    al, al
.text:00438043                 jz      short loc_43804F
.text:00438045                 mov     ecx, esi
.text:00438047                 call    ds:__imp_?OnOK@CDialog@@MAEXXZ ; CDialog::OnOK(void)
.text:0043804D                 jmp     short loc_4380AD

控制 SymCorpUI.exe 中所有密码尝试成功与否的跳转似乎是位于 .text:00438043 处的 JZ 指令。 将其更改为 JNZ(指令 0x74 -> 0x75)会反转跳转,从而允许接受任意密码。

Python 脚本会找到 SEP 的安装文件夹,读取 SymCorpUI.exe,在脚本旁边的文件夹中写入修补后的副本,并在原始工作目录中运行修补后的版本。 以特权运行它,它将生成一个 SEP UI,该 UI 将接受输入的任何错误密码。

现在,攻击者可以通过“帮助 -> 故障排除”导出策略 XML。 这将包含配置,包括管理员密码的任何哈希值。 然后,攻击者可以编辑 XML 以更改客户端中的任何设置,例如替换密码哈希或禁用密码要求。 然后可以使用“导出”旁边的按钮再次导入此恶意策略 XML。

脚本会执行一些检查以确定是否已提权,如果没有,它会强制修补后的二进制文件在没有管理员权限的情况下运行。 要以管理员身份运行 UI,请以管理员身份运行 Python 脚本,或将 as_admin 变量硬编码为 True。

为了避免为每个构建存储特定偏移量,脚本会对一系列指令执行通用搜索/替换,我发现这些指令在我测试过的三个版本中是唯一的。 不同的版本可能有多个匹配项,这可能会破坏 PoC。在这种情况下,请查看匹配项,找到以 mov ecx, offset ServiceName ; "SepMasterService" 开头的块,以找到需要修补的相关 JZ 指令,它通常在该块底部附近。

为了测试密码功能,可以在策略 XML 中(与 GlobalGroups 同一级别)添加以下内容以启用保护。 该哈希是字符串 "test" 的 MD5。

root@kitploit:~
<AdminPassword ExitNeedPassword="1" UINeedPassword="1" ImportExportNeedPassword="1" UninstallNeedPassword="1">098f6bcd4621d373cade4e832627b4f6</AdminPassword>

Symantec 迅速回应了该问题,CVE 由他们注册,并发布了修复程序 14.3 RU6。

https://support.broadcom.com/external/content/SecurityAdvisories/0/21014

下载工具