我们可以使用Get-ProcessMitigation
来查询某一进程所开启的保护:
1 | PS C:\Users\air\Desktop> Get-ProcessMitigation 12092 |
其功能介绍如下:
Mitigation | Description | Default | Level |
---|---|---|---|
Control flow guard (CFG) | CFG通过在编译和链接期间,记录下所有的间接调用信息,并把他们记录在最终的可执行文件中,并且在所有的间接调用之前插入额外的校验,当间接调用的地址被篡改时,会触发一个异常,操作系统介入处理。 | On | System & app |
Data Execution Prevention (DEP) | 数据执行保护,和 LINUX 下的 NX 保护比较类似,堆栈只有读写权限,没有执行权限,主要用途是限制以写 shellcode 为主的攻击手段 | On | System & app |
Force randomization for images (Mandatory ASLR) | 强制重定位未使用/DYNAMICBASE 编译的映像 | Off | System & app |
Randomize memory allocations (Bottom-Up ASLR) | 虚拟内存地址分配随机化 | On | System & app |
Validate exception chains (SEHOP) | 在程序转入异常处理前,SEHOP会检查SEH链,特别是最后一个异常处理函数是否为系统固定的终极异常处理函数,确保其完整性 | On | System & app |
Validate heap integrity | 当检测到堆损坏时,终止进程 | On | System & app |
Arbitrary code guard (ACG) | 阻止未(经过微软)签名的模块加载,禁止创建未签名的可执行页,保护签名过的代码页使其不能被修改 | N/a | App |
Block low integrity images | 防止加载标记为低完整性的图像 | N/a | App |
Block remote images | 防止从远程设备加载图像 | N/a | App |
Block untrusted fonts | 防止加载任何未安装在系统字体目录中的基于GDI的字体,特别是来自web的字体 | N/a | App |
Code integrity guard | 限制加载Microsoft,WHQL或更高版本签名的图像 | N/a | App |
Disable extension points | 禁用允许将 DLL 注入所有进程的各种可扩展性机制 | N/a | App |
Disable Win32k system calls | 防止应用程序使用Win32k系统调用表 | N/a | App |
Don’t allow child processes | 防止应用程序创建子进程 | N/a | App |
Export address filtering (EAF) | This mitigation detects dangerous operations being resolved by malicious code. | N/a | App |
Import address filtering (IAF) | This mitigation detects dangerous operations being resolved by malicious code. | N/a | App |
Simulate execution (SimExec) | 确保敏感 api 的调用返回给合法调用者 | N/a | App |
Validate API invocation (CallerCheck) | 确保调用敏感API的调用者是合法的 | N/a | App |
Validate handle usage | 无效句柄引用后引发异常 | N/a | App |
Validate image dependency integrity | 强制对Windows映像依赖项加载执行代码签名 | N/a | App |
Validate stack integrity (StackPivot) | 确保堆栈不会被重定向到敏感API | N/a | App |