Wyłączanie uwierzytelniania NTLM w domenie Windows

NTLM (NT LAN Manager) to dość stary protokół uwierzytelniania Microsoft, który pojawił się w Windows NT. Chociaż Microsoft wprowadził bardziej bezpieczny protokół uwierzytelniania Kerberos w Windows 2000, NTLM (głównie NTLMv2) jest nadal szeroko stosowany do uwierzytelniania w sieciach Windows. W tym artykule rozważymy funkcje procesu wyłączania protokołu NTLMv1 i NTLMv2 oraz przełączania na Kerberos w domenie Active Directory.

Główny problem NTLMv1 - słabe szyfrowanie, przechowywanie skrótu hasła w pamięci RAM w usłudze LSA, które można wyodrębnić za pomocą różnych narzędzi (takich jak mimikatz) i użyć skrótu do dalszych ataków, brak wzajemnego uwierzytelnienia klienta i serwera, co sprawia, że ​​ataki przechwytywania danych i nieautoryzowany dostęp do zasobów sieciowych są całkiem realne (narzędzia takie jak Responder mogą przechwytywać dane NTLM przesyłane przez sieć i wykorzystywać je do uzyskiwania dostępu do zasobów sieciowych) oraz szereg innych luk w zabezpieczeniach.

Niektóre z tych niedociągnięć zostały naprawione w nowszej wersji. NTLMv2, który wykorzystuje więcej algorytmów szyfrowania kryptograficznego i może zapobiec popularnym atakom na NTLM. Począwszy od systemu Windows 7 / Windows Server 2008 R2, użycie NTLMv1 i LM do autoryzacji jest domyślnie wyłączone.

Treść

  • Przełączanie na NTLMv2
  • Inspekcja zdarzeń uwierzytelniania NTLM w domenie
  • Wyłączanie NTLM w domenie Active Directory

Przełączanie na NTLMv2

Jeśli myślisz o całkowitym porzuceniu NTLM w swojej domenie, musisz najpierw upewnić się, że nie używasz jego bardziej wrażliwej wersji, NTLMv1. Twoja sieć prawdopodobnie ma wiele starszych urządzeń lub usług, które nadal używają uwierzytelniania NTLMv1 zamiast NTLMv2 (lub Kerberos). Dlatego przed uciekaniem się do całkowitego zamknięcia przeczytaj sekcję tego artykułu dotyczącą kontrolowania zdarzeń autoryzacji za pomocą NTLM.

Potencjalne problemy podczas wyłączania NTLMv1 mogą dotyczyć małych produktów open source, różnych starych modeli skanerów sieciowych (które układają skanowane w foldery sieciowe), niektórych urządzeń NAS i innych przestarzałych urządzeń, oprogramowania i systemu operacyjnego.

Przede wszystkim administrator domeny musi upewnić się, że zabronione jest używanie NTLM lub LM do autoryzacji w jego sieci, ponieważ w niektórych przypadkach osoba atakująca może użyć specjalnych żądań, aby otrzymać odpowiedź na żądanie NTLM / LM.

Typ uwierzytelnienia można ustawić za pomocą polityki domeny (lub lokalnej). Otwórz konsolę zarządzania zasadami domeny i edytuj Domyślne zasady domeny. Przejdź do sekcji Konfiguracje komputerów -> Zasady -> Ustawienia systemu Windows -> Ustawienia zabezpieczeń -> Zasady lokalne -> Opcje bezpieczeństwa i znajdź polisę

Bezpieczeństwo sieci: poziom uwierzytelnienia LAN Manager (Bezpieczeństwo sieci: poziom uwierzytelnienia LAN Manager).

Istnieje 6 opcji w ustawieniach zasad:

  • Wysyłaj odpowiedzi LM i NTLM;
  • Wysyłaj odpowiedzi LM i NTLM - stosuj zabezpieczenia sesji NTLMv2, jeśli są negocjowane;
  • Wyślij tylko odpowiedź NTLM;
  • Wyślij tylko odpowiedź NTLMv2;
  • Wyślij tylko odpowiedź NTLMv2. Odmówić LM;
  • Wyślij tylko odpowiedź NTLMv2. Odrzuć LM i NTLM.

Zasady korzystania z uwierzytelniania NTLM są ułożone w porządku rosnącym bezpieczeństwa. Domyślne ustawienie dla Windows 7 i wyższych to Wyślij tylko odpowiedź NTLMv2 (Wyślij tylko odpowiedź NTLMv2). Przy tym ustawieniu komputery klienckie używają uwierzytelniania NTLMv2, ale kontrolery domeny akceptują żądania LM, NTLM i NTLMv2.

