抓钱舞-贝博体育app-首页

0x00 前语

在这一系列文章中,咱们将评论依据Windows令牌(Token)的进犯方法,全面了解令牌、特权(Privilege)等知识点,了解令牌及特权在Windows体系安全架构中的完结机制。

令牌篡改进犯(Token Manipulation Attack)是多个APT安排及歹意软件常用的一种技能,能够用来在受害者体系上获取高权限,或许以其他用户身份履行操作(用户仿冒)。

MITRE上给出了运用该技能的相关APT安排及涉及到的东西:

令牌篡改实际上并不彻底归于缝隙运用领域,这儿咱们乱用的是Windows体系本身的功用,经过某些Windows API函数来修正调用进程的安全上下文,抓钱舞-贝博体育app-主页以便模仿另一个进程(通常是低权限进程)的安全上下文。模仿进程能够经过方针进程的线程来完结,后边咱们再详细评论这一点。Windows运用这种功用来修正调用进程所属线程的安全上下文,将其修正成其他用户的安全上下文,以履行某些操作。

Windows体系中有各种用户,比方System、Network Service、Local Service以及Administrator账户(组)及一般域用户。这些用户账户都运行在不同的安全上下标签14文中,具有一定级其他拜访权限。默许情况下,System在本地体系中具有最高权限。在大多数情况下,歹意程序期望盗取运行在System安全上下文中的进程令牌,以取得最高权限。

0x01 令牌

在剖析这些技能前,咱们先来了解下令牌及特权的根本知识。

令牌(Token)或许拜访令牌(Accss Token)是一个内核方针,用来描绘进程或线程所运用的安全上下文。

拜访令牌中包括各种信息,比方安全标识符(SID,Security Identifier)、令牌类型(Token Type)、用户及组信息、权限、登录会话(Logon Session)等,体系会在用户登录时分配拜访令牌。

为了执标签5行各种操作或许运用Windows中的各种资源,进程有必要运用Windows句柄翻开或许创立方针,才干拜访内核方针。内核会依据访标签14问令牌赋予进程匹配的拜访权限。

拜访令牌创立

  • 当用户登录主机时,体系会创立拜访令牌。
  • 检测暗码是否正确,履行认证进程。
  • 在安全抓钱舞-贝博体育app-主页数据库中检查用户详细信息。
  • 检查用户是否归于内置的办理员组中,假如满意条件,则生成两个令牌:完好的办理员拜访令牌及规范用户拜访令牌。
  • 假如用户不归于内置办理员组,则只会生成规范用户拜访令牌。

拜访令牌在Windows体系的UAC(用户拜访操控)功用中发挥重要作用。

当归于内置办理员组的用户登录时,体系并没有向用户供给完好的办理员拜访令牌。抓钱舞-贝博体育app-主页Windows体系会标签14为该用户创立拆分(split)令牌。这儿有两种类型的拆分令牌:“Filtered Token”(过滤令牌)及“Elevated Token”(提高令牌)。

当用户分配的是Filtered Token时,根本意味着用户运行在中完好性(medium integrity)等级上,被除掉了办理员组权限及SID,这意味着用户无法直接履行各种办理使命。为了履行办理使命,用户有必要经过UAC认证,或许输入正确的凭证。

当用户经过UAC认证或输入正确凭证后,体系会给用户分配Elevated Token,用户就能够履行办理使命。Elevated Token是带有高完好性的令牌,其间包括办理员组的SID及权限。

图. 履行办理使命时弹出承认窗口

图. 用户需输入凭证以履行办理使命

假如正确装备UAC,标签20那就能有用发挥该机制的安全功用。

假如咱们想全面了解UAC,能够参阅官方供给的这篇文章。

令牌机理

为了进一步了解Windows中的令牌方针,咱们来看一下令牌的内部机理(比方令牌对应的内核数据结构)。这儿咱们运用WinDbg来检查内核数据结构。

首要,咱们来调查TOKEN结构。

在上图中,咱们能够看到TOKEN数据的完好结构,该结构中包括其他一些数据结构,这些结构用来界说与令牌有关的各种特点及信息,与登录用户密切相关。

该结构中包括TokenId、Privileges数组,界说了对应该用户所分配的一切特权,TokenType界说了令牌类型:Primary或许Impersonation等。

