-15% na nową książkę sekuraka: Wprowadzenie do bezpieczeństwa IT. Przy zamówieniu podaj kod: 10000

Zerologon – jeśli się jeszcze nie zaktualizowaliście, każdy w Waszej sieci może w prosty sposób przejąć kontroler domeny. Wystarczą 3 sekundy.

14 września 2020, 17:24 | W biegu | komentarzy 9

O temacie pisaliśmy parę dni temu, obecnie mamy już dużo szczegółów. Problem występuje w microsoftowym protokole Netlogon (umożliwia on m.in. zalogowanie się komputerom do kontrolera domeny).

Żeby móc podłączyć się do kontrolera domeny, klient musi znać klucz sesyjny. W naszym przypadku zaczynamy jako zupełnie anonimowy użytkownik, więc klucza nie znamy. Ale – i tutaj zaczyna się istota podatności – Netlogon korzysta z algorytmu AES, w  trybie CFB8. Tryb CFB wykorzystuje dość często spotykany w kryptografii IV, ale tutaj nie wiedzieć dlaczego, inżynierowie Microsoftu wymagają żeby IV składał się z samych zer:

IV is fixed and should always consist of 16 zero bytes. This violates the requirements for using AESCFB8 securely: its security properties only hold when IVs are random.

I teraz główna niespodzianka:

for 1 in 256 keys, applying AESCFB8 encryption to an all-zero plaintext will result in all-zero ciphertext.

W pewnym uproszczeniu serwer sprawdza czy mamy klucz (tj. czy jesteśmy uwierzytelnieni), prosząc nas o zaszyfrowanie kluczem pewnych danych (które sami możemy wybrać). Więc wybieramy same zera, prezentujemy wynik szyfrowania jako same zera i teraz mamy szansę 1/256, że trafiliśmy w „dobry” klucz. Około 256 prób i jesteśmy w domu – serwer przyjmie nasze logowanie (przy okazji: podczas tych prób serwer nie blokuje konta – można próbować do woli – a 256 prób można wykonać w około 3 sekund).

W trakcie eksploitacji pojawił się jeszcze jeden problem: udało nam się ominąć uwierzytelnienie, ale dalej sesja jest szyfrowana oraz podpisywana – z wykorzystaniem klucza sesyjnego, którego de facto nie znamy. Ale z poziomu klienta można po prostu wyłączyć szyfrowanie oraz podpisywanie – problem solved ;)

Finalny krok – nieco upraszczając (szczegóły w oryginalnym researchu) – polega na ponownym użyciu tego samego tricku (z zerami) w połączeniu z funkcją: NetrServerPasswordSet2. W ten sposób możemy ustalić puste hasło dowolnemu komputerowi podłączonemu do domeny (łącznie z kontrolerem domeny :)

Podsumowując:

This attack has a huge impact: it basically allows any attacker on the local network (such as a malicious insider or someone who simply plugged in a device to an on-premise network port) to completely compromise the Windows domain. The attack is completely unauthenticated: the attacker does not need any user credentials.

Podatność została załatana w sierpniowych aktualizacjach Microsoftu.

–ms

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. wk

    W sumie wygląda na świadomie wprowadzoną tylną furtkę :-(

    Odpowiedz
  2. Bogusz

    To odpowiedź na ciągłe ociąganie się z komputerami kwantowymi i uprzykrzające trudności łamania popularnej kryptografii

    Odpowiedz
  3. Siema palona

    He , na puste hasła da się logować z neta by default? Jakiś kolejny zduping ludzi z parciem na szkło

    Odpowiedz
    • Domyślam się tylko o co chodziło w Twojej wypowiedzi… ;-) W każdym razie cytat z oryginalnego researchu: „It turns out that
      setting empty passwords for a computer is not forbidden at all, so this means we can set an empty password for any computer in the domain! (see Figure 4.)”.

      + podatne wszystkie Windows Serwery od 2008 Server (a może i starsze)

      Odpowiedz
      • Cośtam

        Chodzi o kwestie logowania zdalnego na komputerach z Windowsem. Od jakiegoś czasu jedyne konto wbudowane na jakie możemy to zrobić by default to Administrator, poza tym są konta userów domenowych i zdaje się nie możemy tego zrobić na żadne konto jeśli ma ustawione puste hasło więc wnioskuje że w domyślnej konfiguracji do skutecznego wykorzystywania podatności wymagany jest dostęp fizyczny

        Odpowiedz
        • Tylko tutaj chodzi o konto komputera, nie zwykłego usera.

          Odpowiedz
  4. Zeratul

    Tylko problem z patchem od MS jest chyba taki, że poza instalacją trzeba jeszcze ręcznie aktywować ochronę w rejestrze, bo może psuć kompatybilność z zabytkami… :(

    Odpowiedz
  5. Arqus

    No spoko ale gdy ustawimy minimalną długość hasła, to puste nie zadziałają.

    Odpowiedz
    • to raczej nie ma znaczenia w przypadku tego akurat ataku

      Odpowiedz

Odpowiedz na Bogusz