Windows认证

关键词: LDAP, Windows, 域, 运维 学习目标: 内网不同票据认证及使用 Kerberos协议的了解及使用

学习视频

本地认证

  • 本地密码存储路径,sam文件
c:\windows\system32\config\sam
%SystemRoot%\system32\config\sam
  • NTLM(NT LAN Manager):支持Net NTLM认证协议

  • NTLM算法

密文=MD4(Unicode(Hex16(明文)))

  • 认证流程

winlogin.exe(接收输入)→lsass.exe(认证)

NTLM挑战/响应

协商→质询(挑战/响应)→验证

  1. 客户端向服务器端发送用户名请求
  2. 服务器接收用户名,新随机生成16位随机字符Challenge,将用户名的ntlm用于加密Challenge生成Net NTLM Hash放入内存,将Challenge发送给客户端。
  3. 客户端接收Challenge,用NTLM加密Challenge生成Response发送给服务器。
  4. 服务器比对内存中的Net NTLM Hash 和客户端发送来的Response,比对成功,认证通过

NTLM V2协议

V1 Chanllenge 8位,V2是16位

V1 Net NTLM Hash算法位DES V2算法是HMAC-MD5

HASH传递

Active Directory

活动目录由kerberos认证

kerberos认证

Client Server KDC

/images/Windows-Auth-kerberos/Untitled.png

AD存储所有client的白名单,只有白名单中的client能请求tgt

Authentication Service 为客户端生成tgt的服务

Ticket Granting Service 为客户端生成某个服务的ticket票据

/images/Windows-Auth-kerberos/Untitled%201.png

/images/Windows-Auth-kerberos/Untitled%202.png

用户名加密的时间戳

/images/Windows-Auth-kerberos/Untitled%203.png

/images/Windows-Auth-kerberos/Untitled%204.png

白银票据

  1. 不需要与KDC交互
  2. 需要目标服务的NTLM Hash ,计算机名对应的hash
  3. 只能针对特定服务器

白银票据伪造

mimikatz

  • 白银票据默认组

域用户SID:S-1-5-21 -513

域管理员SID:S-1-5-21 -512

架构管理员SID:S-1-5-21 -518

企业管理员SID:S-1-5-21 -519

组策略创建所有者SID:S-1-5-21 -520

mimikatz "kerberos::golden /user:用户名 /domain:DOMIAN /sid:域sid /target:主机名.域名 /rc4:机器用户ntlmhash /service:cifs /ptt" exit

/images/Windows-Auth-kerberos/Untitled%205.png

白银票据详解

Kerberos的白银票据详解

白银票据防御

开启PAC(Privileged Attribute Certficate)特权证书保护,更改注册表

黄金票据

  • 需要krbtgt(KDChash)用户hash
  • 需要与DC通信
  • 无需指定服务

黄金票据伪造

mimikatz "kerberos::golden /user:用户名 /domain:DOMIAN /sid:域sid /target:主机名.域名 /rc4:KRBTGT_ntlm_hash /ptt" exit

防护手段

  • 经常更新kbrtgt用户
  • 禁止域管理员账户登录其他服务器
  • 开启PAC认证,缺点:增加DC负担

Windows Access Token

所有进程和线程都有一个AccessToken

用户在登录计算机时会生成一个Access Token,在创建进程会拷贝AccessToken

AccessToken 分为主令牌和模拟令牌

例如:用户双击应用程序,会拷贝explorer.exe的accesstoken

用户在注销后,会使主令牌切换为模拟令牌,不会清除令牌,之后机器重启会清除

/images/Windows-Auth-kerberos/Untitled%206.png

主要了解SID

  • SID表现为
    • 域SID-用户ID
    • 计算机SID-用户ID

使用工具查看系统上存在的模拟令牌

Incognito

Powershell - Invoke-TokenManipulation.ps1

Cobalt Strike - steal_token

参考:

https://www.bilibili.com/video/BV1S4411e7hr

拓展: SPN 委派

comments powered by Disqus