送你一个BYPASS"

admin 2026-10-24 08:19:14 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

送你一个BYPASS

原创

WZ
WZ

不吃猹的瓜

2026年5月5日 21:02
北京

在小说阅读器读本章

去阅读

在Windows上清理临时文件的时候发现, 系统会启动一个High权限的SystemSettingsAdminFlows.exe的进程, 命令行是:

\"C:\\Windows\\System32\\SystemSettingsAdminFlows.exe\" CleanmgrAdminHelper

点击删除文件的时候, 在ProcessMonitor中发现其运行时会试图启动一大堆不存在的exe,并且会在普通用户等环境变量路径中去寻找:

我们随便找一个exe放到环境变量的目录下, 重新清理临时文件:

很明显以High权限启动了我们拷贝过去的Windows.exe, 但是这些操作都是需要图形化界面去点击文件清理, 在实际环境中不是很方便, 通过这个调用栈我们发现这很可能是一个rpc/com接口:

先让AI对SettingsHandlers\_StorageSense.dll文件分析一下:

通过对当前在 IDA 中打开的文件 (SettingsHandlers\_StorageSense.dll) 的深度分析,文件中包含大量的 COM 和 WinRT 接口(主要用于 Windows 设置的 DataModel),核心的自定义 COM 接口包括:

• UICleanmgrAdminHelper / UICleanmgrHelper• AgentToolList• AgentToolMcpServerList• AgentToolCapabilityList• CStartupListSetting• CAppSizesFilter• CAppAdvancedInfoDynamicDatabase• CAppTileData• 大量的标准 WinRT 集合接口(如针对 ISettingItem 和 IInspectable 的 IVector, IIterable,IObservableVector 等)

通过对CreateProcessW的交叉引用(Xrefs)进行逆向追踪,共有3个COM对象的接口方法最终会调用到CreateProcessW:

  1. UICleanmgrHelper接口:

• 触发路径:调用其Purge方法->内部调用CleanmgrHelper::\_ExecuteCmd -> CreateProcessW。

注:该接口通常由UICleanmgrAdminHelper::CreateCleanmgrHelper方法创建。

  1. AgentToolList对象(实现了ISettingItem等接口):

• 触发路径:调用其DoGetValueAsyncWork方法-> GetUnfilteredMcpClientInfo -> CreateProcessW。

  1. AgentToolMcpServerList对象:

• 触发路径:调用其DoGetValueAsyncWork方法-> GetUnfilteredMcpServerDefinitions -> ExecuteOdrCommand -> CreateProcessW。

看起来是有进程创建的接口的, 但是让AI给一个最小Demo编译运行时发现有问题, z在分析这个com接口之前忘记确认这个接口是不是可以跨进程调用的了....实际确认发现不是跨进程调用的, 是In-Proc的; 于是让AI直接分析SystemSettingsAdminFlows.exe:

通过对 SystemSettingsAdminFlows.exe 的逆向分析,以下是关于 {A7246883-0625-4321-94D2-A9B121E7E63A}接口运作机制的完整剖析:

1.这个CLSID并不在DLL内部实现

{A7246883-0625-4321-94D2-A9B121E7E63A}是专属于SystemSettingsAdminFlows.exe (管理员提权服务进程)的CLSID。它被硬编码在EXE中,作为进程外服务器(Out-of-Proc Server)暴露给系统。

2.它的真实作用:权限“跳板”(Proxy / Broker)

当我们在SystemSettingsAdminFlows.exe的RunComServerFlowWork函数中看到它的行为时,会发现如下逻辑:

•EXE启动后,它调用GetRunningObjectTable和CreateClassMoniker。

• 它将自身实现的CCleanmgrAdminHelper对象以CLSID {A7246883-0625...}注册到系统的运行对象表(ROT)中。

3.当客户端调用时的调用链

如果通过CoCreateInstance请求这个CLSID,请求会被路由到正在以管理员权限运行的SystemSettingsAdminFlows.exe进程中。

当在客户端拿到接口并调用CreateCleanmgrHelper(UICleanmgrHelper\\)时,SystemSettingsAdminFlows.exe的内部实现如下:

HRESULT __fastcallCCleanmgrAdminHelper::CreateCleanmgrHelper(    CCleanmgrAdminHelper *this,    LPVOID *ppv){// CLSID_CleanmgrHelper = {4E781F7F-9430-4F56-A233-70E6E0AC1AF9}// IID_UICleanmgrHelper = {77a2017f-02e9-467f-b9a5-7ed80aadd8b8}return CoCreateInstance(               &CLSID_CleanmgrHelper,               0,               CLSCTX_INPROC_SERVER,                &IID_UICleanmgrHelper,               ppv);}

1.接口在哪:{A7246883-0625-4321-94D2-A9B121E7E63A}这个CLSID完全在SystemSettingsAdminFlows.exe内部实现,用来接收外部进程的请求。

2.代理实例化:一旦请求到达,高权限的EXE会调用底层的CoCreateInstance({4E781F7F-9430-4F56-A233-70E6E0AC1AF9})。

3.加载DLL:{4E781F7F...}才是真正在SettingsHandlers\_StorageSense.dll中实现的In-Proc服务器!这意味着这个DLL会被强行加载到高权限的EXE进程内存空间中。

4.最终提权:在普通权限的客户端获取到的UICleanmgrHelper代理,其真正的宿主是管理员权限的SystemSettingsAdminFlows.exe。当在客户端调用Purge,RPC会将调用封装并发送给EXE处理,EXE再调用DLL内部的代码,从而在Admin上下文里触发CreateProcessW。

最终让AI整理一下给出Demo编译后, 在Win10和Win11下都可以正常运行:

总结与检测

  1. 这个SystemSettingsAdminFlows.exe启动的这些exe不仅可以做提权, 还可以做持久化;
  2. EDR等终端产品可以关注父父进程是SystemSettingsAdminFlows.exe进程创建的事件, 关注环境变量路径创建未知可执行文件的情况;

注: 文章仅供学习研究, 请勿滥用! 源码可以关注回复clear获取


送你一个BYPASS" 网络安全文章

送你一个BYPASS"

文章披露Windows系统SystemSettingsAdminFlows.exe在高权限执行cleanmgradminhelper操作时存在DLL劫持漏洞,通过逆向分析发现其通过COM接口{a7246883-0625-4321-94d2-a9b121e7e63a}代理加载settingshandlers\\_storagesense.dll并调用CreateProcessW,普通用户可在环境变量路径放置恶意exe实现权限提升或持久化,建议EDR关注相关进程创建事件与环境变量路径异常文件
Github被黑后,我尝试了Perplexity的AI开发风险扫描器" 网络安全文章

Github被黑后,我尝试了Perplexity的AI开发风险扫描器"

文档分析了GitHub因员工安装恶意VSCode扩展导致代码库泄露的安全事件,指出当前AI开发环境中插件、Agent等组件增多带来的供应链风险。重点介绍了Perplexity开源工具Bumblebee的功能:以只读方式扫描开发环境依赖项并匹配风险清单,帮助开发者实现环境可见性。强调安全需从识别潜在威胁入手。
记一次黑奴省级护网汇总" 网络安全文章

记一次黑奴省级护网汇总"

本文记录作者参与省级护网行动的实战经验,详细描述四个站点的渗透过程:通过SQL注入、WAF绕过、heapdump分析等手段获取数据库信息及未授权访问,但部分成果因规则限制未得分。文章提供具体漏洞利用方法及工具使用,同时强调合规测试的重要性。
评论:0   参与:  0