NTLM (ang. NT LAN Manager) – rodzina protokołów uwierzytelniania opracowana przez firmę Microsoft, stosowana w sieciach Windows. NTLM działa na zasadzie wyzwanie-odpowiedź, dzięki czemu klient dowodzi znajomości hasła, nie przesyłając go przez sieć. Serwer wysyła klientowi losowe wyzwanie (ang. challenge), a klient odsyła odpowiedź obliczoną na podstawie skrótu hasła użytkownika i tego wyzwania. Protokół powstał jako następca starszego LAN Managera (LM) i był domyślnym sposobem uwierzytelniania w systemach Windows NT. W Active Directory zastąpił go Kerberos, a NTLM pozostał mechanizmem awaryjnym.
Powstały dwie wersje protokołu, różniące się sposobem obliczania odpowiedzi na wyzwanie. W wersji NTLMv1 odpowiedź oblicza się z użyciem algorytmu DES na podstawie skrótu hasła i wyzwania serwera. W wersji NTLMv2, wprowadzonej w Windows NT 4.0, odpowiedź oblicza się funkcją HMAC-MD5, a do wyzwania serwera dochodzi wyzwanie generowane przez klienta oraz znacznik czasu, co utrudnia ataki z użyciem wcześniej przygotowanych tablic i powtórzenie przechwyconej odpowiedzi. Wersji uwierzytelniania nie uzgadnia sam protokół, musi ona być skonfigurowana po stronie klienta i serwera.
W kontekście NTLM funkcjonują dwa różne rodzaje danych wyprowadzanych z hasła, które bywają mylone i potocznie nazywane „hashem NTLM”.
Skrót NTLM (skrót NT) to skrót hasła użytkownika obliczany funkcją MD4 i przechowywany lokalnie, m.in. w bazie SAM lub w Active Directory. W uwierzytelnianiu NTLM pełni rolę klucza, dlatego samo jego zdobycie pozwala uwierzytelnić się jako dany użytkownik bez znajomości hasła w postaci jawnej, w ataku pass-the-hash.
Odpowiedź na wyzwanie serwera przesyłaną przez sieć określa się terminem Net-NTLMv1 (dla NTLMv1) lub Net-NTLMv2 (dla NTLMv2), zapisywanym też bez łącznika (NetNTLMv1, NetNTLMv2) albo w skrócie jako NTLMv1 i NTLMv2. Nie jest ona tym samym co skrót NTLM. Net-NTLMv2 to struktura, którą Microsoft nazywa NTLMv2_RESPONSE, zawierająca wynik funkcji HMAC-MD5 (tzw. NTProofStr) obliczony ze skrótu NTLM, wyzwania serwera i wyzwania klienta, wraz z tym wyzwaniem klienta. Ponieważ zależy od wyzwań, jest inna przy każdym uwierzytelnianiu, więc nie da się jej użyć w ataku pass-the-hash. Przechwyconą odpowiedź Net-NTLMv2 (np. narzędziem Responder, które zatruwa odpowiedzi protokołów rozwiązywania nazw, takich jak LLMNR i NBT-NS) można natomiast próbować złamać metodą siłową w trybie offline, aby odtworzyć hasło, albo przekazać do innego serwera w ataku relay. Rozróżnienie to jest istotne, bo obu rodzajów danych dotyczą inne ataki.
NTLM jest podatny na kilka rodzajów ataków. W ataku przekazania (ang. NTLM relay) atakujący przechwytuje uwierzytelnianie NTLM i przekazuje je do innego serwera, aby uzyskać do niego dostęp. W bazie MITRE ATT&CK przekazanie opisano łącznie z zatruwaniem usług rozwiązywania nazw, takich jak LLMNR i NBT-NS, jako podtechnikę T1557.001. W ataku pass-the-hash atakujący, który zdobył skrót hasła, uwierzytelnia się nim bez znajomości hasła w postaci jawnej. W bazie MITRE ATT&CK technika ta ma oznaczenie T1550.002. W odróżnieniu od Kerberosa NTLM nie zapewnia wzajemnego uwierzytelnienia, czyli klient nie weryfikuje tożsamości serwera.
Z powodu tych słabości Microsoft w 2024 roku uznał wszystkie wersje NTLM za przestarzałe (ang. deprecated) i zaleca korzystanie z Kerberosa lub z mechanizmu Negotiate, który najpierw próbuje uwierzytelnienia Kerberosem, a do NTLM sięga tylko w razie potrzeby.