NoPac最新教程:手把手带你绕过域控防线,这波操作我直呼内行!
嘿,各位安全圈的老铁们,大家好呀!今天咱们不聊虚的,直接上硬菜——NoPac最新教程,全程干货,看得过瘾记得点个收藏!说实话,我刚开始接触这个漏洞利用的时候,也是一脸懵,感觉网上的教程要么太老,要么写得跟天书一样,几度想摔键盘(捂脸),但后来自己踩了无数坑,总算是把这条路径给摸透了,今天我就用大白话,加上我的实战心路历程,把最新的NoPac利用思路给你捋得明明白白,保证你听完直呼“原来如此”!

咱得搞明白NoPac到底是个啥玩意儿,对吧?其实它啊,就是最近在域环境里特别火的一个组合拳漏洞,利用了CVE-2021-42278和CVE-2021-42287这对“卧龙凤雏”兄弟,说白了,就是通过修改机器账户的SAM-Account-Name,把它伪装成域控的机器名,然后申请TGT,再利用Kerberos的S4U2Self机制,直接冒充域控拿到高权限的ST票据,哎呀,这波操作下来,要是能成功,那基本上域管权限就手拿把掐了,想想就有点小激动呢!
咱得先把丑话说在前头,最新的NoPac利用环境要求比之前严格多了,因为很多厂商都更新了补丁(微软:我连夜缝缝补补容易嘛),你的实验环境千万别装最新补丁的域控,不然咱这招就“哑火”了,那可真是哭都没地方哭,建议大家用Windows Server 2012 R2或者2016,且关闭自动更新,这样咱才能愉快地“玩耍”。
好,废话不多说,直接进入正题,开始操作!第一步,你得有一台加入域的主机权限(普通域用户就行,不用太高),掏出咱们的武器库,比如Impacket工具套件里的addcomputer.py,得先添加一个机器账户,这一步呀,最怕的就是权限不够报错,我当时遇到“Access Denied”真的是血压飙升,后来发现,其实可以利用默认的域用户权限,通过MS-SAMR协议创建,只要账户名以“$”结尾就行,比如咱创建一个“fake01$”,密码咱自己设,P@ssw0rd123”。
添加上账户后,关键的一步来了!咱们要用setSamAccountName.py这个小工具,把咱们刚刚创建的“fake01$”的SAM-Account-Name改成域控的名字,DC01”(注意,要去掉后面的“$”),这一步的原理就是利用特权的缺失,让系统误以为咱是域控本控,操作完这一步,我心里那叫一个美滋滋,感觉自己已经摸到了域控的大门。
紧接着,最激动人心的时刻到了!咱们要用getTGT.py去申请一个针对“DC01”的TGT票据,因为前面咱们已经把账户名伪装成了DC01,所以KDC在发TGT的时候,就会把这个票据的PAC签名校验给搞混,这里有个小细节要提醒大家,环境变量KRB5CCNAME一定要设置好,不然票据存哪里你都不知道,我当时就因为这个环境变量没设置,导致后面申请ST的时候各种找不着北,白白浪费了一下午,哎哟气死我了。
拿到TGT之后,咱们再利用getST.py去申请服务票据,目标就是域控上的CIFS服务(文件共享),因为咱们现在是“冒牌”DC01,所以KDC就会在PAC里给咱们塞进高额的域管权限组SID,拿到这个ST票据后,用wmiexec.py或者psexec.py连接过去,哎嘿,你就看见一个明晃晃的“NT AUTHORITY\SYSTEM”或者域管权限的Shell摆在面前!那种感觉,怎么说呢?就像是通关了魂系游戏最终BOSS,浑身舒爽,忍不住想哼首歌!
我真心要给大家伙提个醒:最新的防御检测手段也已经很成熟了,安全运维的兄弟们可能会开启PAC校验或事件日志审计,所以啊,咱在实战中(授权测试哈!)一定要速战速决,干完活赶紧清理日志,把咱们创建的机器账户删掉,把SPN记录擦干净,不然被溯源到就尴尬了,毕竟咱是讲武德的,不能给别人添麻烦嘛。
最后呢,如果你发现直接用Impacket的命令行操作不顺手,市面上也有好多图形化集成的工具,比如Nopac.py一键脚本,它能把添加账户、改名、申请票据、获取Shell全自动串起来,简直是懒人福音,但作为教程,咱还是推荐先手动走一遍流程,把原理吃透,到时候用工具才不至于像个“无头苍蝇”嘛。
好啦,今天的NoPac最新教程就唠到这儿啦,不知道你听完有没有觉得豁然开朗?反正我是把我踩过的坑、流过的泪都倾囊相授了,如果觉得有用,记得分享给身边爱折腾的小伙伴,点个赞再走呗!有什么问题欢迎在评论区留言,咱们一起探讨进步,下期再见咯!拜拜!