内网渗透(六十九)之域权限维持之SID History 滥用
域权限维持之SID History 滥用
SID是用于标识主体的可变长度的唯一值,每个账户都有一个系统颁发的唯一SID,其存储在数据库(域中的话就存储在活动目录数据库中)。用户每次登录时,系统都会从数据库中检索该用户的SID,并将其放在该用户的访问令牌中。系统使用访问令牌中的SID来识别与Windows安全所有后续交互中的用户。当SID被用作用户或组的唯一标识符时,他再也不能用于标识另一个用户或组。在活动目录数据库中对象的objectSid属性值就是SID。SID History 是为了域迁移场景而设计的一个属性,它使得账户的原本访问权限能够有效的克隆到另一个账户,对于确保用户从一个域迁移到另一个域时保留访问权限非常有用。如果A域中的域用户迁移到B域中,那么B域中该用户的SID会随之改变,进而影响迁移后用户的权限,导致迁移后的用户不能访问原来可以访问的资源。而SID改变了,系统会将其原来的SID添加到迁移后用户的SID History 属性中的作用是在域在迁移过程中保持域用户的SID History属性中。用户在访问资源时,SID和SID History都会被添加到用户的访问令牌中,使得迁移后的用户既能拥有现有的权限,又能保持原有的权限,能够访问其原来可以访问的资源。
SID History 本意是为了域迁移场景而设计的一个属性,但是也给了攻击者可乘之机。攻击者可以利用SID History属性进行隐蔽的域权限维持。
1、SID History 攻击
实验环境如下:
- 域控系统版本:Windows Server 2012 R2
- 域控主机名:DC
- 域控IP:192.168.41.10
- 域管理员:h
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效