面试题解NoPac漏

极客

** [面试题解 NoPac 漏洞,这波我直接跟面试官对线!]()

哈喽大家好,我是你们的老朋友,一个在网络安全海洋里扑腾了好几年的“老油条”,今天咱不聊虚的,直接上硬菜!前几天我去面了一家大厂的安全岗,好家伙,面试官上来就扔给我一个“NoPac”漏洞,让我现场分析,我当时心里咯噔一下,这玩意儿虽然听过,但真要我掰开揉碎了讲,还真得捋捋思路,不过嘛,咱也是见过风浪的人,稳住心态,一顿操作猛如虎,最后跟面试官聊得那叫一个酣畅淋漓,今天就把这段“面试题解”分享给大家,保你下次遇到也能从容应对!

咱们得搞清楚,NoPac 到底是个啥?

哎呀,说白了,它就是个“组合拳”漏洞,面试官考你这个,绝对不是单纯问你CVE编号,而是考你对内网渗透、域环境攻击的深度理解,NoPac 的学名是 CVE-2021-42278 和 CVE-2021-42287 的组合利用,我当时是这么跟面试官解释的:

“您看啊,这就像个身份盗窃的连环计,42278 允许我们在域内创建一个名字和域控机器账户(DC账号)几乎一模一样的计算机账户,区别就在于结尾少了那个珍贵的‘$’符号,而 42287 呢,又允许我们在请求TGT(票据授予票据)的时候,把这个‘冒牌货’的名字转换成域控的机器账户,这一套下来,我就能拿着域控的权限‘为所欲为’了!”

面试官当时眼睛就亮了,追问我:“那利用前提和关键点是什么?”

好家伙,这可是考点中的考点!我清了清嗓子,开始我的“表演”:

前提嘛,有这么几个硬性条件,缺一不可,急死个人! 第一,你手里得有一个普通的域用户账号权限,这是你的入场券,第二,你创建的那个机器账户得能用,密码得是你自己知道的,第三,也是最重要的,千万不能让那个带‘$’的正主和你的冒牌货同时出现同名冲突,不然会触发蜜罐或者报错,整个过程就像是在刀尖上跳舞,得掐着时间点,利用 Kerberos 协议里那个 S4U2Self 的扩展,让域控自己打自己,把票发给我这个冒牌货,然后我顺势就拿到了域管的 TGT。”

我一边说一边在纸上画了个简单的流程图,面试官不住地点头,我心想,稳了!然后我又补充道:

这玩意儿比经典的 PrintNightmare 和 Zerologon 好使多了,因为它不需要重启域控,不需要网卡配置,只要能创建机器账户就能打,而且利用工具也挺成熟的,像 NoPac.py 或者 CVE-2021-42287 的利用脚本,跑起来那叫一个丝滑。”

紧接着,面试官又问了个刁钻的:“怎么防御呢?”

嘿嘿,这波我早有准备,我立马正色道:

防御这块儿,其实只要抓住一个核心思想:别让攻击者有机会创建和域控重名的机器账户。

  1. 修补丁!修补丁!修补丁! 重要的事情说三遍,第一时间更新微软的补丁,这是治本之策,不然说啥都白搭。
  2. 限制创建机器账户的权限,默认的 MS-DS-Machine-Account-Quota 是10,改成0,不给普通用户这个权利。
  3. 开启 PAC 校验和签名,加强 Kerberos 的安全性。
  4. 做强审计监控,时刻盯着域控的 4742 事件,看有没有突然多出来的机器账户,或者名字跟DC账户特别像的奇怪账户,DC$DC1 这种,一看就有猫腻!”

我当时越说越顺,感觉不是在面试,而是在跟同行交流心得,最后我还特意总结了一句:“其实吧,NoPac 漏洞的核心本质,就是对 Kerberos 协议流程的深度滥用,它提醒我们,内网的安全不仅仅是边界防火墙的事,域内的每一层信任关系都可能是被攻破的缺口。”

走出面试间,我长舒了一口气,这题解,应该拿捏得死死的,今天分享出来,也是希望大家能明白,面试题解不是死记硬背,而是要真正理解背后的攻击链逻辑,这样你才能像个老猎人一样,在复杂的网络环境里游刃有余。

面试题解NoPac漏

好了,今天关于 NoPac 漏洞的面试题解就聊到这儿,如果你也对这些安全技术感兴趣,无论是想入门还是想进阶,都欢迎一起交流探讨,想要学习更多网络安全实战技术,或者对面试题解有独到见解的朋友,可以加我的QQ:3382688694,咱们私下里好好切磋切磋!下次面试,咱们一起上岸!

文章版权声明:除非注明,否则均为咸鱼-即刻攻防原创文章,转载或复制请以超链接形式并注明出处。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码