NTLMv2 może być używany, jeśli protokół Kerberos nie działał i do niektórych operacji (na przykład podczas zarządzania kontami lokalnymi i grupami na komputerach domeny) lub w grupach roboczych.

Możesz zmienić wartość polisy na bezpieczniejszą opcję 6 - „Wyślij tylko odpowiedź NTLMv2. Odrzuć LM i NTLM„ Zgodnie z tymi zasadami kontrolery domeny odrzucają również żądania LM i NTLM..

Możesz także wyłączyć NTLMv1 poprzez rejestr. Do tego w oddziale

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Lsa musisz utworzyć parametr DWORD o nazwie LmCompatibilityLevel oraz wartość od 0 do 5. Wartość 5 odpowiada wartości zasad „Wyślij tylko odpowiedź NTLMv2. Odrzuć LM i NTLM”.

W tej samej sekcji obiektu zasad grupy upewnij się, że zasady są włączone Bezpieczeństwo sieci: Czy przechowuje wartość hash Lan Managera przy następnej zmianie hasła (Bezpieczeństwo sieci: nie przechowuj wartości skrótu LAN Managera przy następnej zmianie hasła). Ta zasada jest domyślnie włączona począwszy od systemu Windows Vista / Windows Server 2008 i zapobiega tworzeniu skrótu LM.

Pamiętaj, aby zastosować tę zasadę do kontrolerów domeny..

Jeśli jesteś przekonany, że nie używasz NTLMv1, możesz przejść dalej i spróbować zrezygnować z NTLMv2. NTLMv2, chociaż bezpieczniejszy protokół uwierzytelniania, nadal znacznie utrudnia Kerberos pod względem bezpieczeństwa (chociaż NTLMv2 ma mniej luk niż pierwsza wersja protokołu, nadal istnieją możliwości przechwytywania i ponownego wykorzystywania danych oraz wzajemne uwierzytelnianie).

Głównym ryzykiem wyłączenia NTLM jest możliwe użycie przestarzałych lub niepoprawnie skonfigurowanych aplikacji w domenie, które mogą nadal korzystać z uwierzytelniania NTLM, a będziesz musiał je zaktualizować lub skonfigurować w specjalny sposób, aby przełączyć się na Kerberos.

Inspekcja zdarzeń uwierzytelniania NTLM w domenie

Przed całkowitym wyłączeniem NTLM w domenie i przełączeniem na Kerberos zaleca się upewnić się, że w domenie nie pozostały żadne aplikacje, które wymagają uwierzytelnienia NTLM i korzystają z niego.

Aby śledzić konta i aplikacje korzystające z uwierzytelniania NTLM, możesz włączyć zasady inspekcji na wszystkich komputerach korzystających z GPO. W sekcji Konfiguracja komputera -> Ustawienia systemu Windows -> Ustawienia zabezpieczeń -> Zasady lokalne -> Opcje zabezpieczeń, znajdź i włącz zasadę Zabezpieczenia sieci: Ogranicz NTLM: Kontroluj uwierzytelnianie NTLM w tej domenie, ustawiając jego wartość na Włącz wszystkie.

Włącz zasady w ten sam sposób. Bezpieczeństwo sieci: Ogranicz NTLM: Kontroluj przychodzący ruch NTLM, ustawiając jego wartość na Włącz kontrolę dla kont domeny.

Po uwzględnieniu tych zasad zdarzenia korzystające z uwierzytelniania NTLM są zapisywane w dzienniku zdarzeń Podglądu zdarzeń w sekcji Dzienniki aplikacji i usług-> Microsoft -> Windows -> NTLM.

Możesz analizować zdarzenia na każdym serwerze lub zbierać wszystkie zdarzenia w centralnym dzienniku zdarzeń.

Musisz zbierać zdarzenia z Microsoft-Windows-Security-Auditing z identyfikatorem zdarzenia 4624 - Konto zostało pomyślnie zalogowane. Zwróć uwagę na informacje w „Szczegółowe informacje o uwierzytelnianiu„ Jeśli w linii Pakiet uwierzytelniający wskazane NTLM, następnie do uwierzytelnienia tego użytkownika użyto protokołu NTLM.

Teraz zwróć uwagę na znaczenie Nazwa pakietu (tylko NTLM). Powinien wskazywać, który protokół (LM, NTLMv1 lub NTLMv2) został użyty do uwierzytelnienia. W ten sposób musisz zidentyfikować wszystkie serwery / aplikacje korzystające ze starszego protokołu.

Na przykład, aby wyszukać wszystkie zdarzenia uwierzytelnienia dla NTLMv1 na wszystkich kontrolerach domeny, możesz użyć następującego skryptu PowerShell:

