Doczekaliśmy się nowego błędu zeroday w zabezpieczeniach Windows pozwalającego na zdobycie lokalnie zalogowanemu, zwykłemu użytkownikowi najwyższych uprawnień do Windows (tzw. lokalna eskalacja uprawnień).


Szczegóły nowej podatności

Jak się przyjęło przy podawaniu tego typu wiadomości, mamy dla Was dwie wiadomości: dobrą i złą. Postanowiliśmy rozpocząć od tej złej, żeby pocieszyć później tą dobrą:). Podatność dotyczy wszystkich wersji systemu Windows, w tym Windows 10, 11 i Windows Server 2022. Ujawniono też publiczny exploit dowodu koncepcji (PoC) i szczegóły techniczne dotyczące niezałatanej luki w zabezpieczeniach systemu Windows zero-day umożliwiającej podniesienie uprawnień, aż do SYSTEM. Zaś dobrą jest to, że exploit wymaga od atakującego znajomości nazwy użytkownika i hasła innego użytkownika, aby wywołać lukę, więc prawdopodobnie nie będzie powszechnie używany w atakach.
Podatność odkrył badacz bezpieczeństwa – Abdelhamida Naceri, dla której w sierpniu Microsoft wydał aktualizację zabezpieczeń i nazwał ją „Luka w zabezpieczeniach związana z podniesieniem uprawnień w usłudze profilu użytkownika systemu Windows” Luka otrzymała numer i śledzona jest jako CVE-2021-34484 .
Po zbadaniu poprawki Naceri stwierdził, że łatka nie jest wystarczająca i był w stanie ją ominąć za pomocą nowego exploit’a, który opublikował na GitHub.

W opisie na Github Nacera wyjaśnia, że w poprzednim raporcie CVE-2021-34484 opisał błąd, w którym można użyć usługi profilu użytkownika w celu utworzenia drugiego powiązania (junction) katalogu użytkownika w „C:\Users\Temp\Documents\My Pictures”. Badacz zaraz po wydaniu poprawki przez Microsoft, sprawdzeniu jej oraz weryfikacji informacji z poradnika ZDI dowiedział się, że błąd został rozpoznany jako błąd usunięcia dowolnego katalogu.

„Microsoft nie załatał tego, co podano w raporcie, ale wpływ PoC. Ponieważ PoC, który napisałem wcześniej, był okropny, mógł jedynie odtworzyć błąd usuwania katalogu”.

Naceri mówi, że skoro naprawili tylko symptomy jego zgłoszenia błędu, a nie rzeczywistą przyczynę, mógł zrewidować swój exploit, by zrobić nowe powiązanie do katalogu (junction) gdzie indziej i nadal osiągnąć możliwość podniesienia uprawnień.


PoC i exploit

Nowy exploit zeroday powoduje uruchomienie wiersza poleceń z podwyższonym poziomem uprawnień z uprawnieniami SYSTEM, podczas gdy wyświetlany jest monit Kontrola konta użytkownika (UAC). Autor exploit’a porównuje także kod biblioteki „profext.dll” i w wywołaniu funkcji CreateDirectoryJunction przed poprawką i po.

Biblioteka profext.dll przed wydaniem łatki Microsoft. Źródło: Abdelhamida Naceri
Biblioteka profext.dll po wydaniu łatki przezMicrosoft. Widać poprawkę w funkcji CreateDirectoryJunction. Źródło: Abdelhamida Naceri

Nieskuteczna poprawa błędu w wywołaniu funkcji profext.dll!CreateDirectoryJunction Jak twierdzi, Microsoft usunął tylko destruktor CDirectoryRemover, który usuwa katalog” Niestety to nie wystarczy, aby naprawić błąd. Dlaczego? Ponieważ mechanizm blokady nadal nie blokuje poprawnie katalogu. W związku z tym możemy używać usługi, aby utworzyć drugie powiązanie do katalogów w dowolnej lokalizacji.

Źródło: Abdelhamida Naceri

W CVE-2021-26426 jako cel wybrał tworzenie odwołania do katalogu „C:\Users\Temp\Documents\My Pictures”. W tym przypadku poprawka Microsoft ma rację, wyraźnie widać, że „C:\Users\Temp” nie jest kontrolowany przez użytkownika z powodu blokady wprowadzonej przez usługę profilu użytkownika. Ale nie w przypadku „C:\Users\Temp\AppData\Local\History”, tutaj kontrolujemy ich folder nadrzędny „C:\Users\Temp\AppData”, ponieważ nie jest on zablokowany przez usługę.

Zatem możemy wyraźnie uczynić folder AppData powiązaniem z innym miejscem, więc zarówno testy CreateFileW, jak i GetFileInformationByHandleEx powiodą się.

W konsekwencji podczas uruchomienia na najnowszym Windows 11 otrzymamy poniższą eskalację do SYSTEM. Szach mat!

Źródło: Abdelhamida Naceri
Podziel się z innymi tym artykułem!