Integrity Levels

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)

支持HackTricks的其他方式:

WhiteIntel 是一个由暗网支持的搜索引擎,提供免费功能,用于检查公司或其客户是否受到窃取恶意软件侵害

WhiteIntel的主要目标是打击由窃取信息恶意软件导致的账户劫持和勒索软件攻击。

您可以访问他们的网站并免费尝试他们的引擎:


完整性级别

在Windows Vista及更高版本中,所有受保护的项目都带有完整性级别标记。这种设置通常为文件和注册表键分配“中等”完整性级别,除了某些文件夹和文件,Internet Explorer 7可以以低完整性级别写入。默认行为是由标准用户启动的进程具有中等完整性级别,而服务通常在系统完整性级别下运行。高完整性标签保护根目录。

一个关键规则是对象不能被具有低于对象级别的完整性级别的进程修改。完整性级别包括:

  • 不受信任:此级别适用于具有匿名登录的进程。 %%%示例:Chrome%%%

  • :主要用于互联网交互,特别是在Internet Explorer的受保护模式下,影响相关文件和进程,以及某些文件夹,如临时互联网文件夹。低完整性进程面临重大限制,包括无注册表写访问权限和有限的用户配置文件写访问权限。

  • 中等:大多数活动的默认级别,分配给标准用户和没有特定完整性级别的对象。即使管理员组的成员也默认在此级别操作。

  • :保留给管理员使用,允许他们修改低完整性级别的对象,包括高级别对象本身。

  • 系统:Windows内核和核心服务的最高操作级别,即使对于管理员也无法接触,确保重要系统功能的保护。

  • 安装程序:一个独特的级别,高于所有其他级别,使得在此级别的对象能够卸载任何其他对象。

您可以使用SysinternalsProcess Explorer获取进程的完整性级别,访问进程的属性并查看“安全”选项卡:

您还可以使用whoami /groups获取您的当前完整性级别

文件系统中的完整性级别

文件系统中的对象可能需要一个最低完整性级别要求,如果进程没有这个完整性级别,则无法与其交互。 例如,让我们从普通用户控制台创建一个常规文件并检查权限

echo asd >asd.txt
icacls asd.txt
asd.txt BUILTIN\Administrators:(I)(F)
DESKTOP-IDJHTKP\user:(I)(F)
NT AUTHORITY\SYSTEM:(I)(F)
NT AUTHORITY\INTERACTIVE:(I)(M,DC)
NT AUTHORITY\SERVICE:(I)(M,DC)
NT AUTHORITY\BATCH:(I)(M,DC)

现在,让我们将文件的最低完整性级别分配为。这必须从一个以管理员身份运行的控制台执行,因为普通控制台将在中间完整性级别下运行,无法将高完整性级别分配给对象:

icacls asd.txt /setintegritylevel(oi)(ci) High
processed file: asd.txt
Successfully processed 1 files; Failed processing 0 files

C:\Users\Public>icacls asd.txt
asd.txt BUILTIN\Administrators:(I)(F)
DESKTOP-IDJHTKP\user:(I)(F)
NT AUTHORITY\SYSTEM:(I)(F)
NT AUTHORITY\INTERACTIVE:(I)(M,DC)
NT AUTHORITY\SERVICE:(I)(M,DC)
NT AUTHORITY\BATCH:(I)(M,DC)
Mandatory Label\High Mandatory Level:(NW)

这就是事情变得有趣的地方。您可以看到用户 DESKTOP-IDJHTKP\user 对文件拥有完全权限(实际上这是创建文件的用户),但是,由于实施了最低完整性级别,他将无法再修改文件,除非他在高完整性级别下运行(请注意他仍然可以读取文件):

echo 1234 > asd.txt
Access is denied.

del asd.txt
C:\Users\Public\asd.txt
Access is denied.

因此,当文件具有最低完整性级别时,为了修改它,您需要至少以该完整性级别运行。

二进制文件中的完整性级别

我在C:\Windows\System32\cmd-low.exe中制作了cmd.exe的副本,并从管理员控制台将其设置为低完整性级别:

icacls C:\Windows\System32\cmd-low.exe
C:\Windows\System32\cmd-low.exe NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Administrators:(I)(F)
BUILTIN\Users:(I)(RX)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(I)(RX)
APPLICATION PACKAGE AUTHORITY\ALL RESTRICTED APP PACKAGES:(I)(RX)
Mandatory Label\Low Mandatory Level:(NW)

现在,当我运行 cmd-low.exe 时,它将在低完整性级别下运行,而不是中等级别:

对于好奇的人,如果您将高完整性级别分配给一个二进制文件(icacls C:\Windows\System32\cmd-high.exe /setintegritylevel high),它不会自动以高完整性级别运行(如果您从中等完整性级别调用它--默认情况下--它将在中等完整性级别下运行)。

进程中的完整性级别

并非所有文件和文件夹都有最低完整性级别,但所有进程都在一个完整性级别下运行。与文件系统发生的情况类似,如果一个进程想要在另一个进程内写入,它必须至少具有相同的完整性级别。这意味着低完整性级别的进程无法以完全访问权限打开具有中等完整性级别的进程的句柄。

由于在本节和前一节中讨论的限制,从安全角度来看,始终建议以尽可能低的完整性级别运行进程

WhiteIntel 是一个由暗网推动的搜索引擎,提供免费功能,用于检查公司或其客户是否已受到窃取恶意软件损害

WhiteIntel 的主要目标是打击由窃取信息恶意软件导致的账户劫持和勒索软件攻击。

您可以在以下网址检查他们的网站并尝试他们的引擎,免费

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)

支持 HackTricks 的其他方式:

最后更新于