Getting rid of NTLM is easier now

๐Ÿ”’ Secure Bits ๐Ÿ’ก
๐—š๐—ฒ๐˜๐˜๐—ถ๐—ป๐—ด ๐—ฟ๐—ถ๐—ฑ ๐—ผ๐—ณ ๐—ก๐—ง๐—Ÿ๐—  ๐—ถ๐˜€ ๐—ณ๐—ถ๐—ป๐—ฎ๐—น๐—น๐˜† ๐—ฒ๐—ฎ๐˜€๐—ถ๐—ฒ๐—ฟ (๐—ฎ๐—ป๐—ฑ ๐˜€๐—บ๐—ฎ๐—ฟ๐˜๐—ฒ๐—ฟ)

In Windows 11 version 24H2 and Windows Server 2025, Microsoft introduced ๐—ฒ๐—ป๐—ต๐—ฎ๐—ป๐—ฐ๐—ฒ๐—ฑ ๐—ก๐—ง๐—Ÿ๐—  ๐—น๐—ผ๐—ด๐—ด๐—ถ๐—ป๐—ด โ€” and itโ€™s a game changer for organizations trying to decommission NTLM.

Letโ€™s break it down ๐Ÿ‘‡

โธป
๐—ข๐—Ÿ๐—— ๐—ช๐—”๐—ฌ

๐Ÿ› ย ๐—š๐—ฃ๐—ข:
โ€ข ๐˜š๐˜ฆ๐˜ค๐˜ถ๐˜ณ๐˜ช๐˜ต๐˜บ ๐˜š๐˜ฆ๐˜ต๐˜ต๐˜ช๐˜ฏ๐˜จ๐˜ด > ๐˜ˆ๐˜ฅ๐˜ท๐˜ข๐˜ฏ๐˜ค๐˜ฆ๐˜ฅ ๐˜ˆ๐˜ถ๐˜ฅ๐˜ช๐˜ต ๐˜—๐˜ฐ๐˜ญ๐˜ช๐˜ค๐˜บ ๐˜Š๐˜ฐ๐˜ฏ๐˜ง๐˜ช๐˜จ๐˜ถ๐˜ณ๐˜ข๐˜ต๐˜ช๐˜ฐ๐˜ฏ > ๐˜ˆ๐˜ค๐˜ค๐˜ฐ๐˜ถ๐˜ฏ๐˜ต ๐˜“๐˜ฐ๐˜จ๐˜ฐ๐˜ฏ > ๐˜ˆ๐˜ถ๐˜ฅ๐˜ช๐˜ต ๐˜Š๐˜ณ๐˜ฆ๐˜ฅ๐˜ฆ๐˜ฏ๐˜ต๐˜ช๐˜ข๐˜ญ ๐˜๐˜ข๐˜ญ๐˜ช๐˜ฅ๐˜ข๐˜ต๐˜ช๐˜ฐ๐˜ฏ
โ€ข ๐˜š๐˜ฆ๐˜ค๐˜ถ๐˜ณ๐˜ช๐˜ต๐˜บ ๐˜š๐˜ฆ๐˜ต๐˜ต๐˜ช๐˜ฏ๐˜จ๐˜ด > ๐˜ˆ๐˜ฅ๐˜ท๐˜ข๐˜ฏ๐˜ค๐˜ฆ๐˜ฅ ๐˜ˆ๐˜ถ๐˜ฅ๐˜ช๐˜ต ๐˜—๐˜ฐ๐˜ญ๐˜ช๐˜ค๐˜บ ๐˜Š๐˜ฐ๐˜ฏ๐˜ง๐˜ช๐˜จ๐˜ถ๐˜ณ๐˜ข๐˜ต๐˜ช๐˜ฐ๐˜ฏ > ๐˜“๐˜ฐ๐˜จ๐˜ฐ๐˜ฏ/๐˜“๐˜ฐ๐˜จ๐˜ฐ๐˜ง๐˜ง > ๐˜ˆ๐˜ถ๐˜ฅ๐˜ช๐˜ต ๐˜“๐˜ฐ๐˜จ๐˜ฐ๐˜ฏ

๐Ÿ“„ย ๐—˜๐˜ƒ๐—ฒ๐—ป๐˜๐˜€:
โ€ข 4776 โ€” NTLM usage (no version, no reason, no process)
โ€ข 4624 โ€” NTLM ๐˜ƒ๐—ฒ๐—ฟ๐˜€๐—ถ๐—ผ๐—ป shown – must be collected on the client side

โŒ It was hard to get a global view of NTLM usage and the context behind it.

โธป
“๐—ก๐—˜๐—ช๐—˜๐—ฅ” ๐—ช๐—”๐—ฌ

๐Ÿ› ย ๐—š๐—ฃ๐—ข:
โ€ข ๐˜“๐˜ฐ๐˜ค๐˜ข๐˜ญ ๐˜—๐˜ฐ๐˜ญ๐˜ช๐˜ค๐˜ช๐˜ฆ๐˜ด > ๐˜š๐˜ฆ๐˜ค๐˜ถ๐˜ณ๐˜ช๐˜ต๐˜บ ๐˜–๐˜ฑ๐˜ต๐˜ช๐˜ฐ๐˜ฏ๐˜ด > ๐˜•๐˜ฆ๐˜ต๐˜ธ๐˜ฐ๐˜ณ๐˜ฌ ๐˜ด๐˜ฆ๐˜ค๐˜ถ๐˜ณ๐˜ช๐˜ต๐˜บ: ๐˜™๐˜ฆ๐˜ด๐˜ต๐˜ณ๐˜ช๐˜ค๐˜ต ๐˜•๐˜›๐˜“๐˜”: ๐˜ˆ๐˜ถ๐˜ฅ๐˜ช๐˜ตโ€ฆ

