Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
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.
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
W sumie wygląda na świadomie wprowadzoną tylną furtkę :-(
To odpowiedź na ciągłe ociąganie się z komputerami kwantowymi i uprzykrzające trudności łamania popularnej kryptografii
He , na puste hasła da się logować z neta by default? Jakiś kolejny zduping ludzi z parciem na szkło
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)
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
Tylko tutaj chodzi o konto komputera, nie zwykłego usera.
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… :(
No spoko ale gdy ustawimy minimalną długość hasła, to puste nie zadziałają.
to raczej nie ma znaczenia w przypadku tego akurat ataku