Krytyczna podatność w MS Outlook pozwalająca w łatwy sposób przejąć konto użytkownika

We wtorek Microsoft wypuścił łatkę na interesującą lukę w Outlooku. Wszyscy użytkownicy, którzy korzystają z tego programu, powinni potraktować tę informację priorytetowo, ponieważ podatność stwarza niezwykle łatwy do wykorzystania sposób na atak, który bez wątpienia zostanie szybko przyjęty przez atakujących.

Krytyczna luka otrzymała numer CVE-2023-23397 i została opisana w następujący sposób:

„Microsoft Office Outlook zawiera lukę w zabezpieczeniach umożliwiającą eskalację uprawnień, która umożliwia przeprowadzenie ataku NTLM Relay na inną usługę w celu uwierzytelnienia użytkownika”

Nie podano jednak żadnych szczegółowych informacji na temat sposobu wykorzystania luki.

Co może zrobić atakujący, wykorzystując tę lukę?

Osoba atakująca może wykorzystać lukę, wysyłając specjalnie spreparowaną wiadomość e-mail, która uruchamia się automatycznie po pobraniu i przetworzeniu przez klienta programu Outlook. Może to prowadzić do jej exploitacji ZANIM wiadomość e-mail zostanie wyświetlona w okienku podglądu! – czyli grubo. Na nic nie musimy klikać, wszystko odbywa się w tle. Istna magia.

Jak to możliwe?

Wszystko przez niepoprawną walidację dwóch właściwości wiadomości, które opiszemy poniżej, oraz możliwość, dzięki której można przejąć skrót NTLM hasła użytkownika:

„Osoba atakująca, której uda się wykorzystać podatność, może uzyskać dostęp do skrótu Net-NTLMv2 użytkownika, który może posłużyć jako podstawa ataku NTLM Relay na inną usługę w celu uwierzytelnienia użytkownika”.

W sieci można znaleźć demonstrację ataku z wykorzystaniem exploita, przedstawioną przez badaczy z MDSec – link tutaj.

Demonstracja ataku na użytkownika poprzez Outlook:

Luka jest szczególnie interesująca, ponieważ uruchamia uwierzytelnianie NTLM na adres IP (tj. system poza strefą intranetu lub zaufanymi witrynami), co następuje natychmiast po otwarciu wiadomości e-mail, niezależnie od tego, czy użytkownik wybrał opcję załadowania zdalnych obrazów, czy nie!

Chociaż nie podano żadnych szczegółowych informacji, firma Microsoft udostępniła skrypt do przeprowadzania inspekcji serwera Exchange pod kątem elementów poczty, które mogą posłużyć do wykorzystania problemu.

Badacze dokonali przeglądu skryptu audytu. Kod ujawnia, że szuka on dwóch konkretnych właściwości:

  • PidLidReminderFileParameter,
  • PidLidReminderOverride.

Pierwsza, PidLidReminderFileParameter,to parametr kontrolujący, jaka nazwa pliku powinna być odtwarzana przez klienta programu Outlook, gdy zostanie wyzwolone przypomnienie o elemencie poczty.

Przy czym badacze zwracają uwagę na jeden aspekt:

„Jest to oczywiście szczególnie interesujące, ponieważ sugeruje, że właściwość akceptuje nazwę pliku, która potencjalnie może być ścieżką UNC w celu wyzwolenia uwierzytelnienia NTLM”.

Po dalszej analizie dostępnych właściwości zwrócili również uwagę na właściwość PidLidReminderOverride, którą wykorzystali do napisania exploita.

„Mając to na uwadze, prawdopodobnie powinniśmy ustawić właściwość PidLidReminderOverride, aby spowodować, że Outlook przeanalizuje nasz złośliwy UNC wewnątrz PidLidReminderFileParameter”.

Exploit na lukę w Outlook

W pierwszym kroku badacze utworzyli plik MSG (wiadomość) programu MS Outlook w formie spotkania. Do jego wygenerowania wykorzystali napisaną w .NET bibliotekę MsgKit. W klasie „Appointment” dokumentu dodali opisywane wyżej właściwości PidLidReminderOverride i PidLidReminderFileParameter (jeszcze przed zapisaniem pliku MSG):

Exploit na lukę w outlook
Źródło: MDSec.

Jak widać na powyższym ekranie, parametr PidLidReminderFileParameter „definiuje zewnętrzne źródło pliku (dostępne na adresie IP 10.211.55.21), zaś PidLidReminderOverride pozwala nadpisać domyślną wartość. Całość kodu wygeneruje plik MSG spotkania i zostanie ono zapisane na dysku „C:” w katalogu „tools” jako „appointment.msg”. Teraz wystarczy taką wiadomość przesłać do użytkownika i ustawić usługę nasłuchującą na adresie 10.211.55.21 żądania NTLM.

Outlook w momencie odebrania wiadomości w formie nowego spotkania w kalendarzu tak naprawdę wysyła na adres atakującego skrót NTLM hash użytkownika. Co dalej można zrobić z takim dobrodziejstwem, sprawdzisz już na pewno na Kapitanie, wpisując odpowiednią frazę w polu wyszukiwania?

Czy jest się czego obawiać?

Jeśli masz wdrożone odpowiednie konfiguracje i blokady ruchu SMB (port 445) na zewnątrz organizacji, nie powinieneś się obawiać tego ataku z zewnątrz. Za to może on być łatwy do przeprowadzenia od środka.

Microsoft zaleca wyłączenie usługi WebClient działającej na komputerach w firmie (podobnie do zalecenia dotyczącego blokowania ruchu TCP/445). Lecz trzeba to zrobić z niezwykłą rozwagą, bo spowoduje to zablokowanie wszystkich połączeń WebDAV, w tym intranetu, co może mieć wpływ na użytkowników lub aplikacje.

Warto też wprowadzić następujące środki łagodzące:

  • wdrożyć odpowiednie narzędzia do monitorowania ruchu NTLM w organizacji,
  • dodać użytkowników do grupy bezpieczeństwa w Active Directory „Protected Users” w przypadku kont administracyjnych i wrażliwych w firmie,
  • zablokować ruch wychodzący TCP 445/SMB z Twojej sieci na firewallu brzegowym, wewnętrznym i w ustawieniach VPN. Zapobiegnie to wysyłaniu komunikatów uwierzytelniających NTLM do zdalnych udziałów plików.

Podsumowanie

Ostatnią niewymagającą interakcji użytkownika grubą podatnością, jaką opisywaliśmy, była Follina. Z pewnością ta dzisiejsza może dołączyć do grona najgroźniejszych i najciekawszych. Stosując odpowiednie metody ochrony środowiska i jego konfiguracji zgodnie z najlepszymi praktykami, możesz uchronić firmę przed tego typu atakiem (również w przyszłości).

Podziel się z innymi tym artykułem!