**
CVE-2021-1647
**
概要
CVE-2021-167是微软系统中自带的杀毒软件,该漏洞在野利用被安全厂商发现并进行通报。本文是对样本所使用的技巧进行分析。笔者分析的样本MD5值为:db0e53c9db41d4de21f4bbf1f60d977f5d935239d3fce8b902e8ef0082796cc7
漏洞原理
Windows Defender采用模拟执行的策略,对可执行文件进行黑白判定,模拟执行总共分为两个层面,一是指令模拟,二是运行环境模拟。
每个厂商的杀毒程序都会有自己的平台中间指令,指令模拟部分负责将相应平台指令(包括 arm/x86/x64等)转为中间指令(IL),然后通过自己平台的jit/ 解释执行的方式运行相应的中间指令。运行环境模拟则包括内存系统模拟/文件系统模拟/api模拟/DLL模拟。
如果杀软在指令模拟执行的过程中,遇到一些市场上常用的压缩壳子怎么办?
当然,杀毒软件也会模拟执行解压过程,内置一些解壳方式。当前 defender 支持的压缩方式有:Upxw64/Upxw/WExtract/NSPacker/Shrinker/PECompact2/Area51/Crypter1337/Aspack/PKLite/SfxCab/Asprotect 等。
本次漏洞出现在 Asprotect 模拟解压过程中(CAsprotectDLLAndVersion::RetrieveVersionInfoAndCreateObjects 函数):