当前位置: 首页 > news >正文

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/pywhisker

pyWhisker 是一款用于“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参数可以在不提供密码的情况下进行认证,通常与-k(Kerberos)结合使用,适用于已获取有效的 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-1331daeb7db6

pyWhisker 列出和获取 KeyCredentials 信息的操作界面,展示了设备 ID 和详细的 KeyCredential 结构数据

添加新的 KeyCredential

pyWhisker 能够生成 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 PEM

pyWhisker 添加 PEM 格式 KeyCredential 的过程,包括证书生成和属性更新

PFX 格式示例
python3 pywhisker.py -d "domain.local" -u "user1" -p "complexpassword" --target "user2" --action "add" --filename test1

pyWhisker 添加 PFX 格式 KeyCredential 的操作输出,显示了证书生成和存储路径

导出和导入 KeyCredentials

通过export动作可以将msDs-KeyCredentialLink属性中的 KeyCredentials 解析并保存为 JSON 格式,而import动作则能从 JSON 文件恢复该属性。

pyWhisker 导出 KeyCredentials 为 JSON 文件的操作结果,展示了导出的数据结构

pyWhisker 从 JSON 文件导入 KeyCredentials 并恢复属性的过程

攻击前置条件与注意事项

使用 pyWhisker 进行“Shadow Credentials”攻击需要满足以下前置条件:

  1. 目标域功能级别必须为 Windows Server 2016 或更高
  2. 目标域至少有一台运行 Windows Server 2016 或更高版本的域控制器
  3. 攻击中使用的域控制器必须拥有自己的证书和密钥
  4. 攻击者必须控制一个能够修改目标用户或计算机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),仅供参考

http://www.jsqmd.com/news/978931/

相关文章:

  • 创业三年只做一盏灯!格物科技Sleepal AI Lamp,能成家庭健康入口吗?
  • 提示工程实战:从模糊需求到稳定输出的四步构建法
  • 大模型中间层归零:Claude原生能力如何替代RAG与Prompt编排
  • 如何用Python高效读取通达信数据:完整工具使用指南
  • 2026年口碑好的铝型材U型吊管铝方通/铝型材长城板/佛山铝型材隔热铝瓦/铝型材长城板双层隔热铝瓦公司对比推荐 - 品牌宣传支持者
  • 避坑指南:NX二次开发中PK_TOPOL_facet网格化失败的5个常见原因及解决方法
  • 2026年质量好的铝型材屋顶瓦/佛山铝型材屋顶瓦/佛山铝型材天花吊管深度厂家推荐 - 行业平台推荐
  • 读完这一篇,你将彻底搞懂App从想法到上架的全过程
  • 微信小程序计算机毕设之基于微信小程序的中小学生个性化阅读平台的设计ssm基于springboot+微信小程序的中小学生个性化阅读平台小程序的设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • 数字孪生落地七道硬门槛:从物理映射到闭环控制的工程实践
  • 2026年质量好的大连采光排烟天窗/大连薄型天窗/圆拱型消防排烟天窗厂家对比推荐 - 品牌宣传支持者
  • PyTorch实战:用混合密度网络(MDN)为你的模型预测加上‘概率视角’
  • AI与ML的本质区别:从概念祛魅到工程落地
  • asnumpy数据转换:从昇腾NPU到NumPy的零拷贝之道
  • HC-05蓝牙模块连接安卓手机,为什么你的EN引脚总接不对?一篇讲透AT模式与通信模式切换
  • 避坑指南:RT1064 FlexPWM输出无波形?详解故障保护、时钟源与LDOK位的正确配置
  • 别再为TUM数据集卡顿烦恼了!手把手教你将tgz包转成30Hz流畅bag(附Python脚本详解)
  • 用PyTorch/TensorFlow动手实验:改变Zero Padding策略,你的模型效果会差多少?
  • 2026年精益仓储变革服务机构排行及核心能力解析:精益研发管理、精益管理、精益营销变革、精益营销管理、精益设备管理变革选择指南 - 优质品牌商家
  • vim-vscode
  • 成都知识产权代理机构核心能力拆解与实操选型指南:知识产权代理一站式服务、知识产权代理专家、知识产权代理加急申报服务选择指南 - 优质品牌商家
  • 当Singler不给力时,我是如何用Seurat手动搞定细胞注释的(附完整R代码与marker基因库)
  • 如何通过Kronos金融AI实现精准市场预测:3个突破性技术策略
  • Pokedex数据层设计:从网络API到本地数据库的完整实现
  • 2026年比较好的锻造管件/东台硅溶胶铸造管件用户口碑推荐厂家 - 品牌宣传支持者
  • AI 生活化应用设计:健康管理的智能助手产品化实践
  • 别再让室友背锅了!用Kali Linux的arpspoof工具,5分钟搞懂ARP攻击原理与防御(附实战截图)
  • 软件设计师备考:避开McCabe复杂度计算的3个常见坑(附真题详解)
  • 别再复制路径了!PHPStudy用户解决‘php命令找不到‘的两种高效思路(含避坑点)
  • MIT Cheetah 3的MPC控制器到底强在哪?一个凸优化问题搞定所有步态