NTLM relay – technika ataku polegająca na przechwyceniu uwierzytelniania NTLM między klientem a serwerem i przekazaniu go do innego serwera, w celu uwierzytelnienia się tam jako atakowany użytkownik. Atakujący zajmuje pozycję pośrednika: wobec klienta udaje serwer, do którego klient chce się uwierzytelnić, a wobec serwera występuje jako klient. Nie musi przy tym znać hasła ani jego skrótu, ponieważ jedynie pośredniczy w wymianie komunikatów NTLM. W bazie MITRE ATT&CK technika jest opisana łącznie z zatruwaniem usług rozwiązywania nazw jako podtechnika T1557.001. Odmianą nakierowaną na usługę udostępniania plików SMB jest SMB relay.
Uwierzytelnianie NTLM przebiega w schemacie wyzwanie-odpowiedź: serwer wysyła klientowi losowe wyzwanie, a klient odsyła odpowiedź obliczoną na podstawie skrótu swojego hasła. Samo hasło ani jego skrót nie są przesyłane przez sieć. Atakujący, znajdując się w pozycji pośrednika, przekazuje wyzwanie otrzymane od prawdziwego serwera do klienta, a obliczoną przez klienta poprawną odpowiedź odsyła z powrotem do serwera. Dla serwera wygląda to jak poprawne uwierzytelnienie klienta, mimo że faktycznie łączy się z nim atakujący.
Uwierzytelnianie w NTLM jest niezależne od protokołu aplikacyjnego, w którym jest przenoszone, co pozwala przekazać je do usługi innego rodzaju niż ta, z której pochodziło (ang. cross-protocol relay), np. przechwycone przez HTTP przekazać do SMB. Celem przekazania bywają usługi takie jak SMB, LDAP, HTTP czy serwer bazy danych. Atakujący zwykle najpierw doprowadza do tego, że klient uwierzytelnia się do jego maszyny, m.in. przez zatruwanie protokołów rozwiązywania nazw LLMNR i NBT-NS albo przez nadużycie domyślnej konfiguracji IPv6. Popularnym narzędziem do przeprowadzania ataku jest ntlmrelayx z pakietu Impacket, często w połączeniu z narzędziem Responder.
Podstawowym zabezpieczeniem jest podpisywanie komunikatów (ang. signing). Jeśli serwer wymaga podpisanych pakietów, atakujący nie jest w stanie ich podpisać, ponieważ nie zna klucza sesji zależnego od sekretu klienta, wobec czego serwer odrzuca jego żądania. Mechanizm ten jest dostępny m.in. w protokołach SMB i LDAP. Firma Microsoft opisuje podpisywanie SMB jako zabezpieczenie zapobiegające atakom typu relay i od wersji Windows 11 24H2 oraz Windows Server 2025 domyślnie wymaga go dla wszystkich połączeń SMB. Dodatkową ochroną jest wiązanie uwierzytelniania z warstwą aplikacji lub z sesją TLS (ang. channel binding, Enhanced Protection for Authentication), które utrudnia przekazanie uwierzytelnienia do innej usługi.
Integralność komunikatów NTLM chroni kod MIC (ang. Message Integrity Code), uniemożliwiający ich modyfikację przez pośrednika. W 2019 roku ujawniono podatność CVE-2019-1040 (nazwaną Drop the MIC), która pozwalała usunąć pole MIC bez unieważnienia uwierzytelnienia, a przez to omijać zabezpieczenia przed przekazaniem. Microsoft usunął ją aktualizacją z czerwca 2019 roku.