内网渗透-windows权限认识(一)

admin 2026-09-11 04:41:55 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文为内网渗透Windows权限认识系列首篇,系统讲解身份(SID/组/计算机账户)、进程权限(AccessToken三类)、访问控制(ACL/ACE/DACL/SACL/完整性级别)及Windows权限(UAC/用户权限)基础概念,并列举SeDebugPrivilege等常见特权利用思路,为后续提权实战奠定理论基础。 综合评分: 75 文章分类: 渗透测试,内网渗透,红队,安全培训


内网渗透-windows权限认识(一)

原创

跃迁 跃迁

跃迁Sec

2026年9月5日 20:10 湖北

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

本章我们简单了解windows权限相关知识,主包依旧将权限相关的知识分成了七个模块

身份进程权限访问控制windwos权限资源权限服与身份权限AD域权限

身份

SIDUserGroupComputer Account--计算机用户Permissions--权限Privileges--特权

SID:对于我们计算机使用者来说,我们是以用户名来区别用户的,而对于计算机来说,它是以sid来区分用户的,每个用户的sid值是唯一的,前面我们已经说过了怎么查询一个用户的sid值,这里我们就重点围绕sid本身说一下

域内用户的sid组成一般如下

S-1-5-21-<DomainID>-<RID>

对于单个计算机里面来说,每个sid开头与用户是有着对应关系的

S-1-5-18代表:LOCAL&nbsp;SYSTEM
S-1-5-19代表:LOCAL&nbsp;SERVICE
S-1-5-20代表:NETWORK SERVICE

而且rid也是与用户有对应关系

500通常对应内置 Administrator
501通常对应 Guest(来宾用户)

group:我们说过怎么查询我们是属于哪些用户组的

可以看到我们属于哪些组,还能查询到用户组的sid值,这里还需要说明一下,当我们属于某个组时,我们自然能够获取到相应组的权限,比如修改某个文件,在windows里面,组是可以嵌套的,某个组可以是其他组的成员,这样这个组里面的成员也能获取到其他组的权限

Computer Account:当每一台电脑加入到域中时都会创建出一个计算机用户,该用户所对应的是计算机的systeam用户

Permissions:在单个主机中,权限就是读,写等等,而到了域内,权限就包括更多,比如修改用户密码等等,由ace详细记载”谁能对谁干什么”

Privileges:特权的查询方法也说过了

以下是一些常见的特权利用方法

SeDebugPrivilege :调试程序打开任意进程句柄--可读取 LSASS 内存、复制 SYSTEM 进程令牌;可注入进程提权。注意 LSA‑PPL 保护会阻止 dump LSASSSeImpersonatePrivilege:身份验证后模拟客户端--土豆家族 (JuicyPotato/PrintSpoofer/RogueWinRM) 核心依赖;可以模拟其他用户的令牌,拿到 SYSTEM。IIS、服务账号经常自带该特权SeAssignPrimaryTokenPrivilege:替换进程级令牌--和SeImpersonate 配套`CreateProcessAsUser`直接把主令牌分配给新进程,提权 SYSTEMSeBackupPrivilege:备份文件和目录--绕过DACL读取所有文件/注册表;可以 reg save 导出 SAM、SYSTEM 注册表 hive,抓取本地账号 hash。只能读,不能写SeRestorePrivilege:还原文件和目录--绕过DACL写入任意文件/注册表;写 DLL 劫持、替换服务二进制,直接本地提权。和 SeBackup 成对出现SeTakeOwnershipPrivilege:取得文件或其他对象的所有权--可以把文件/AD 对象 Owner 改成自己;之后凭借所有者重写 DACL,接管资源。等价拿到 WriteOwner 效果SeLoadDriverPrivilege:加载和卸载设备驱动--程序加载恶意内核驱动,直接内核权限,关闭 EDR、提权、绕过防护,高危SeSecurityPrivilege:管理审核和安全日志--读取/清空安全日志 SACL;可以篡改审计日志痕迹;修改对象 SACL 审计配置SeCreateTokenPrivilege:创建令牌--对象直接凭空构造Access Token,权限极强,现代 Windows 默认普通账号拿不到,很难获取

进程权限(Process Security)

Access&nbsp;TokenPrimary TokenImpersonation TokenDelegation Token

  当我们使用普通用户去访问需要高权限例如管理员权限才能访问到的文件时,为什么我们无法访问呢,当然是权限不够,但是里面的深层原理是什么呢你,这就与access token相关了

用户登录&nbsp; &nbsp;↓Windows 创建 Logon Session&nbsp; &nbsp;↓创建 Access Token&nbsp; &nbsp;↓启动进程&nbsp; &nbsp;↓进程携带 Token&nbsp; &nbsp;↓访问资源

  access token:访问令牌,当我们在登录之后,会创建出一个访问令牌,这个令牌就是windows区分权限的核心,每个由该用户启动的进程都会继承该令牌,当用户使用某个进程去访问相关资源时,windwos就会查询令牌相关信息并与被访问资源相关权限信息(访问控制)进行对比,通过则可以访问。token里面记载了用户权限相关信息,比如sid等等

