Przejdź do zawartości

NTLM

Z Wikipedii, wolnej encyklopedii

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[1]. 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[2].

Wersje

[edytuj | edytuj kod]

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[3]. Wersji uwierzytelniania nie uzgadnia sam protokół, musi ona być skonfigurowana po stronie klienta i serwera[3].

Skrót NTLM a odpowiedź sieciowa

[edytuj | edytuj kod]

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[4]. 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[5].

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[6][5]. 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[7]. 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[5][8][9]. Rozróżnienie to jest istotne, bo obu rodzajów danych dotyczą inne ataki[5].

Bezpieczeństwo

[edytuj | edytuj kod]

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[8]. 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[10]. W odróżnieniu od Kerberosa NTLM nie zapewnia wzajemnego uwierzytelnienia, czyli klient nie weryfikuje tożsamości serwera[2].

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[2].

Zobacz też

[edytuj | edytuj kod]

Przypisy

[edytuj | edytuj kod]
  1. ↑ [MS-NLMP: NT LAN Manager (NTLM) Authentication Protocol]. Microsoft Learn. [dostęp 2026-10-01]. (ang.).
  2. 1 2 3 Bill Toulas: Microsoft deprecates Windows NTLM authentication protocol. BleepingComputer, 2024-06-04. [dostęp 2026-10-01]. (ang.).
  3. 1 2 [MS-NLMP: NTLM v2 Authentication]. Microsoft Learn. [dostęp 2026-10-01]. (ang.).
  4. ↑ [MS-NLMP: Glossary]. Microsoft Learn. [dostęp 2026-10-01]. (ang.).
  5. 1 2 3 4 Back To Basics: NTLM Relay. RSM US (War Room), 2023-01-04. [dostęp 2026-10-01]. (ang.).
  6. ↑ Marcello Salvati: Practical guide to NTLM Relaying in 2017. byt3bl33d3r, 2017-06-02. [dostęp 2026-10-04]. (ang.).
  7. ↑ [MS-NLMP: NTLMv2_RESPONSE]. Microsoft Learn. [dostęp 2026-10-01]. (ang.).
  8. 1 2 Adversary-in-the-Middle: Name Resolution Poisoning and SMB Relay, Sub-technique T1557.001. MITRE ATT&CK. [dostęp 2026-10-04]. (ang.).
  9. ↑ Adam Ziaja: Zatruwanie odpowiedzi LLMNR – Responder, llmnr_response. REDTEAM.PL TECHBLOG, 2017-09-25. [dostęp 2026-09-30]. (pol.).
  10. ↑ Use Alternate Authentication Material: Pass the Hash, Sub-technique T1550.002. MITRE ATT&CK. [dostęp 2026-10-04]. (ang.).