pyWhisker 认证方式全解析:NTLM、Kerberos、Pass-the-Hash 等8种方法 pyWhisker 认证方式全解析NTLM、Kerberos、Pass-the-Hash 等8种方法【免费下载链接】pywhiskerPython version of the C# tool for Shadow Credentials attacks项目地址: https://gitcode.com/gh_mirrors/py/pywhiskerpyWhisker 是一款用于“Shadow Credentials”攻击的 Python 工具它能够操纵目标用户或计算机的msDs-KeyCredentialLink属性从而实现对目标对象的完全控制。作为 C# 工具 Whisker 的 Python 等效版本pyWhisker 基于 Impacket 和 PyDSInternals 库开发为 UNIX 系统提供了完整的攻击原语利用能力。核心认证方法概述pyWhisker 支持多种身份验证方式满足不同场景下的攻击需求。这些认证方法涵盖了 NTLM、Kerberos 等主流协议以及多种“Pass-the-X”技术为渗透测试人员提供了灵活的选择。NTLM 认证机制1. 明文密码认证这是最基础的 NTLM 认证方式直接使用用户名和明文密码进行身份验证。在 pyWhisker 中通过-u指定用户名-p指定密码即可实现。2. Pass-the-Hash (PtH)Pass-the-Hash 允许攻击者使用用户的 NT/LM 哈希值而非明文密码进行认证。在 pyWhisker 中通过-H参数提供哈希值格式为LMhash:NThash即可利用此技术无需获取用户的实际密码。Kerberos 认证机制3. 明文密码 Kerberos 认证与 NTLM 明文认证类似但通过 Kerberos 协议进行。使用-k参数启用 Kerberos 认证并结合-u和-p提供的凭据进行身份验证。4. Pass-the-Key (PtK) / Overpass-the-Hash (OPtH)这种方法利用用户的 AES 密钥进行 Kerberos 认证。通过--aes-key参数提供 128 位或 256 位的 AES 密钥实现无需明文密码的 Kerberos 身份验证。5. Pass-the-Cache (PtC)Pass-the-Cache 是一种 Pass-the-Ticket 技术它利用存储在本地缓存文件.ccache中的 Kerberos 凭据进行认证。当使用-k参数且未提供其他凭据时pyWhisker 会自动尝试从缓存文件中获取有效的 Kerberos 凭据。证书与通道认证6. LDAP over Schannel (Pass-the-Cert)通过 Schannel 协议使用证书进行 LDAP 认证。需要提供用户证书PEM 格式和私钥文件PEM 格式分别通过-crt和-key参数指定实现基于证书的安全身份验证。7. 无密码认证使用--no-pass参数可以在不提供密码的情况下进行认证通常与-kKerberos结合使用适用于已获取有效的 Kerberos 票证缓存的场景。8. 跨域认证pyWhisker 支持跨域操作通过-td/--target-domain参数指定目标域当认证用户与目标对象不在同一域时可实现跨域的msDs-KeyCredentialLink属性操作。实际操作演示列出和获取 KeyCredentials 信息使用list动作可以查看目标账户当前的 KeyCredentials ID 和创建时间而info动作则能展开显示 KeyCredential 结构的详细信息包括 RSA 公钥参数等。python3 pywhisker.py -d domain.local -u user1 -p complexpassword --target user2 --action list python3 pywhisker.py -d domain.local -u user1 -p complexpassword --target user2 --action info --device-id 6419739b-ff90-f5c7-0737-1331daeb7db6pyWhisker 列出和获取 KeyCredentials 信息的操作界面展示了设备 ID 和详细的 KeyCredential 结构数据添加新的 KeyCredentialpyWhisker 能够生成 RSA 密钥和 X.509 证书并将其添加到目标的msDs-KeyCredentialLink属性中。支持 PEM 和 PFX 两种证书格式导出。PEM 格式示例python3 pywhisker.py -d domain.local -u user1 -p complexpassword --target user2 --action add --filename test2 --export PEMpyWhisker 添加 PEM 格式 KeyCredential 的过程包括证书生成和属性更新PFX 格式示例python3 pywhisker.py -d domain.local -u user1 -p complexpassword --target user2 --action add --filename test1pyWhisker 添加 PFX 格式 KeyCredential 的操作输出显示了证书生成和存储路径导出和导入 KeyCredentials通过export动作可以将msDs-KeyCredentialLink属性中的 KeyCredentials 解析并保存为 JSON 格式而import动作则能从 JSON 文件恢复该属性。pyWhisker 导出 KeyCredentials 为 JSON 文件的操作结果展示了导出的数据结构pyWhisker 从 JSON 文件导入 KeyCredentials 并恢复属性的过程攻击前置条件与注意事项使用 pyWhisker 进行“Shadow Credentials”攻击需要满足以下前置条件目标域功能级别必须为 Windows Server 2016 或更高目标域至少有一台运行 Windows Server 2016 或更高版本的域控制器攻击中使用的域控制器必须拥有自己的证书和密钥攻击者必须控制一个能够修改目标用户或计算机msDs-KeyCredentialLink属性的账户值得注意的是用户对象无法编辑自身的msDs-KeyCredentialLink属性但计算机对象可以。不过计算机对象仅能在不存在 KeyCredential 时添加新的凭据。此外确保攻击主机与 KDC通常是域控制器之间的时间同步至关重要pyWhisker 生成的证书默认有效期为前后各 40 年以避免时间偏差导致的问题。总结pyWhisker 作为一款功能强大的“Shadow Credentials”攻击工具支持多达 8 种不同的认证方式为渗透测试人员提供了灵活多样的攻击路径选择。无论是基于 NTLM 的 Pass-the-Hash还是 Kerberos 的各种“Pass-the-X”技术亦或是基于证书的 Schannel 认证pyWhisker 都能胜任。通过本文的解析希望能帮助安全从业者更好地理解和使用这款工具从而在实际测试中发现并防范相关安全风险。要开始使用 pyWhisker可通过以下命令克隆仓库git clone https://gitcode.com/gh_mirrors/py/pywhisker【免费下载链接】pywhiskerPython version of the C# tool for Shadow Credentials attacks项目地址: https://gitcode.com/gh_mirrors/py/pywhisker创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考