前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >神兵利器 - WdToggle WDigest凭据缓存

神兵利器 - WdToggle WDigest凭据缓存

作者头像
Khan安全团队
发布2021-03-10 15:38:08
8360
发布2021-03-10 15:38:08
举报
文章被收录于专栏:Khan安全团队Khan安全团队

WdToggle - Cobalt Strike的信标对象文件(BOF),它使用直接的系统调用来启用WDigest凭证缓存。

背景

此PoC代码基于以下出色的博客文章:

探索Mimikatz-第1部分-WDigest

绕过凭据守卫

通过BOF代码中的内联汇编利用直接系统调用提供了一种更安全的与LSASS流程进行交互的方式。使用直接系统调用可避免AV / EDR软件拦截用户模式API调用。

Visual Studio(C ++)不支持x64处理器的内联汇编。因此,为了编写包含我们已编译/汇编代码的单个信标对象文件,我们必须使用Mingw-w64(适用于Windows的GCC)编译器。

这个是做什么用的?

  • 演示使用内联汇编的直接系统调用的用法,以提供更安全的方式与LSASS流程进行交互。
  • 通过在LSASS进程(wdigest.dll模块)中将全局参数切换为1来启用WDigest凭据缓存g_fParameter_UseLogonCredential
  • 规避凭据保护(如果启用)由切换g_IsCredGuardEnabledLSASS进程内变量为0(wdigest.dll模块)。
  • 使用Beacon对象文件在Beacon进程中执行此代码。
  • 克隆此存储库。
  • 确保已安装Mingw-w64编译器。例如,在Mac OSX上,我们可以使用ports集合安装Mingw-w64(sudo port install mingw-w64)。
  • 运行make命令以编译Beacon目标文件。
  • 在Cobaltstrike信标上下文中,运行inline-execute命令并提供目标WdToggle.o文件的路径。
  • 运行Cobaltstrikelogonpasswords命令(Mimikatz),注意新用户登录名或解锁桌面会话的用户再次启用了明文密码。

局限性

  • 此内存修补程序不是永久重启的,因此重启后,您必须重新运行代码。
  • wdigest!g_fParameter_UseLogonCredentialwdigest!g_IsCredGuardEnabled全局变量的内存偏移量可能会在Windows版本和修订版之间改变。我们为不同的版本提供了一些偏移,但是这些偏移可能会在将来的版本中更改。您可以添加自己的版本偏移量,可以使用Windows调试器工具找到该偏移量。

侦测

要通过LSASS内存访问来检测凭证盗窃,我们可以使用Sysmon之类的工具。可以将Sysmon配置为记录打开lsass.exe进程句柄的进程。通过应用此配置,我们可以收集访问LSASS进程的可疑进程的遥测,并帮助检测可能的凭证转储活动。当然,还有更多选择来检测凭据盗用,例如使用Windows Defender ATP之类的高级检测平台。但是,如果您没有使用这些平台的预算和奢侈,那么Sysmon是可以帮助填补空白的免费工具。

项目地址:

https://github.com/outflanknl/WdToggle

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Khan安全团队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档