访问令牌操纵
Windows 操作系统的访问控制模型是其安全性的重要组成部分,主要由访问令牌(Access Token)和安全描述符(Security Descriptor)构成。访问令牌是访问者持有的,而安全描述符则由被访问对象持有。通过对比访问令牌和安全描述符的内容,Windows 可以判断访问者是否有权限访问特定资源。
1. 访问令牌
访问令牌是描述进程或线程安全上下文的对象,包含与进程关联的用户账户的标识和特权等信息。系统使用访问令牌来控制用户对安全对象的访问,并限制用户执行相关系统操作的能力。
当用户登录时,系统会对用户进行身份验证。如果验证通过,系统将为用户创建一个访问令牌,包括登录过程返回的 SID(安全标识符)以及由本地安全策略分配给用户和用户所属安全组的特权列表。此后,代表该用户执行的每个进程都有此访问令牌的副本。每当线程或进程与安全对象交互或尝试执行需要特权的系统任务时,系统都会使用此访问令牌来识别并确定关联的用户。
通过操纵访问令牌,可以使正在运行的进程看起来是由其他进程生成的子进程或属于其他用户所启动的进程。常用的方法是利用内置的 Windows API 从指定的进程中复制访问令牌,并将得到的访问令牌应用于现有进程或新生成的进程,以达到权限提升并绕过访问控制的目的。这种技术被称为“令牌窃取”。
需要注意的是,