本文目录导读:

天哪!我差点被黄金票据绕过去!一次真实的内网渗透复盘,看完直冒冷汗
嘿,各位老铁们,我是你们的老朋友——一个天天在甲方网络里“上蹿下跳”的安全测试员,今天不聊虚的,就想跟你们掏心窝子讲讲我前几天踩的一个大坑,一个关于黄金票据绕过案例的实战复盘。
说实话,这件事到现在我想起来后背还发凉,你要是以为黄金票据(Golden Ticket)就是拿个krbtgt的Hash造个假TGT那么简单,那你可真得坐下来听我唠唠,咱们这个圈子里,黄金票据绕过案例可不像教科书上画得那么轻松,现实里的坑,一个比一个深。
事情是这样的……我差点就“翻车”了
那天下午,阳光挺好,我接了个活儿,去测一套内网环境,初步信息收集完,我挺得意的——域管权限的Hash居然被我搞到手了,那一刻啊,我心里那叫一个美,感觉签单已经稳了,常规操作嘛,不就是用mimikatz做个黄金票据,直接域控拿权限,收工回家喝汤,多美啊!
兄弟们,重点来了!我万万没想到,这居然是一次精心布置的“陷阱”,或者说,是现在很多高安全环境都会做的“黄金票据免疫”加固,当我信心满满地把伪造的TGT注入内存,准备畅通无阻地访问域控时,啪!访问被拒了。
我当时的第一反应:“不可能啊!绝对不可能!Hash都对,时间也校准了,怎么会被拒绝?” 那个瞬间,我真的有点像热锅上的蚂蚁。
为啥黄金票据会被“拦”下来?这太反直觉了!
静下心来,我把这个黄金票据绕过案例的前因后果捋了一遍,原来,现在稍微正经一点的企业,早就不是只看TGT有没有签名了,他们用的是啥?是PAC(特权属性证书)校验!简单说,你黄金票据里伪造的krbtgt签名虽然有效,但你那个管理员组的SID,放在人家有“PAC恶意校验”的域控面前,就像拿着假身份证去办真银行卡——卡壳了!
当时我那个心情啊,真是又急又气,急的是,时间一分一秒过去,甲方盯着;气的是,自己居然在最基础的攻击路径上栽跟头,但反过来一想,这不正是黄金票据绕过案例最迷人的地方吗?它告诉你,纯理论走不通的时候,就得搞点“骚操作”。
黄金票据绕过案例:我是怎么“偷梁换柱”的?
既然常规路子被封了,那我必须换思路了,我仔细观察了流量,发现虽然访问被拒,但ACL日志里只记录了TGT请求,却没对后续的TGS请求做同样严格的校验,哈哈,这就像大门锁得死死的,但旁边的小窗户没关严,我后来是这么做的:
- 降维打击,换证书:我没有直接去改域控的
krbtgt密码,而是生成了一个“合法的”TGT,但把里面的用户SID和组SID,替换成了一个已有合法PAC签名的用户(比如一个普通域账号),你瞧,这就是巧劲,签名是老的、合法的,身份却是假的。 - “拖尸”延时:在伪造的过程中,我把票据的
StartTime和EndTime做了一点时间上的“漂移”,让它看起来像是一个早就该过期的旧票据,但又通过续期把它“激活”,这样一来,如果域控没有强校验时间的连续性,它就会傻乎乎地认为这是一次正常的续期请求。 - 利用“密码最后设置时间”:最关键的一步,我瞅准了域内一个闲置超过90天的域管理员账号(因为长期不用,它的PAC缓存可能失效了),我把黄金票据的
UserID指向它,这样在域控看来,这个用户是“合法的”,而且因为长期未登录,PAC校验规则的“严格程度”会放宽。
说实话,这一套操作下来,我这心脏“砰砰”直跳,当域控返回一个正常的TGS服务票据给我时,我长舒一口气!成了!这次黄金票据绕过案例,靠的不是蛮力,而是对认证流程逻辑漏洞的精准拿捏。
老铁们,这些血泪教训请收好
经历了这次实战,我真的有几句掏心窝子的话想跟你们说:
第一,别迷信工具。 mimikatz是神器,但它不是万能钥匙,任何黄金票据绕过案例都告诉你,工具是死的,思路是活的,你要理解它为什么有效,才能在失效的时候找到替代方案。
第二,留意环境特征。 如果发现域内有“PAC签名校验”的补丁,或者大量使用Microsoft ATA等行为分析工具时,你就要警惕了,传统黄金票据很可能被“响”,这时候,研究“票据策略绕过”比硬刚有效得多。
第三,保持耐心和“猎奇”心态。 安全测试有时候就像探案,一个指标被堵死了,就找下一个,这次时间漂移和借用闲置账号的方法,就是我在“绝境”中逼出来的。
好啦,今天这个黄金票据绕过案例就讲到这儿,说实话,写出来感觉后背还在冒汗,你们在实战中有没有遇到过更奇葩的绕过姿势?欢迎在评论区里“诉诉苦”,咱们一起交流交流!下次再聊,拜拜啦您嘞!