需要从 GitHub 获取最新的 impacket,并添加了 netlogon 结构。
请注意,此脚本默认会修改域控制器账户的密码。是的,这允许你进行 DCSync,但也会中断与其他域控制器的通信,请谨慎操作!
更多信息及原始研究见 此处
仅适用于 Python 3.6 及以上版本!如果你的操作系统已预装 impacket(如 Kali),请先卸载所有现有安装。如果此后仍然出现导入错误,请在 virtualenv 或 pipenv 中运行。
cve-2020-1472-exploit.py-just-dc 和 -no-pass,或使用空哈希以及 DCHOSTNAME$ 账户如果你安装了 2020 年 9 月 15 日或之后更新的 GitHub 版 impacket,则在转储本地注册表机密时,secretsdump 会自动转储明文机器密码(十六进制编码)。请注意,这与 DCSync 不同,因为 DCSync 使用的是机器账户,而转储注册表则需要你以域管理员身份(如内置 Administrator 账户)对域控制器执行 secretsdump。
或者,在稍旧版本的 secretsdump 上,你可以先提取注册表配置单元,然后离线运行 secretsdump(此时始终会打印明文密钥,因为它无法计算 Kerberos 哈希),从而转储此密码。
使用此明文密码,你可以运行 restorepassword.py 并指定 -hexpass 参数。此脚本将首先使用空密码向同一 DC 进行身份验证,然后将密码恢复为原始密码。请确保再次提供目标 NetBIOS 名称和 IP,例如:
python restorepassword.py testsegment/s2016dc@s2016dc -target-ip 192.168.222.113 -hexpass e6ad4c4f64e71cf8c8020aa44bbd70ee711b8dce2adecd7e0d7fd1d76d70a848c987450c5be97b230bd144f3c3...etc