01阅读须知
此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他方面
02基本介绍
Sharp4GetSystem.exe 是一款专为权限提升设计的工具,旨在从管理员帐户提升到 SYSTEM 用户权限。它通过调用一系列 Windows 原生 API,生成一个以 SYSTEM 权限运行的新进程。该进程会绑定到活动终端会话,并且可以在当前桌面上交互显示。
这一工具在某些需要 SYSTEM 用户权限且需要交互能力的场景中尤为有用,例如执行高权限任务或调试 SYSTEM 权限的操作。
03
使用方法
Sharp4GetSystem.exe 使用非常简单,只需以管理员身份运行此工具。
Sharp4GetSystem.exe
在当前桌面中,你可以看到新的 PowerShell 窗口,该窗口具有 SYSTEM 用户权限,如下图所示。
04原理解析
工具通过调用 advapi32.dll 的相关 API(如 LookupPrivilegeValue 和 AdjustTokenPrivileges)启用 SeDebugPrivilege 等高级权限,具体代码如下所示。
[DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool LookupPrivilegeValue(
IntPtr lpSystemName,
string lpName,
ref long lpLuid
);
[DllImport("advapi32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool AdjustTokenPrivileges(
IntPtr TokenHandle,
bool DisableAllPrivileges,
IntPtr NewState,
UInt32 BufferLengthInBytes,
IntPtr PreviousState,
IntPtr ReturnLengthInBytes
);
LookupPrivilegeValue 用于检索特定权限(如 SeDebugPrivilege)的本地唯一标识符(LUID)。这样,通过调整进程的权限,可以确保工具有足够的权限进行敏感操作,例如操作其他用户的会话或创建 SYSTEM 进程
随后,工具通过 WTSEnumerateSessions 获取当前终端会话的信息,部分代码如下所示。
[DllImport("wtsapi32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool WTSEnumerateSessions(
IntPtr hServer,
UInt32 Reserved,
UInt32 Version,
ref IntPtr ppSessionInfo,
ref UInt32 pCount
);
获取到活动会话后,通过绑定该会话生成新的 SYSTEM 权限的交互式进程。综上,Sharp4GetSystem 是一款强大的权限提升工具,结合 Windows 原生 API 提供了简洁高效的功能。它能够快速提升到 SYSTEM 权限,并生成交互式会话,在调试和权限管理场景中非常有用。
05.NET安全知识库
星球文化20+个专题栏目涵盖了点、线、面、体等知识面!其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等。