当前位置: 首页 > 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.rkmt.cn/news/1490657.html

相关文章:

  • 避坑指南:NX二次开发中PK_TOPOL_facet网格化失败的5个常见原因及解决方法
  • 创业三年只做一盏灯!格物科技Sleepal AI Lamp,能成家庭健康入口吗?
  • 2026年质量好的铝型材屋顶瓦/佛山铝型材屋顶瓦/佛山铝型材天花吊管深度厂家推荐 - 行业平台推荐
  • 微信小程序计算机毕设之基于微信小程序的中小学生个性化阅读平台的设计ssm基于springboot+微信小程序的中小学生个性化阅读平台小程序的设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • 数字孪生落地七道硬门槛:从物理映射到闭环控制的工程实践
  • 别再为TUM数据集卡顿烦恼了!手把手教你将tgz包转成30Hz流畅bag(附Python脚本详解)
  • asnumpy数据转换:从昇腾NPU到NumPy的零拷贝之道
  • 成都知识产权代理机构核心能力拆解与实操选型指南:知识产权代理一站式服务、知识产权代理专家、知识产权代理加急申报服务选择指南 - 优质品牌商家
  • 别再盲目升级CUDA了!搞懂GPU算力与CUDA版本匹配,轻松搞定PyTorch环境配置
  • MIT Cheetah 3的MPC控制器到底强在哪?一个凸优化问题搞定所有步态
  • 别再让室友背锅了!用Kali Linux的arpspoof工具,5分钟搞懂ARP攻击原理与防御(附实战截图)
  • 2026年浙江地区专业汽车三维动画服务机构排行:新疆爆炸分解动画、江西施工三维动画、江西施工流程动画、江西裸眼3D动画选择指南 - 优质品牌商家
  • 亲测有效!AI搜索获客品牌的实践经验分享
  • 别再死记硬背网络结构了!用Tensorflow 2.x手把手拆解Xception的深度可分离卷积
  • WinUtil:Windows系统优化与软件管理的终极免费指南
  • 别再只盯着JVM了:用JMX监控你的Tomcat连接池和业务Bean(附完整配置与避坑清单)
  • 终极指南:OptiScaler如何让所有显卡都能享受DLSS级画质提升
  • 青海私人定制旅游:青海私人定制旅游、青海西宁旅行社、青甘大环线包车旅游、青甘大环线团队旅游定制、青甘大环线旅游向导选择指南 - 优质品牌商家
  • 别再硬转unsigned short了!FP16与Float互转的C语言实现详解与避坑
  • Next.js 前端开发:SSR/SSG 与治愈系 UI 组件库的设计实践
  • 2026年知名的大连电动采光通风天窗/大连采光排烟天窗主流厂家对比评测 - 行业平台推荐
  • 别再死记硬背Xception结构了!用TensorFlow 2.x手把手拆解它的‘深度可分离’核心
  • Pandas条件格式实战:用Styler让分析报告自动高亮关键数据
  • 别再折腾源码编译了!Windows 10/11下5分钟搞定GDAL 3.x命令行环境(附Python绑定验证)
  • 告别‘调参玄学’:手把手教你用Halcon的频域滤波搞定表面微小缺陷检测
  • 全新原装ADIS16505-2BMLZ 是一款高性能、工业级的MEMS(微机电系统)惯性测量单元(IMU),它将三轴陀螺仪和三轴加速度计集成于一体。
  • 如何用MobileAgent高效解决移动设备自动化难题:完整实用指南
  • Bolt类型系统完全指南:静态类型与类型推断的完美结合
  • LIS2DH12TR经销商
  • Anthropic CGL安全层导致API请求通过率归零解析