核心内容涉及 Windows 安全内部机制,特别是与安全访问令牌(Security Access Tokens)、安全描述符(Security Descriptors)和访问检查(Access Checking)相关的操作和原理。以下是对这些主题的概要整理:
# 《Windows Security Internals with PowerShell》 - 使用 PowerShell 的 Windows 安全内部机制
# 简介
本书的核心内容涉及 Windows 安全内部机制,特别是与安全访问令牌(Security Access Tokens)、安全描述符(Security Descriptors)和访问检查(Access Checking)相关的操作和原理。
# 大纲:
-
安全访问令牌(Security Access Tokens):
- 令牌用于表示用户身份,并包含用户或组的安全标识符(SIDs)。
- 令牌分为主要令牌(Primary Tokens)和模拟令牌(Impersonation Tokens)。
- 主要令牌用于进程的身份验证,而模拟令牌用于线程级别的身份模拟。
- 令牌可以具有不同的模拟级别,如匿名(Anonymous)、识别(Identification)、模拟(Impersonation)和委派(Delegation)。
- 令牌还包含特权(Privileges),这些特权允许用户绕过某些安全检查。
-
安全描述符(Security Descriptors):
- 安全描述符定义了资源的安全性,包括所有者、组、自由访问控制列表(DACL)和系统访问控制列表(SACL)。
- DACL 控制对资源的访问权限,而 SACL 定义了审计规则。
- 安全描述符可以是绝对格式(存储在绝对内存地址中)或相对格式(存储在连续内存块中)。
- 安全描述符可以使用 PowerShell 模块进行创建、查看和修改。
-
访问检查(Access Checking):
- 访问检查是 SRM(Security Reference Monitor)的一个关键组成部分,它决定用户是否有权访问特定资源。
- 访问检查涉及三个主要步骤:强制访问控制(Mandatory Access Control, MAC)、令牌访问控制(Token Access)和自由访问控制(Discretionary Access Control, DAC)。
- 强制访问控制基于令牌的完整性级别来限制对资源的访问。
- 令牌访问控制基于令牌的所有者和特权来授予访问权限。
- 自由访问控制基于安全描述符的 DACL 来授予或拒绝访问权限。
文件中还提到了一些特定的 PowerShell 命令和模块,如 Get-NtToken
、 New-NtSecurityDescriptor
和 Get-NtGrantedAccess
,这些命令用于与 Windows 安全性相关的操作。此外,还讨论了如何通过 PowerShell 脚本模拟访问检查过程,并解释了不同的访问检查 API,包括内核模式和用户模式下的实现。
这些文件为理解 Windows 安全架构提供了深入的技术细节,特别是与安全访问令牌、安全描述符和访问检查机制相关的内部工作原理。