Access Token&nbsp; &nbsp;├──&nbsp;User&nbsp;SID&nbsp; &nbsp;├──&nbsp;Group&nbsp;SID&nbsp; &nbsp;├── Privileges&nbsp; &nbsp;├── Integrity Level&nbsp; &nbsp;├── Token Type&nbsp; &nbsp;└── 其他安全属性

Primary Token与Impersonation Token:这是access token的两种类型,主令牌与模拟令牌,正常情况下,我们用户创建进程,该进程所继承的就是主令牌,主令牌直接与进程绑定,只有拥有主令牌才能创建进程,当我们窃取到高权限用户的主令牌时就能进行权限提升,而模拟令牌是与线程绑定的,仅用于当前线程临时切换身份,用于访问其他资源,常见就是smb服务,模拟令牌不能用于创建进程,需要提升为主令牌才能进行提权。

Delegation Token:委派令牌,是一种主令牌(作用于远程访问),当交互式登录(RDP、本地登录)时产生,可以直接复制作为Primary Token,直接创建新进程。用户注销后,委派令牌会降级变成Impersonation Token,内存还在,重启才清除。

访问控制

ACLACEDACLSACLSecurity Descriptor--安全描述符Owner--所有者Inheritance--继承Integrity Level--完整性级别

ACL与ACE:acl是访问控制列表,该列表由ace访问控制条目组成

acl分为两种类型,dacl和sacl,如上图每条ace都会显示属于哪个acl,dacl才是决定谁可以访问这个对象、谁不可以访问,真正记录权限,而sacl是审计日志规则,决定什么行为要记日志,所以从权限角度来说,我们需要更加关心dacl。以下是一条ace

[DACL]&nbsp;OBJ DENY;;[CTL];Change Password;;Everyone

拆解

ACE│├── 类型:DENY├── 对象类型:Object-specific├── 权限:Control&nbsp;Access├── 控制访问权限:Change&nbsp;Password└── 主体:Everyone
类型:&nbsp;&nbsp;DENY:拒绝权限&nbsp;&nbsp;ALLOW:允许权限权限:&nbsp;&nbsp;`Change Password`【更改密码】控制权限主体:&nbsp;&nbsp;`Everyone`&nbsp;所有所有人
拒绝所有人对这个对象执行“更改密码”操作

实际上在查询acl时我们可以看到还有这样的字段

[OWNER] YUEQIAN0\Domain Admins

这就是owner,也就是说目前查询的这个对象的所有者是域管理员,而所有者可以修改对象的acl

  Security Descriptor:安全描述符,仅仅是个名词,包括以下部分

Security&nbsp;Descriptor├─ Owner:SID├─ DACL:若干ACE(允许/拒绝权限)└─ SACL:若干ACE(审计规则)

  Inheritance:继承,就是子ou继承父ou的acl,如上图,在说明owner之后就是继承

[DACL] (FLAGS:INHERIT)

  表示没有禁用继承

`FLAGS:INHERIT`&nbsp;= 没有禁用继承`FLAGS:PROTECTED`&nbsp;= 禁止继承,不会继承父对象&nbsp;ACE

Integrity Level:完整性级别全称强制完整性控制,是独立于访问控制的,什么意思呢,它是一套额外的安检机制,低完整性的进程,不能修改、写入高完整性的对象;读取通常不受限制,高完整性可以随便读写低完整性。级别由低到高分为以下几组

Untrusted&nbsp;不受信任Low 低Medium 中High 高System 系统

我个人认为完整性级别是针对于管理员组里面的成员来说的,一般普通的管理员组成员启动程序都是medium,除非通过uac进行权限提升过,而系统自带的管理员用户administrator用户(就是rid为500)启动默认是high,system用户则是system

比如我本地的yueqian用户属于管理员组,但是通过右键的”以管理员身份运行”就能通过uca提权到high等级

Windows 权限

User&nbsp;Rights--用户权限UAC

  user rights:用户权限在单个主机中是由用户安全策略分配给用户的,在域环境里面是由域的GPO分配给用户的,acl是定义谁可以对我做什么,而user right就是我可以对别人做什么,比如通过rdp服务登录等等,可以粗略认为他和priv特权是同一个东西,user right会转换为priv特权。

  uac:用户账户控制,就是用于过滤用户的完整性等级

本找到此结束,剩下三层我们下一章再说


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:跃迁Sec 跃迁 跃迁《内网渗透-windows权限认识(一)》

评论:0   参与:  0