• 域渗透 | 白银票据防御


    昨天的文章中我们说了在域渗透中白银票据的利用,但是如何对其进行防御呢,如果没有看过白银票据利用的文章,请移步《域渗透 | 白银票据利用》

    目录

    0x01 介绍

    0x02 防御方法

    0x03 防御效果

    0x01 介绍

    对于白银票据的利用,我们昨天已经说的很明白了,就是因为server在接收到client发送的ticket时,server仅仅只知道自己的hash,也就是server hash,而对于其他的server session key、end time等等内容都是可以进行伪造的,所以防御的方向就是从两个方面来下手了,一个是保护自己的hash不被获取到,另一个就是增加验证方式,验证ticket的正确性,对于域认证的流程还不熟悉的可以移步《Windows认证 | 域认证》

    0x02 防御方法

    介绍中也说的很明白了,所以第一个防御方法就是尽量保证凭证不被获取到,这个就不多说了,我们着重说一下第二种方法,增加验证方式。

    我们可以通过开启PAC(Privileged Attribute Certificate)特权属性证书保护功能,开启PAC后,PAC会将client发送的票据ticket发送给KDC,由KDC来进行验证ticket是否有效,就可以使所伪造的票据无法进行利用。

    开启的方式是更改注册表中的一个值,将

    ···
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsaKerberosParameters
    ···

    中的ValidateKdcPacSignature设为1

    但是我发现这个下面并没有这个值,经过查询官网,得知需要增加一个dword

    file

    有兴趣的可以去看看微软是怎么解释Windows中的PAC验证的

    https://blogs.msdn.microsoft.com/openspecification/2009/04/24/understanding-microsoft-kerberos-pac-validation/
    

    这里手动增加一下,注意是在server端进行添加的

    file

    这里需要明确一下,如果开启PAC的话会增加一些网络和性能上的消耗,而且看情况可能还比较严重。

    file

    0x03 防御效果

    开启PAC后,我们再验证一下白银票据的利用是否还可以奏效

    file

    file

    file

    可以发现所伪造的ticket已经不起作用了

    文章首发公众号:无心的梦呓(wuxinmengyi)

    这是一个记录红队学习、信安笔记,个人成长的公众号

    扫码关注即可

    file

  • 相关阅读:
    基本数据结构——栈
    错误 1 error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:usersvs2013le
    Java内存区域
    VS2010 无法计算HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuildToolsVersions14.0@VCTargetPath处的属性表达式
    PHP高并发场景下的一点思路
    LINUX运维常用命令
    php7的一些新特性总结
    MySQL读写分离主从配置
    php 生成唯一id的几种解决方法
    浅谈mysql两种常用引擎MyIASM和InnoDB的区别
  • 原文地址:https://www.cnblogs.com/wuxinmengyi/p/11768517.html
Copyright © 2020-2023  润新知