窃取域内明文密码
在某些情况下,我们拿到了域的控制权限后需要获得用户的明文密码来进行后续的一些操作。但是使用常规方法导出的只是 hash,如果域内设置了密码强度的策略就会使得 hash 暂时无法破解出来,这时我们就需要一些操作来获得用户的明文密码了。在此介绍一些方法:
1. Hook PasswordChangeNotify
需要用到的工具:
https://github.com/3gstudent/Hook-PasswordChangeNotify
下载下来并进行编译,得到一个 dll 文件
使用该 powershell 脚本进行 dll 注入
Import-Module .Invoke-ReflectivePEInjection.ps1
Invoke-ReflectivePEInjection -PEPath HookPasswordChange.dll -procname lsass
这时已经 dll 注入成功。
后续如果有用户更改密码就会在 c:windowstemp
目录下生成一个 passwords
文件。
如果想更改文件位置也可以修改代码。
2. 可逆密码存储
手动设置:
打开服务器管理界面,选择用户和计算机
然后打开 users 界面选择 用户属性->账户
把可逆加密存储密码选项勾上即可,当该用户下次更改密码时我们即可使用 secretsdump 拿到明文密码。
如果想快速拿到明文密码也可以勾选上用户下次登录时必须修改密码这个选项。
powershell 下操作:
Set-ADUser john -AllowReversiblePasswordEncryption $true
设置可逆存储之前:
设置可逆存储之后修改密码子再次 dump:
sid history 域内权限维持
每个用户账户都有一个对应的安全标识符(SID),在通常情况下 sid 是唯一的,但是为了支持域环境迁移,微软设计了 sid history 属性,因此在拿到权限后,我们可以借用这一属性来授予域内普通用户域管的权限,而不再域管组里面,实现权限维持。
使用普通域用户访问域控共享:
使用 mimikatz 更改该用户的 sid
成功更改了用户的 sid,接下来重新访问域控共享:
可以成功访问了,且域管组里面不存在我们这个用户。
原文始发于微信公众号(海狮安全团队):权限维持小技巧
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论