PTH&黄金白银票据

3年前 (2021-02-12) 三千院翼 学习笔记 0评论 已收录 475℃

PTH在什么情况下能成功、哈希传递受什么限制、什么情况下不能传递

PTH

PTH(Pass The Hash),攻击者可以直接通过LM Hash和NTLM Hash访问远程主机或服务,而不用提供明文密码。

原理

NTLM身份认证,在上周讲NTLM中,NTLM认证不使用明文口令,而是使用口令加密后的hash值,hash值由系统API生成。攻击者获得了hash,就能够在身份验证的时候模拟该用户(即跳过调用API生成hash的过程)

undefined

成功情况

内网(域中)存在相同Hash也就是密码的主机

拥有一台本地账户为管理员的域内机器

SMB处于开启状态

哈希传递受什么限制、什么情况下不能传递

哈希传递可能会受到UAC(用户帐户控制)的限制.首先我们清楚在Administrators组中有两种访问令牌,一种是标准令牌,一种是管理任务令牌,如果使用管理任务令牌,那么UAC将会弹出进行阻止。远程执行的管理任务是分两种

一,属于主机Administrators组成员的域帐户都可以请求它们,那么将不会触发UAC,哈希传递也不会受到限制。

二.属于主机的Administrators组成员的本地帐户请求的,会触发UAC,哈希传递将受到限制

我对于限制传递的理解就是,当利用PTH,非administrator的本地管理员失败的时候,就是因为没有主机Administrators管理权限,导致触发UAC导致的失败。

安装补丁KB2871997后影响

KB2871997

KB2871997最大的用处是为了防御PTH,在微软的更新说明中都提及了禁止本地管理员账户用于远程链接的字眼。但经过学习,发现实际影响非administrator管理员PTH失败是因为远程访问UAC的的限制。具体打上补丁前后效果,借用freebuf一篇文章师傅已经测试好的截图。

修补前:

undefined

undefined

修补后

undefined

undefined

影响

支持ProtectedUsers组

受保护用户 ( Protected Users ),这个是在windows server 2012 R2以上版本的一个组,在组中的成员会强制使用在上周学习的Kerberos身份验证,并且强制使用AES加密。同时不能使用Kerberos约束或不受约束的委托来委托受保护用户的帐户。

RestrictedAdmin RDP模式的远程桌面客户端支持

受限管理员RDP模式远程桌面客户端支持(RestrictedAdmin RDP)

RDP登录是一种交互式登录,只有在用户提供用户名和密码之后才可以访问。以这种方式登录到RDP主机时,会将用户凭据放置在RDP主机的内存中,在内存中有可能会被窃取。RestrictedAdmin RDP使RDP支持网络登录,其中可以传递用户现有登录令牌以进行RDP访问的身份验证。使用此登录类型可确保RDP服务器上不存储用户的凭据。从而保护凭据。

注销时删除凭证

用户登录时,Windows将用户凭据(纯文本密码,NTLM密码哈希,Kerberos TGT /会话密钥)缓存在内存(LSASS进程)中。在内网渗透中可以通过mimikatz来提取用户的这些凭据,在打上这个补丁之后,可以防御mimikatz。

新的SID

在这次更新里面,新增加了两个SID

LOCAL_ACCOUNT(S-1-5-113)–任何本地帐户

LOCAL_ACCOUNT_AND_MEMBER_OF_ADMINISTRATORS_GROUP(S-1-5-114)–属于管理员组成员的任何本地帐户。

在这个更新中利用这个SID,将“拒绝从网络访问此计算机”和“拒绝通过远程桌面服务登录”设置在组策略中配置这两个SID,可以防止本地帐户通过网络连接。

LSASS中删除了明文凭证

从注销时删除凭证中说了,LSASS这个经常会存储Windows的用户凭据,其中会以明文的方式存储。从而可能被mimikatz读取,在这个更新中,将只允许WDigest存储明文凭证,将Lsass中的明文凭证给予删除。不过WDigest存储的明文凭证依然会被mimikatz读取,需要修改注册表,让WDigest不将凭证存储在内存中,附上freebuf文章实测的截图

undefined

黄金白银票据

黄金票据

原理

krbtgt用户:域控中用来管理发放票据的用户

利用NTLM Hash固定的原理得到krbtgt的NTLM Hash,就可以伪造TGT和Logon Session Key来进入下一步Client与TGS的交互。

特点

不需要与AS进行交互,需要用户krbtgt的Hash

伪造条件

域名称

域的SID值

域的krbtgt账号的HASH

伪造任意用户名

白银票据

原理

白银票据是利用伪造ST。Client带着ST和Authenticator3向Server上的某个服务进行请求,Server接收到Client的请求之后,通过自己的Master Key 解密ST,从而获得 Session Key。通过 Session Key 解密 Authenticator3,进而验证对方的身份,验证成功就让 Client 访问server上的指定服务了。

特点

不需要与KDC进行交互 需要server的NTLM hash 只能访问部分服务

伪造条件

域名称

域的SID值

目标服务器FQDN

可利用的服务(前面说了银票只能访问部分服务,所以必须清楚什么服务可以利用)

server的NTLM hash

需要伪造的用户名

黄金白银票据的区别

黄金票据是伪造TGT,白银票据伪造的是ST

黄金票据需要krbtgt账号的HASH 白银票据需要server的NTLM hash

黄金票据是利用普通域用户创建域管账户获得域管理权限,白银票据只能访问部分服务

一个普通权限webshell,在无法提权但有hash时如何进行权限提升和内网横向渗透

根据之前的PTH的介绍,在普通用户的权限之下,mimikatz肯定是无法使用的。分为两种情况,一种是拿到的权限在于域内,例如域内用户的hash,那么就可以使用PTH的方法来进行提权。一种为账号并非在域内,只是域内机器的本地账户,那只能查看本地是否有其他的提权漏洞,例如CVE-2018-8120 这一类的CVE进行提权。提权之后,如果存在域,就可以查看是否满足使用黄金或者白银票据的情况进行横向渗透。

博主
               

一个网安苦手,VtbMusic开发组成员|兽耳科技官方群管理组成员|珈百璃字幕组成员|夜樱诺娅字幕组成员|铃音_Official鸽组成员|米孝子|信安摸鱼生

相关推荐

有任何意见请评价。