【技术原创】利用TelemetryController实现的后门分析
2021-11-29 12:45:00 Author: www.4hou.com(查看原文) 阅读量:25 收藏

0x00 前言

我从ABUSING WINDOWS TELEMETRY FOR PERSISTENCE学到了一种利用TelemetryController实现的自启动后门方法,在Win10下测试没有问题,但在Win7和Server2012R2下测试遇到了不同的结果。

本文将要记录我的学习心得,分析利用方法,给出防御建议。

参考资料:

https://www.trustedsec.com/blog/abusing-windows-telemetry-for-persistence/

0x01 简介

本文将要介绍以下内容:

◼基础知识

◼常规利用方法

◼在Win7和Server2012R2下遇到的问题

◼解决方法

◼利用方法

◼防御建议

0x02 基础知识

1.TelemetryController

对应的进程为CompatTelRunner.exe

CompatTelRunner.exe被称为Windows兼容性遥测监控程序。它会定期向微软发送使用和性能数据,以便改进用户体验和修复潜在的错误。

通常是为了升级win10做兼容性检查用的程序。

通过计划任务Microsoft Compatibility Appraiser启动。

计划任务Microsoft Compatibility Appraiser默认启用,每隔一天自动运行一次,任意用户登录时也会运行。

2.计划任务Microsoft Compatibility Appraiser

(1)通过面板查看计划任务

启动taskschd.msc

依次选择Task Scheduler (Local) -> Task Scheduler Library -> Microsoft -> Windows -> Application Experience,选择Microsoft Compatibility Appraiser

如下图

73680382f5b622d778109586d75a3c7.png

这里能看到计划任务Microsoft Compatibility Appraiser的详细信息。

(2)通过命令行查看计划任务

命令如下:

image.png

如果是在中文操作系统,有可能会产生以下错误:

image.png

如下图

bef84fa035cf9f0ec7a929645b6970c.png

查看cmd 编码,执行命令:chcp

返回结果:

image.png

表示使用936中文GBK编码

如下图

9935cd6bb738f032028de60abd94b9b.png

解决方法:

换成437美国编码,命令如下:chcp 437

再次执行: schtasks /query

结果正常

如下图

66d2bf206847a969ed900662f014d62.png

直接筛选出Microsoft Compatibility Appraiser:

image.png

显示详细信息:

image.png

修改计划任务状态,将禁用状态改为启用:

image.png

0x03 常规利用方法

1.修改注册表

修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\TelemetryController

新建任意名称的Key,键值信息如下:

image.png

以上操作可通过命令行实现,命令如下:

image.png

注:

这里创建了名为fun的Key

2.开启计划任务Microsoft Compatibility Appraiser

可以选择等待计划任务启动

也可以强制开启,命令如下:

image.png

后门触发,在Win10系统下会立即以System权限启动进程CompatTelRunner.exe和notepad.exe

注:

CompatTelRunner.exe为notepad.exe的父进程,如果进程notepad.exe正在运行,那么进程CompatTelRunner.exe一直处于阻塞状态。

0x04 在Win7和Server2012R2下遇到的问题

操作方法同上,在启动后门后,会以System权限启动两个进程CompatTelRunner.exe。

如下图

bd96bae67861f88f6a2009c8d3bd24d.png

其中一个CompatTelRunner.exe的命令行参数为:

image.png

该进程对应注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\TelemetryController\Appraiser

经过实际测试得出以下结论:

1、经过一段时间后,如果仍未完成检查,进程CompatTelRunner.exe会持续运行,无法以System权限启动进程notepad.exe

2、经过一段时间后,如果完成检查,进程CompatTelRunner.exe会自动退出,接下来以System权限启动进程CompatTelRunner.exe和notepad.exe

3、如果选择强制结束进程CompatTelRunner.exe,同样接下来会以System权限启动进程CompatTelRunner.exe和notepad.exe

如下图

ed58c4c8390ce72f062c9ba391cec41.png

这里我们可以避免这个问题,实现稳定触发,以System权限启动进程CompatTelRunner.exe和notepad.exe,方法如下:

修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\TelemetryController\Appraiser的Command项

默认值为%windir%\system32\CompatTelRunner.exe -m:appraiser.dll -f:DoScheduledTelemetryRun

这里可以选择跳过检查过程,例如将Command项的值置空,就不会在计划任务启动时执行检查

为了提高隐蔽性,可以将Command项设置为%windir%\system32\CompatTelRunner.exe -m:appraiser.dll

为了验证修改键值是否影响系统的正常功能,可以对%windir%\system32\CompatTelRunner.exe进行反编译

启动进程的伪代码细节如下图

1c106bb9c1ac75e4607185b6778c570.png

0x05 利用方法

1.前置条件

需要查看是否开启默认的计划任务Microsoft Compatibility Appraiser,查询命令如下:

image.png

2.放置后门

我在Win7、Server2012R2、Win10测试的结果表明,稳定利用方法如下:

修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\TelemetryController\Appraiser的Command项。

值设置为C:\WINDOWS\system32\cmd.exe /c notepad.exe。

命令行实现的命令如下:

image.png

补充:还原配置的命令

image.png

3.后门触发

等待计划任务Microsoft Compatibility Appraiser运行

为了便于测试,可以强制开启,命令如下:

image.png

4.特点

能够绕过Autoruns的检测,以System权限执行命令。

断网状态下同样能够触发。

0x06 防御建议

1.查看注册表的默认值是否被修改

(1)查看注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\TelemetryController\Appraiser的Command项。

命令如下:

image.png

默认值如下:

image.png

(2)查看注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\TelemetryController下的Key。

命令如下:

image.png

默认值如下:

image.png

2.禁用计划任务Microsoft Compatibility Appraiser

命令如下:

image.png

3.查看进程CompatTelRunner.exe信息

分析进程CompatTelRunner.exe下是否有可疑子进程。

0x07 小结

本文记录了我对TelemetryController后门机制的学习心得,总结出了更为通用的利用方法,给出针对性的防御建议。

如若转载,请注明原文地址


文章来源: https://www.4hou.com/posts/0DAv
如有侵权请联系:admin#unsafe.sh