1. 前言
在渗透测试期间,我们想要更改用户密码有两个常见原因:
有他们的 NT 哈希,但没有他们的明文密码。将他们的密码更改为已知的明文值可以让您访问无法使用传递哈希的服务,如
net user
、远程创建计划任务、绕过某些杀软。没有他们的 NT 哈希或明文密码,但有修改这些内容的权限。这可以导致横向移动或权限提升。
mimikatz提供了一项这样的功能如:
lsadump::setntlm
lsadump::changentlm
顾名思义是用来修改ntlm进行修改用户密码。虽然Mimikatz是最好的攻击工具之一,但我确实会尽量避免使用它,因为它是防病毒和 EDR 工具的重点攻击目标。在这篇文章中,我将专门研究 重置密码以进行横向移动或特权升级。
2. 环境介绍
我们有域管理员的密码,该用户可以修改win10用户的密码。
首先,我将使用 Windows 快速演示此攻击。要执行初始密码重置,有以下几种选择:
内置的exe二进制文件。我倾向于避免运行 net.exe,因为这通常是 EDR 的危险信号。
PowerView
的Set-DomainUserPassword
。这个也可以,但是,如果可能的话,我想避免导入任何 PowerShell 脚本。内置的
Set-ADAccountPassword
PowerShell 命令行。这是我通常喜欢的命令行。
Set-ADAccountPassword win10 -Reset
重置后,我们造成了一个潜在问题。用户 win10 将无法再登录,因为我们更改了他的密码,我们需要在被发现之前将其改回来。由于我们现在可以控制域管理员组中的帐户,因此我们可以将其改回来。
3. 重置密码
3.1 mimikatz
首要任务是恢复之前密码的 NT 哈希值。最简单的方法是使用Mimikatz,不过我也会介绍一些替代方法。
lsadump::dcsync /domain teamsecret.com /user:win10
3.2 恢复 NTDS.dit
另一种恢复方法是使用命令行工具恢复 NTDS.dit 数据库以及 SYSTEM 注册表配置单元。有许多方法可以做到这一点,但一种简单的方法是使用内置的ntdsutil和命令。
执行 Active Directory 数据库的完整备份
ntdsutil
activate instance ntds
ifm
create full C:\ntdsutil
一旦拥有这些文件,就可以将它们从系统中提取出来进行离线提取。
一旦离线,Mimikatz就可以不被发现地被使用,但也可以使用Michael Grafnetter 的DSInternals进行恢复。
PS C:\Users\Administrator> Get-BootKey -Online
a5026ccf59f662295a419c5beb7e3cba
PS C:\Users\Administrator> Get-ADDBAccount -BootKey a5026ccf59f662295a419c5beb7e
3cba -DatabasePath 'C:\ntdsutil\Active Directory\ntds.dit' -SamAccountName win10
现在原始 NT 哈希已恢复,是时候重置它了。 这也可以使用DSInternals和Set-SamAccountPasswordHash来完成:
Set-SamAccountPasswordHash -SamAccountName win10 -domain teamsecret -NTHash afffeba176210fad4628f0524bfe1942
我比较喜欢DSInternals的双重用途,并且通常不被视为攻击性工具。它甚至可以直接从Microsoft PowerShell 库中安装。
4. 总结
这种方法虽然较为危险,但是同样在比较恶劣的环境下,收益也非常的高。所以我对他进行测试的时候,同样也考虑到了恶劣的环境。尽量在不落文件的前提下,完成者一系列的操作。
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://sg.hqyman.cn/post/9625.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~