windows系统中有一个名为SeTrustedCredmanAccessPrivilege的权限,使拥有该特权的进程可作为受信任的调用者访问凭据管理器。

  凭据管理器可以从控制面板 -> 凭据管理器进入。凭据管理器允许用户存储凭据,比如域账户、Web、普通账户凭据等。管理器使用了DPAPI(Data Protect)进行保护,所以只有经过认证的账户可访问关联的存储数据。程序使用CredReadCredEnumerate可以访问当前用户存储的凭据,但是读取域账户凭据时,即设置读取类型为CRED_TYPE_DOMAIN_PASSWORD,返回密码将为空。这是由于LSASS对该行为进行了限制。只有诸如NTLM、Kerberos 和 Negotiate等Microsoft身份验证包在连接到指定目标时可不受限制地自动使用此凭据。

  除了注入LSASS、读取LSASS或是手动实现DPAPI的方式(Mimikatz),作者提到了另一个名为CredBackupCredentials的系统API(LSASRV.DLL),该API被CREDWIZ.EXE用于备份用户凭据,作为恢复使用。该备份包含所有凭据,包括域凭据。

BOOL WINAPI CredBackupCredentials(HANDLE Token,
LPCWSTR Path,
PVOID Password,
DWORD PasswordSize,
DWORD Flags);

  如果成功的话,调用API解密文件内容即可获取所有凭据。

  调用CredBackupCredentials的要求就是需要调用者具有SeTrustedCredmanAccessPrivilege权限。Winlogon中即含有这么个权限,也存在其他具有该权限的进程,比如LSASS。我们需要做的就是从具有该权限的一个进程中借用其令牌,作为调用凭据备份API使用,因此需要执行时具有管理员权限。

  作者给出了实现步骤:

  1. 使用PROCESS_QUERY_LIMITED_INFORMATION访问方式打开winlogon进程(也可以选择其他符合条件的进程),然后以TOKEN_DUPLICATE打开其令牌;
  2. 将打开的令牌复制为一个模拟令牌,之后启用模拟令牌中的SetTrustedCredmanAccessPrivilege权限,模拟令牌类型需要为TokenPrimary,经过测试TokenImpersonation将失败(无法启用权限);
  3. 打开备份凭据目标用户的令牌,该用户需要已经过身份验证;
  4. 调用CredBackupCredentials,传入参数指定备份后数据的写入路径;
  5. 从凭据备份文件中读取加密后数据,调用API CryptUnprotectData解密出被备份的凭据;
  6. 结束令牌模拟,RevertToSelf。

  CODE

参考:

https://www.tiraniddo.dev/2021/05/dumping-stored-credentials-with.html

https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/access-credential-manager-as-a-trusted-caller

最新文章

  1. html选中文字 背景/字 变色
  2. Java字节流:FileInputStream FileOutputStream
  3. 36 网络相关函数(四)——live555源码阅读(四)网络
  4. Memcached分布式缓存初体验
  5. 在eclipse中安装freemarker插件及html使用freemarker编辑器
  6. VBA中的FileSystemObject对象(FSO)和文本流
  7. 刀哥多线程之gcd-01-sync&async
  8. C++中的const关键字的用法
  9. DDoS攻防战(三):ip黑白名单防火墙frdev的原理与实现
  10. C# WinForm开发系列 - RDLC
  11. [CODEVS3641]上帝选人
  12. JAVA 读取图片储存至本地
  13. Python 的方法重载
  14. 多态性Polymorphism
  15. .Net多线程编程—Parallel LINQ、线程池
  16. 厚着脸皮求领导写了一篇java小白进阶大牛之路!!!
  17. goroutine和channel
  18. jmeter向ActiveMQ发送消息_广播/订阅(Topics 队列)
  19. 7.1 通用的职责分配软件原则 GRASP原则一: 创建者 Creator
  20. luogu1541 乌龟棋 (dp)

热门文章

  1. Linux上天之路(十五)之文件查找
  2. Lyft 宣布开源基础设施工具管理平台 Clutch!
  3. 【hexo指南】hexo配置ER图流程图时序图插件
  4. Golang 记录
  5. tomcat容器启动失败疑难问题解决方案
  6. 【一个小发现】VictoriaMetrics中:vm-storage的备份文件,无法给单机版使用
  7. C++内嵌汇编 教程1
  8. 轻量级orm框架——gzero指南
  9. 常见Web服务器
  10. 「数据结构」Link-Cut Tree(LCT)