๐Ÿ“„ย ๐—˜๐˜ƒ๐—ฒ๐—ป๐˜๐˜€:
โ€ข 8001 โ€” Client: outgoing NTLMย blocked; showsย ๐—ฝ๐—ฟ๐—ผ๐—ฐ๐—ฒ๐˜€๐˜€;ย no version
โ€ข 8002 โ€” Target device: incoming NTLM blocked
โ€ข 8003 โ€” Service host: NTLM blocked; shows process; no version
โ€ข 8004โ€“8006 โ€” NTLM authentication blocks on DC

โš ๏ธ These events show which process initiated the NTLM authentication (plus details) and whether it would be/was blocked. But we still lack a DC-side log that captures the full NTLM transaction.

โธป
๐—ก๐—˜๐—ช

๐Ÿ› ย ๐—š๐—ฃ๐—ข:
โ€ข ๐˜ˆ๐˜ฅ๐˜ฎ๐˜ช๐˜ฏ๐˜ช๐˜ด๐˜ต๐˜ณ๐˜ข๐˜ต๐˜ช๐˜ท๐˜ฆ ๐˜›๐˜ฆ๐˜ฎ๐˜ฑ๐˜ญ๐˜ข๐˜ต๐˜ฆ๐˜ด > ๐˜š๐˜บ๐˜ด๐˜ต๐˜ฆ๐˜ฎ > ๐˜•๐˜›๐˜“๐˜” > ๐˜•๐˜›๐˜“๐˜” ๐˜Œ๐˜ฏ๐˜ฉ๐˜ข๐˜ฏ๐˜ค๐˜ฆ๐˜ฅ ๐˜“๐˜ฐ๐˜จ๐˜จ๐˜ช๐˜ฏ๐˜จ
โ€ข ๐˜ˆ๐˜ฅ๐˜ฎ๐˜ช๐˜ฏ๐˜ช๐˜ด๐˜ต๐˜ณ๐˜ข๐˜ต๐˜ช๐˜ท๐˜ฆ ๐˜›๐˜ฆ๐˜ฎ๐˜ฑ๐˜ญ๐˜ข๐˜ต๐˜ฆ๐˜ด > ๐˜š๐˜บ๐˜ด๐˜ต๐˜ฆ๐˜ฎ > ๐˜•๐˜ฆ๐˜ต๐˜ญ๐˜ฐ๐˜จ๐˜ฐ๐˜ฏ > ๐˜“๐˜ฐ๐˜จ ๐˜Œ๐˜ฏ๐˜ฉ๐˜ข๐˜ฏ๐˜ค๐˜ฆ๐˜ฅ ๐˜‹๐˜ฐ๐˜ฎ๐˜ข๐˜ช๐˜ฏ-๐˜ธ๐˜ช๐˜ฅ๐˜ฆ ๐˜•๐˜›๐˜“๐˜” ๐˜“๐˜ฐ๐˜จ๐˜ด

๐Ÿ“„ย ๐—˜๐˜ƒ๐—ฒ๐—ป๐˜๐˜€:
โ€ข 4020/4021 โ€” Client-side: NTLM version, ๐—ฝ๐—ฟ๐—ผ๐—ฐ๐—ฒ๐˜€๐˜€, and ๐—ฟ๐—ฒ๐—ฎ๐˜€๐—ผ๐—ป
โ€ข 4022/4023 โ€” Server-side: NTLM version and local process
โ€ข 4030/4031 โ€” DC-side: NTLM version, service, cross-domain
โ€ข 4032/4033 โ€” DC-side: NTLM ๐˜ƒ๐—ฒ๐—ฟ๐˜€๐—ถ๐—ผ๐—ป, service, same-domain

๐ŸŽฏ On the client, youโ€™ll seeย whyย NTLM fired, but theย ๐—ฑ๐—ผ๐—บ๐—ฎ๐—ถ๐—ป ๐—ฐ๐—ผ๐—ป๐˜๐—ฟ๐—ผ๐—น๐—น๐—ฒ๐—ฟ ๐—ด๐—ถ๐˜ƒ๐—ฒ๐˜€ ๐˜†๐—ผ๐˜‚ ๐˜๐—ต๐—ฒ ๐—ฑ๐—ฒ๐˜๐—ฎ๐—ถ๐—น๐˜€ ๐˜†๐—ผ๐˜‚ ๐—ฎ๐—ฐ๐˜๐˜‚๐—ฎ๐—น๐—น๐˜† ๐—ป๐—ฒ๐—ฒ๐—ฑ (NTLM version, SPN, etc.). Start your review on the DC to map where NTLM is used, then drill down into specific clients/servers as needed.

โธป

โ“๐—ฆ๐˜๐—ถ๐—น๐—น ๐—ฟ๐—ฒ๐—น๐˜†๐—ถ๐—ป๐—ด ๐—ผ๐—ป ๐—ก๐—ง๐—Ÿ๐—  in your environment?