滥用WINDOWS TELEMETRY以实现持久化并提权
今天,我们将讨论一种持久化方法是由trustedsec的christopher-paschen发布的文章,该方法利用了微软过去十年在Windows版本中包含的一些出色的遥测技术。此处概述的过程会影响从2008R2/Windows 7到2019/Windows 10的Win系统。
此持久化技术需要安装本地管理员权限(要求具有写入注册表HKLM的能力),并且在自动运行中不可见。
你需要知道的事情:
- 网络正常
- 将键值添加到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\TelemetryController
- 在此新键值内,创建Reg_SZ值 Command,并将其数据值设置为你要启动的**.exe**文件。
- 创建用于维护,每天晚上,Oobe的DWORD密钥,并将它们全部设置为一个(仅每24小时运行一次每夜一次)
- 使用持久化,它应该从Windows计划任务定期运行
- 您可以使用schtasks /run /tn “\Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser” 进行测试,也可以通过在任务计划程序中手动启动任务来进行测试。
下面为示例,运行计划任务时,这些注册表添加项将作为系统启动notepad.exe。
server 2008 R2
让我们深入研究正在发生的事情以及为什么这会在系统级别启动您的任务。首先,c:\windows \ system32\CompatTelRunner.exe似乎是二进制文件,旨在运行各种遥测任务。二进制本身本身并不会收集太多数据。CompatTelRunner似乎正在检查一些系统统计信息,以确保已连接网络,然后运行各种命令来执行实际的遥测收集。将此视为遥测管理器。
当CompatTelRunner.exe运行时(到2020年5月为当前版本),它会先检查是否满足一些条件,然后继续进行遥测任务。
Win10 POC 测试
1.添加注册表键值
2.添加计划任务
在win10看到的结果
Win7 也是同样 的方式 测试
最后加载恶意的exp,进行使用cobaltstrike 进行测试
防御加固策略
将HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\AppCompatFlags\TelemetryController的键值Sku和Nightly 设置为0
参考链接
https://www.trustedsec.com/blog/abusing-windows-telemetry-for-persistence/?utm_content=131234033