尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

AnyDesk 9.7.6打印机管道COM冒充提权:Exploitarium低权限到LocalSystem全解

AnyDesk 9.7.6打印机管道COM冒充提权:Exploitarium低权限到LocalSystem全解 AnyDesk 9.7.6打印机管道COM冒充提权Exploitarium低权限到LocalSystem全解【免费下载链接】exploitariumA single archive of public exploit PoCs and vulnerability research writeups. At the time I post these, none have been reported. Feel free to report them yourself and take credit for the CVE if handed out lulz. Please do not abuse these. I do this so to allure people into the field, and Ive always found this is the most efficient way.项目地址: https://gitcode.com/GitHub_Trending/ex/exploitariumAnyDesk 9.7.6 打印机管道 COM 冒充漏洞让 Windows 上的低权限本地用户有机会一路提权到NT AUTHORITY\SYSTEM即 LocalSystem。本文基于开源漏洞研究仓库Exploitarium中收录的 PoCanydesk-printer-com-impersonation-poc用尽量少的代码、通俗的语言帮你完整看懂这条低权限到 LocalSystem的提权链路漏洞在哪、怎么验证、以及如何防范。⚡ 漏洞速览一台装了 AnyDesk 的电脑有多危险关键信息内容受影响产品AnyDesk for Windows分析版本9.7.6漏洞类型本地权限提升Local Privilege Escalation攻击起点任意低权限本地用户攻击终点NT AUTHORITY\SYSTEM默认服务身份入口点本地命名管道\\.\pipe\adprinterpipe一句话总结AnyDesk 以服务身份默认 LocalSystem运行但它的打印机管道对所有人开放并且愿意反序列化任意客户端发来的 COM 对象——攻击者借这个回调冒充了 AnyDesk 进程的身份。 原理拆解COM 回调为什么能变成提权跳板这个漏洞不是内存越界而是一条信任边界设计失误的链路。可以拆成三步第 1 步管道大门对 Everyone 敞开AnyDesk 的服务端打印工作者线程会创建命名管道\\.\pipe\adprinterpipe。静态分析显示其管道 ACL 构建的是S-1-1-0Everyone 的 SID并授予GENERIC_ALL权限——也就是说机器上任何一个低权限用户都能连上这条管道。第 2 步服务端无条件反序列化客户端数据服务端从管道读取最多 0x1000 字节后把攻击者可控的字节复制进HGLOBAL调用CreateStreamOnHGlobal再执行CoUnmarshalInterface反序列化出一个IUnknown随后查询IStream接口并调用IStream::Read。问题在于反序列化可能生成指向攻击者本地 COM 服务器的代理。当服务端调用IStream::Read时调用实际上跳回了攻击者控制的代码里。第 3 步COM 冒充让回调方戴上 SYSTEM 的面具最致命的一环AnyDesk 进程初始化 COM 时使用了CoInitializeSecurity且冒充级别为Impersonate级别 3。这意味着在上述回调期间攻击者的 COM 对象可以调用CoImpersonateClient()临时获得 AnyDesk 进程的身份——而该进程正是 LocalSystem。三个条件叠加就形成了完整的本地提权原语Everyone 可访问的管道 → 服务端反序列化攻击者 COM 对象 → Impersonate 级别的回调 低权限用户 → 本地代码执行于 SYSTEM 身份下 对新手的一个类比这就像前台AnyDesk 服务对所有人都开放窗口愿意按来访者递来的委托书打电话回访而回访时前台还把自己公司的工牌暂时交给了来访者——来访者从此可以冒充整个公司。 PoC 验证不改一行 AnyDesk验证冒充原语仓库中的 poc.py 提供两条验证路径设计得很克制不修改 AnyDesk、不启动提权命令只验证冒充这一原语是否成立。路径一selftest 本地双进程自检推荐先看selftest模式会启动两个进程完整复刻真实漏洞的 COM 流程victim 进程模拟 AnyDesk创建命名管道 → 读取消息 →CoUnmarshalInterface(IUnknown)→QueryInterface(IStream)→ 调用IStream::Readattacker 进程模拟攻击者把自制的ProbeStream对象序列化后写入管道等待服务端回调。当回调发生Read方法里会执行CoImpersonateClient()并打印自己此刻冒充到的身份输出形如[attacker] PROBE_IMPERSONATEDDOMAIN\User [victim] VICTIM_READ_COMPLETE看到PROBE_IMPERSONATED后面出现服务端身份即证明COM 冒充原语成立——这正是真实漏洞中拿到 SYSTEM 身份的那一步。路径二analyze 静态标记分析analyze模式对本地任意一份 AnyDesk 运行时 PE 做字节级标记检查包括管道名 UTF-16 字面量、IID_IUnknown/IID_IStream的 IID 字节、CoUnmarshalInterface、CoInitializeSecurity、CreateNamedPipeW、CreateServiceW等 9 个特征标记命中 7 个以上即判定该二进制具备这条漏洞链路。这让你无需运行目标程序也能确认版本是否受影响。静态证据与 README.md 中的证据表一一对应例如环节二进制中的证据位置管道创建FUN_0100f190调用CreateNamedPipeW创建\\.\pipe\adprinterpipe管道 ACL0x100f206-0x100f229构建S-1-1-0EveryoneCOM 反序列化FUN_0100e6e0中CreateStreamOnHGlobalCoUnmarshalInterface接口回调FUN_0100e520调用IStream::ReadCOM 安全配置CoInitializeSecurity冒充级别为 3服务身份CreateServiceW的服务账户参数为 NULL默认 LocalSystem️ 复现步骤两步跑通本地自检环境要求Python 3.10Windows 系统selftest 需要pywin32依赖见 requirements.txt最快配置方法# 1. 获取仓库 git clone https://gitcode.com/GitHub_Trending/ex/exploitarium cd exploitarium/anydesk-printer-com-impersonation-poc # 2. 安装依赖 python -m pip install -r requirements.txt # 3. 运行本地 COM 冒充自检 python poc.py selftest如果想核对某份 AnyDesk 9.7.6 二进制是否命中漏洞特征python poc.py analyze .\AnyDesk-runtime.exe⚠️安全提醒本 PoC 仅用于授权环境下的安全验证。仓库明确声明这是善意公开披露的研究Do NOT use any material maliciously请勿用于未授权目标。️ 修复方向厂商应该如何堵上这个口子研究者在 README.md 中给出的修复建议也是所有管道 COM类漏洞的通用解法不接受低权限管道客户端发来的已序列化 COM 接口——这是根因用服务自己拥有的字节级协议替代IStream交接把管道 DACL 收紧到精确的服务/用户 SID 集合而不是 Everyone若必须保留 COM降低冒充级别并在反序列化前强制校验调用方身份为管道 DACL 与 COM 安全配置增加回归测试。 对普通用户意味着什么影响面任何安装了 AnyDesk 9.7.6且以默认服务方式安装的 Windows 机器只要有人能登录哪怕是最低权限账户理论上就具备提权条件普通用户该怎么办关注 AnyDesk 官方更新在厂商修复后及时升级不需要的设备关闭 AnyDesk 后台服务遵循最小权限原则避免给不受信任的账户提供本地登录机会安全团队可参考analyze模式的标记清单快速自查在网资产是否命中该链路。 延伸阅读本漏洞完整研究记录anydesk-printer-com-impersonation-poc/README.mdPoC 源码含 victim/attacker 双进程实现anydesk-printer-com-impersonation-poc/poc.py仓库总览与全部 PoC 清单README.md该项目已获得分配的 CVE 编号列表cves.mdExploitarium 收录了 40 余个公开 PoC这个 AnyDesk 案例是其服务身份 宽松管道 ACL COM 冒充组合打法的典型样本。理解它你就掌握了一类 Windows 本地提权漏洞的通用分析框架。【免费下载链接】exploitariumA single archive of public exploit PoCs and vulnerability research writeups. At the time I post these, none have been reported. Feel free to report them yourself and take credit for the CVE if handed out lulz. Please do not abuse these. I do this so to allure people into the field, and Ive always found this is the most efficient way.项目地址: https://gitcode.com/GitHub_Trending/ex/exploitarium创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表