该实用程序在后利用场景中非常有用,在这种场景中,攻击者需要以更高的权限执行恶意代码,或者在其他用户已经登录到受感染设备时在受害者网络上横向移动。
微软将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 请求。