Windows 10 v1803 z natywną obsługą klienta OpenSSH. Możliwe jest „odszyfrowanie” kluczy RSA

Najnowsza kompilacja 1803 w końcu wnosi natywną obsługę klienta aplikacji OpenSSH w Windows 10 do generowania i zarządzania kluczami SSH oraz logowania się do zdalnych hostów za pomocą polecenia „ssh [email protected] -port”. To spore ułatwienie dla administratorów i bardziej wymagających użytkowników, którzy nie będą już musieli korzystać w większości zastosowań z niezbyt intuicyjnego Putty oraz PPK. Natywna obsługa aplikacji OpenSSH pozwala od teraz szybciej logować się za pomocą klucza (lub bez) do zdalnych hostów, w taki sam wygodny sposób, jak w systemie Linux. Niestety Ronnie Flather udowodnił, że Microsoft nieodpowiednio zabrał się za domyślne zabezpieczenie wygenerowanych kluczy, które są przekazywane do usługi „ssh-agent” podczas próby logowania się do serwera z użyciem klucza prywatnego.

Na szczęście nie każdy wierzy na słowo Microsoftowi. W serwisie MSDN w artykule opisującym nową funkcję czytamy coś takiego:

OpenSSH w Windows 10

Microsoft słusznie zwraca uwagę na problem z kluczami prywatnymi: „trzeba je przechowywać w bezpiecznym miejscu i nie przekazywać osobom postronnym”. O konsekwencjach nie ma co nawet wspominać.

Przechowywanie kluczy i szybkie logowanie się realizowane jest przez usługę ssh-agent. Wszystkie aplikacje, które są używane w ramach OpenSSH, znajdują się w lokalizacji „c:\windows\system32\openssh”:

OpenSSH w Windows 10 lokalizacja

Artykuł na blogu MSDN poucza, w jaki sposób wykorzystać zintegrowanego klienta OpenSSH z systemem Windows — używamy polecenia ssh-agent i ssh-add do przechowywania klucza prywatnego w uruchomionej sesji. Zabezpieczenie kluczy podczas przekazywania ich do klienta realizowane jest za pomocą DPAPI (Data Protection Application Programming Interface) w taki sposób, że klucze prywatne są zakodowane w Base64 i zapisywane w rejestrze: HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH\Agent\Keys.

Windows 10 zapisane klucze SSH

Teraz możliwe jest wyciągnięcie binarnych obiektów typu blob z rejestru i przekształcenie ich w oryginalne, niezaszyfrowane klucze prywatne RSA, które są domyślnie zapisywane w lokalizacji „%userprofile%”.

Dostęp do rejestru wymaga podwyższonych uprawnień, ale nie jest to zadanie skomplikowane. Taki atak jest możliwy do przeprowadzenia. Jeżeli cyberprzestępcy zaatakują wybraną organizację, to będą potrzebowali wirusa, który będzie sprawdzała czy ssh-agent jest uruchomiony, a jeżeli tak, to spróbuje uzyskać dostęp do rejestru, wykraść klucze prywatne RSA, które są zakodowane łatwym do przekształcenia do postaci oryginalnej szyfrem Base64 oraz odczytać adresy połączeń.

ssh-agent usługa w Windows 10

Autor udowodnił, że kopiując klucz na system operacyjny Linux, możliwe jest zalogowanie się do serwera bez podawania hasła zabezpieczającego (passphrase) dostępu do klucza.

Microsoft tym zagraniem ułatwił zadanie przestępcom, którzy po przechwyceniu klucza prywatnego nie będą musieli łamać hasła dostępu, co nie zawsze byłoby możliwe przy wysokiej entropii.



Dodaj komentarz

Treść tego pola jest prywatna i nie będzie udostępniana publicznie.

Zapoznaj się z naszą ofertą

Jeśli zajmujesz się sprzedażą rozwiązań zabezpieczających, jesteś dystrybutorem, autoryzowanym partnerem lub producentem i chciałbyś na portalu AVLab zaprezentować swoje portfolio gronu potencjalnych odbiorców, zareklamować wydarzenie, oprogramowanie, sprzęt lub inne usługi — po prostu napisz do nas. A może mialeś/aś do czynienia z ransomware? Pomagamy też w odszyfrowaniu plików.
Czytaj więcej