Windows访问令牌窃取攻击分析和检测防御
字数 1672 2025-08-06 12:21:05

Windows访问令牌窃取攻击分析与防御指南

一、访问令牌基础概念

1.1 什么是访问令牌

访问令牌(Access Token)是Windows安全系统的核心组件,是进程或线程安全上下文的表示,包含:

  • 用户身份信息(SID)
  • 用户所属组信息
  • 用户权限(Privileges)
  • 会话ID
  • 其他安全属性

1.2 令牌类型

  1. 主令牌(Primary Token):与进程关联,代表进程的安全上下文
  2. 模拟令牌(Impersonation Token):线程使用,临时采用其他用户的安全上下文

1.3 令牌安全级别

  • SecurityAnonymous:无法模拟
  • SecurityIdentification:可获取身份信息但无法模拟
  • SecurityImpersonation:可在本地系统模拟
  • SecurityDelegation:可在网络范围内模拟

二、令牌窃取攻击原理

2.1 攻击流程

  1. 枚举系统进程,查找高权限令牌
  2. 打开目标进程获取句柄
  3. 获取目标进程的令牌
  4. 复制令牌
  5. 创建新进程并应用窃取的令牌

2.2 关键API函数

  • OpenProcess():打开目标进程
  • OpenProcessToken():打开进程令牌
  • DuplicateTokenEx():复制令牌
  • CreateProcessWithTokenW():使用窃取的令牌创建新进程
  • ImpersonateLoggedOnUser():模拟用户

三、攻击技术实现

3.1 手动令牌窃取步骤

  1. 获取系统进程列表:

    tasklist /v
    
  2. 检查进程令牌权限:

    whoami /priv
    
  3. 使用Mimikatz进行令牌窃取:

    privilege::debug
    token::elevate
    token::list
    token::revert
    

3.2 常见攻击工具

  1. Mimikatz:最著名的凭证和令牌窃取工具
  2. Cobalt Strike:beacon的steal_token命令
  3. Metasploitincognito模块
  4. Rubeus:主要用于Kerberos攻击但也可用于令牌操作

3.3 攻击变种

  1. 父进程PID欺骗:通过伪造父进程ID获取更高权限
  2. 令牌模拟:利用SeImpersonatePrivilege特权
  3. 令牌克隆:创建令牌的完全副本
  4. 静默令牌窃取:不创建新进程,直接修改当前线程令牌

四、检测与防御

4.1 检测方法

  1. 日志监控

    • 4688事件:新进程创建
    • 4672事件:特殊权限分配
    • 4624事件:账户登录
  2. 异常行为检测

    • 低权限进程突然访问高权限资源
    • 进程令牌权限异常变化
    • 同一进程生成不同用户权限的子进程
  3. 工具检测

    Get-WmiObject -Query "Select * From Win32_Process" | Select-Object Name, ProcessId, CommandLine
    

4.2 防御措施

  1. 权限最小化

    • 遵循最小权限原则
    • 限制本地管理员账户使用
    • 禁用不必要的服务账户特权
  2. 账户管理

    • 限制域管理员账户登录普通主机
    • 使用LAPS管理本地管理员密码
    • 及时注销会话和清除令牌
  3. 系统加固

    # 禁用调试权限
    secedit /configure /cfg %windir%\inf\defltbase.inf /db defltbase.sdb /verbose
    
  4. 组策略配置

    • 启用"审核进程创建"
    • 配置"账户:限制本地账户使用空白密码"
  5. 应用控制

    • 使用AppLocker或WDAC限制应用程序执行
    • 阻止已知攻击工具执行

五、应急响应

5.1 可疑活动检查

  1. 检查异常进程:

    Get-Process | Where-Object {$_.SessionId -eq 0 -and $_.ProcessName -ne "System"}
    
  2. 检查网络连接:

    netstat -ano | findstr ESTABLISHED
    
  3. 检查计划任务:

    schtasks /query /fo LIST /v
    

5.2 响应措施

  1. 隔离受影响系统
  2. 重置受影响账户凭证
  3. 收集取证数据(内存转储、进程列表等)
  4. 分析攻击路径和时间线
  5. 实施补救措施并监控

六、高级防护技术

6.1 令牌保护机制

  1. 受保护用户组(Protected Users)

    • 限制使用NTLM和弱加密
    • 强制使用Kerberos AES加密
  2. Credential Guard

    • 使用虚拟化安全隔离凭证
    • 防止内存中凭证窃取
  3. Remote Credential Guard

    • 保护远程连接凭证
    • 防止传递哈希攻击