接下来调查TOKEN结构中的部分数据结构。

SEP_TOKEN_PRIVILEGES结构中包括与令牌相关的特权的一切信息,其间Present为令牌当时可用的权限;Enabled为已启用的权限;EnabledByDefault为默许情况下已启用的权限。

TOKEN_TYPE为枚举类型,其间界说了令牌类型是否为Primary或许Impersonation(后续文章中会详细剖析这方面内容)。

SECURITY_IMPERSONATION_LEVEL也是一个枚举类型,其间指定了不同常量,用来决议调用进程能够在哪种等级模仿方针进程。

常量的界说可参阅微软官方文档,详细如下:

咱们将运用TOKEN_TYPE及SECURITY_IMPERSONATION_LEVEL常量来模仿令牌,可依据详细情况来设置相应值,比方是运用Primary令牌来创立进程,或许是运用Impersonation令牌来模仿某个进程。

SID_AND_ATTRIBUTES结构界说了SID(安全标识符)及SID的特点。

0x02 特权

一般标签3而言,特权(Privilege)这个词指的是上级单位依据某些条件赋予或人或许某个安排的一种特别权力抓钱舞-贝博体育app-主页。

与之相似,在Windows体系中,办理员能够为用户分配某些特权以履行体系相关的活动。默许情况下体系会给用户分配一些特权,而办理员也能够运用“本地安全策略设置”在本地为用户分配一些特权。

特权决议哪个用户能够操控体系资源,以履行体系相关使命,如关机、调试被其他进程运用的进程内存、将驱动载入内存中、备份文件及目录等。

Windows体系中可用的特权常量可抓钱舞-贝博体育app-主页参阅此处材料。

在上文中,咱们说到SEP_TOKEN_PRIVILEGES结构中包括Enabled及EnabledByDefault成员,这意味着分配给用户的一切特权默许情况下不一定处于启用状况,只要某些特权在分配时被启用,假如需求其他特权来履行体系相关使命,则有必要经过外部方法启用这些特权。

规范用户已启用的特权如下图所示:

如上图所示,只要SeChangeNotifyPrivilege特权处于启用状况,分配给用户的其抓钱舞-贝博体育app-主页他特权处于禁用状况。为了运用这些特权,咱们首要有必要履行启用操作。

在本系列文章中,咱们将启用SE_DEBUG_NAME特权,该特权能够帮咱们调试无法拜访的进程或许运行在SYSTEM账户下的进程。

下面来调查不同用户所对应的令牌,这儿咱们来调查运行在规范用户及办理员用户安全上下文中的notepad进程所对应的令牌。

咱们运用WinDbg来检查方针进程(这儿为notepad.exe)的令牌。

规范用户的令牌状况如下:

上图中能够看到进程对应的Session ID(已登录的会话)、Impersonation Level、TokenType等,该进程的令牌类型为Primary。此外上图顶部的输出信息标明对应的线程没有处于模仿状况,运用的是Primary令牌。

从图中可知分配给该进程的特权与分配给一般用户的特权相同,由于该进程运行在规范用户的安全上下文中。

Elevation Type的值为3(Limited,受限),这标明这是一个受限令牌,其间除掉了办理员特权,禁用了办理员组。

办理员用户的令牌状况如下:

上图的令牌信息与规范用户相似,但分配的特权要比规范用户要多得多,根本上一切特权都会分配办理员用户。此外,咱们能够看到这儿的Ele抓钱舞-贝博体育app-主页vation Type为2(Full,完好),标明这是提高(Elevated)令牌,没有被除掉某些权限及用户组。

补白:只要当UAC启用时,Elevation Type才为2或许3,当UAC禁用或许用户为内置办理员账户或许服务账户时,Type等于1。

0x03 总结

在本文中,咱们评论了拜访令牌以及拜访令牌的运用场景、生成时刻点、TOKEN内部结构以及与令牌相关的许多知识点。这些知识点非常重要,能够帮咱们了解令牌在Windows体系用户及进程的安全上下文的工作方法。了解这些内容后,鄙人文中咱们将持续研讨,运用Windows API来建议令牌篡改进犯。

原文链接:https://www.anquanke.com/post/id/192892

Write a Comment

电子邮件地址不会被公开。 必填项已用 *标注