$ ADDCs = Get-ADDomainController -filter * -Server winitpro.ru
$ Now = Get-Date
$ Wczoraj = $ Teraz. AddDays (-1)
$ NewOutputFile = "c: \ ps \ Events \ $ ($ Yesterday.ToString ('rrrrMMdd')) _ AD_NTLMv1_events.log”
funkcja GetEvents ($ DC)
Write-Host "Wyszukiwanie logowania" $ DC.HostName
$ Events = Get-EventLog „Security” -After $ Yesterday.Date -Before $ Now.Date -ComputerName $ DC.HostName -Message "* V1 *" -instanceid 4624
foreach ($ Event in $ Events)
Write-Host $ DC.HostName $ Event.EventID $ Event.TimeGenerated
Plik wyjściowy - ścieżka pliku $ NewOutputFile -InputObject "$ ($ Event.EventID), $ ($ Event.MachineName), $ ($ Event.TimeGenerated), $ ($ Event.ReplacementStrings), ($ Event.message)" - Dołącz


foreach ($ DC w $ ADDCs) GetEvents ($ DC)

Po znalezieniu użytkowników i aplikacji korzystających z NTLM w domenie, spróbuj przełączyć ich na Kerberos (prawdopodobnie używając SPN). Niektóre aplikacje muszą być skonfigurowane do działania autoryzacji Kerberos (patrz Autoryzacja Kerberos w IIS, przy użyciu autoryzacji Kerberos w przeglądarkach). Z własnego doświadczenia: nawet naprawdę duże produkty komercyjne czasami nie przeszły jeszcze z używania NTLM na Kerberos, niektóre produkty wymagają aktualizacji lub zmian konfiguracji. Wszystko sprowadza się do ustalenia, które aplikacje używają uwierzytelniania NTLM, a teraz masz sposób, aby dowiedzieć się, jakie oprogramowanie i urządzenia.

Do autoryzacji na Kerberos musisz użyć nazwy serwera DNS, a nie adresu IP. Jeśli określisz adres IP podczas łączenia się z zasobami, używane jest uwierzytelnianie NTLM.

Aplikacje, których nie można przełączyć za pomocą NTLM, można dodać do wyjątków, umożliwiając im korzystanie z uwierzytelniania NTLM, nawet jeśli jest ono wyłączone na poziomie domeny. Do tego służy polityka. Bezpieczeństwo sieci: Ogranicz NTLM: dodaj wyjątki serwera dla uwierzytelniania NTLM w tej domenie. Nazwy serwerów do uwierzytelniania, na których można użyć NTLM do uwierzytelnienia, należy dodać do listy wyjątków (oczywiście idealnie, ta lista wyjątków powinna być pusta). Możesz użyć znaku wieloznacznego *.

Wyłączanie NTLM w domenie Active Directory

Aby sprawdzić działanie uwierzytelniania w różnych aplikacjach w domenie bez korzystania z NTLM, możesz dodać niezbędne konta użytkowników do grupy domen

Chronieni użytkownicy (grupa jest dostępna począwszy od systemu Windows Server 2012 R2), których członkowie mogą być uwierzytelniani tylko przy użyciu protokołu Kerberos (nie można używać NTLM, uwierzytelniania szyfrowanego lub CredSSP). Możesz więc zweryfikować uwierzytelnienie użytkownika Kerberos w różnych aplikacjach.

Teraz możesz całkowicie wyłączyć NTLM w domenie za pomocą zasad grupy Zabezpieczenia sieci: Ogranicz NTLM: uwierzytelnianie NTLM w tej domenie.

W tej polityce dostępnych jest 5 opcji:

  • Wyłącz: zasada jest wyłączona (dozwolone jest uwierzytelnianie NTLM w domenie);
  • Odmawiaj kont domeny dla serwerów domeny: kontrolery domeny zabraniają prób uwierzytelnienia NTLM dla wszystkich serwerów w kontach domeny, zwracany jest błąd „NTLM jest zablokowany”;
  • Odmów dla kont domeny: kontrolery domeny zabraniają prób uwierzytelnienia NTLM dla wszystkich kont domeny, zwracany jest błąd „NTLM jest zablokowany”;
  • Odmów dla serwerów domeny: Żądania uwierzytelnienia NTLM dla wszystkich serwerów są odrzucane;
  • Odmów wszystkim: kontrolery domeny blokują wszystkie żądania NTLM dla wszystkich serwerów i kont.

W celu dalszego oddzielenia ochrony w AD zalecamy przeczytanie artykułów „Ochrona przed odzyskiwaniem hasła z pamięci za pomocą narzędzi A la Mimikatz”, „Ochrona kont administratora”, Wyłączanie LLMNR i NetBIOS przez TCP / IP.