6.2 检测规则示例

# Sigma规则示例
title: Suspicious Token Manipulation
description: Detects suspicious token manipulation activities
status: experimental
logsource:
    product: windows
    service: security
detection:
    selection:
        EventID: 4688
        NewProcessName: '*\cmd.exe'
        ParentProcessName: '*\powershell.exe'
    condition: selection
level: high

七、总结

令牌窃取攻击是Windows环境中常见的横向移动和权限提升技术,防御需要多层次的安全措施:

  1. 预防性控制(最小权限、账户管理)
  2. 检测性控制(日志监控、异常检测)
  3. 响应性控制(应急响应计划)
  4. 深度防御(Credential Guard等高级技术)

通过全面了解攻击原理和技术实现,安全团队可以更有效地防御和检测此类攻击。

Windows访问令牌窃取攻击分析与防御指南 一、访问令牌基础概念 1.1 什么是访问令牌 访问令牌(Access Token)是Windows安全系统的核心组件,是进程或线程安全上下文的表示,包含: 用户身份信息(SID) 用户所属组信息 用户权限(Privileges) 会话ID 其他安全属性 1.2 令牌类型 主令牌(Primary Token) :与进程关联,代表进程的安全上下文 模拟令牌(Impersonation Token) :线程使用,临时采用其他用户的安全上下文 1.3 令牌安全级别 SecurityAnonymous :无法模拟 SecurityIdentification :可获取身份信息但无法模拟 SecurityImpersonation :可在本地系统模拟 SecurityDelegation :可在网络范围内模拟 二、令牌窃取攻击原理 2.1 攻击流程 枚举系统进程,查找高权限令牌 打开目标进程获取句柄 获取目标进程的令牌 复制令牌 创建新进程并应用窃取的令牌 2.2 关键API函数 OpenProcess() :打开目标进程 OpenProcessToken() :打开进程令牌 DuplicateTokenEx() :复制令牌 CreateProcessWithTokenW() :使用窃取的令牌创建新进程 ImpersonateLoggedOnUser() :模拟用户 三、攻击技术实现 3.1 手动令牌窃取步骤 获取系统进程列表: 检查进程令牌权限: 使用Mimikatz进行令牌窃取: 3.2 常见攻击工具 Mimikatz :最著名的凭证和令牌窃取工具 Cobalt Strike :beacon的 steal_token 命令 Metasploit : incognito 模块 Rubeus :主要用于Kerberos攻击但也可用于令牌操作 3.3 攻击变种 父进程PID欺骗 :通过伪造父进程ID获取更高权限 令牌模拟 :利用 SeImpersonatePrivilege 特权 令牌克隆 :创建令牌的完全副本 静默令牌窃取 :不创建新进程,直接修改当前线程令牌 四、检测与防御 4.1 检测方法 日志监控 : 4688事件:新进程创建 4672事件:特殊权限分配 4624事件:账户登录 异常行为检测 : 低权限进程突然访问高权限资源 进程令牌权限异常变化 同一进程生成不同用户权限的子进程 工具检测 : 4.2 防御措施 权限最小化 : 遵循最小权限原则 限制本地管理员账户使用 禁用不必要的服务账户特权 账户管理 : 限制域管理员账户登录普通主机 使用LAPS管理本地管理员密码 及时注销会话和清除令牌 系统加固 : 组策略配置 : 启用"审核进程创建" 配置"账户:限制本地账户使用空白密码" 应用控制 : 使用AppLocker或WDAC限制应用程序执行 阻止已知攻击工具执行 五、应急响应 5.1 可疑活动检查 检查异常进程: 检查网络连接: 检查计划任务: 5.2 响应措施 隔离受影响系统 重置受影响账户凭证 收集取证数据(内存转储、进程列表等) 分析攻击路径和时间线 实施补救措施并监控 六、高级防护技术 6.1 令牌保护机制 受保护用户组(Protected Users) : 限制使用NTLM和弱加密 强制使用Kerberos AES加密 Credential Guard : 使用虚拟化安全隔离凭证 防止内存中凭证窃取 Remote Credential Guard : 保护远程连接凭证 防止传递哈希攻击 6.2 检测规则示例 七、总结 令牌窃取攻击是Windows环境中常见的横向移动和权限提升技术,防御需要多层次的安全措施: 预防性控制(最小权限、账户管理) 检测性控制(日志监控、异常检测) 响应性控制(应急响应计划) 深度防御(Credential Guard等高级技术) 通过全面了解攻击原理和技术实现,安全团队可以更有效地防御和检测此类攻击。