据BleepingComputer消息,网络安全公司 Deep Instinct 的安全研究人员发布了一个滥用Windows筛选平台( WFP) 来提升用户权限的工具NoFilter,能将访问者的权限增加到Windows上的最高权限级别——SYSTEM权限。
该实用程序在后利用场景中非常有用,在这种场景中,攻击者需要以更高的权限执行恶意代码,或者在其他用户已经登录到受感染设备时在受害者网络上横向移动。
微软将WFP 定义为一组 API 和系统服务,为创建网络过滤应用程序提供平台。开发人员可以使用 WFP API 创建代码,在网络数据到达目的地之前对其进行过滤或修改,这些功能在网络监控工具、入侵检测系统或防火墙中可见。
研究人员开发了三种新的攻击来提升的权限,既不会留下太多证据,也不会被众多安全产品检测到。
复制访问令牌
第一种方法允许使用 WFP 复制访问令牌,即在线程和进程的安全上下文中识别用户及其权限的代码片段。当线程执行特权任务时,安全标识符会验证关联的令牌是否具有所需的访问级别。
安全研究员解释称,调用 NtQueryInformationProcess 函数可以获取包含进程持有的所有令牌的句柄表。这些令牌的句柄可以复制,以便另一个进程升级到 SYSTEM。Windows 操作系统中一个名为 tcpip.sys的重要驱动程序 具有多个函数,可以通过设备 IO 请求向 WPF ALE(应用程序层执行)内核模式层调用这些函数,以进行状态过滤。NoFilter工具 通过这种方式滥用WPF来复制令牌,从而实现权限提升。
研究人员表示,通过避免调用 DuplicateHandle,可以提高隐蔽性,并且许多端点检测和响应解决方案可能会忽视恶意操作。
获取系统和管理员访问令牌
第二种技术涉及触发 IPSec 连接并滥用 Print Spooler 服务以将 SYSTEM 令牌插入表中。使用RpcOpenPrinter函数按名称检索打印机的句柄。通过将名称更改为“\\127.0.0.1”,该服务将连接到本地主机。在 RPC 调用之后,需要向 WfpAleQueryTokenById 发出多个设备 IO 请求才能检索 SYSTEM 令牌。
研究人员表示,这种方法比第一种方法更隐蔽,因为配置 IPSec 策略通常是由网络管理员等合法特权用户完成的操作。
第三种方法允许获取登录到受感染系统的另一个用户的令牌,以进行横向移动。研究人员表示,如果可以将访问令牌添加到哈希表中,则可以使用登录用户的权限启动进程。为了获取令牌并以登录用户的权限启动任意进程,研究人员滥用了 OneSyncSvc 服务和 SyncController.dll,它们是攻击性工具领域的新组件。
检测建议
黑客和渗透测试人员很可能会采用这三种方法,但Deep Instinct也给出了如下缓解措施:
- 配置与已知网络配置不匹配的新 IPSec 策略。
- 当 IPSec 策略处于活动状态时,RPC 调用 Spooler/OneSyncSvc。
- 通过多次调用 WfpAleQueryTokenById 来暴力破解令牌的 LUID。
- BFE 服务以外的进程向设备 WfpAle 发出设备 IO 请求。