Wydaje się, że w Windows 10 Creators Update build 15007 Microsoft naprawił metodę obejścia UAC dotyczącą eventvwr.exe. Po pierwsze, jak działa to obejście?
Po zalogowaniu się jako administrator pliki binarne systemu Windows, dla których poziom wykonania jest ustawiony na „najwyższy dostępny” i właściwość „autelevate” na „true” w manifeście, automatycznie zaczynają podwyższane bez wyświetlania monitu Kontrola konta użytkownika.
Menedżer zadań (Taskmgr.exe) i Eventvwr.exe to dwa takie przykłady. Czy zauważyłeś, że Menedżer zadań domyślnie działa z podwyższonym poziomem uprawnień, ale nie wyświetla monitu UAC, gdy jesteś zalogowany jako administrator?
Badacz bezpieczeństwa Matt Nelson (@ enigma0x3 na Twitterze) napisał o obejściu UAC lub exploicie wykorzystującym eventvwr.exe. Eventvwr.exe to zasadniczo program uruchamiający, który wykonuje% systemroot% \ system32 \ eventvwr.msc przy użyciu metody ShellExecute.
Oznacza to (ShellExecute), że system używa informacji o powiązaniu plików .MSC do uruchomienia odpowiedniego pliku wykonywalnego, który otwiera pliki MSC. Ponieważ program nadrzędny eventvwr.exe jest domyślnie uruchamiany z podwyższonym poziomem uprawnień, proces potomny również jest podwyższony.
Obejście UAC przy użyciu hacka rejestru
Gdy eventvwr.exe (shell) wykonuje plik eventvwr.msc, system Windows zamiast używać informacji o powiązaniu pliku w pliku HKEY_LOCAL_MACHINE \ Software \ Classes \ mscfile, odpytuje tutaj gałąź:
HKEY_CLASSES_ROOT \ mscfile
Do Twojej wiadomości, HKEY_CLASSES_ROOT jest tylko połączonym widokiem, który zawiera klucze, podklucze i wartości z tych dwóch lokalizacji:
HKEY_CURRENT_USER \ Software \ Classes HKEY_LOCAL_MACHINE \ Software \ Classes
A jeśli identyczne klucze i wartości istnieją pod obiema, pierwszeństwo mają te pod HKEY_CURRENT_USER. Możesz więc przejąć HKEY_CLASSES_ROOT\mscfile
, tworząc następujący klucz:
HKEY_CURRENT_USER \ Software \ Classes \ mscfile \ shell \ open \ command
Złośliwy program lub skrypt może odpowiednio ustawić (default)
wartości danych, tak aby polecenie / skrypt programu PowerShell można było wykonywać z pełnymi uprawnieniami administracyjnymi / wysoką integralnością, nawet bez wiedzy użytkownika.
W ten sposób, przechwytując HKEY_CLASSES_ROOT, eventvwr.exe może być skutecznie używany jako program uruchamiający do dowolnego uruchamiania dowolnego programu - nawet pobierając ładunek ransomware ze zdalnego serwera i uruchamiając go za pomocą PowerShell.exe, z uprawnieniami administratora.
Jest to bardzo skuteczna metoda obejścia UAC, ponieważ nie wymaga upuszczania plików, wstrzykiwania DLL ani niczego innego. Oczywiście ten exploit UAC działa tylko wtedy, gdy jesteś zalogowany jako administrator.
Zmieniło się to w wersji zapoznawczej aktualizacji twórców 15007. Na szczęście Microsoft naprawił plik eventvwr.exe w 15007 - nie jest już chroniony plikami MSC. Zamiast tego tworzy bezpośrednio proces MMC.exe - skojarzenie pliku nie jest używane.
Dzięki Matt Nelson (@ enigma0x3), który odkrył tę metodę obejścia, oraz FireF0X (@ hFireF0X), który powiadomił, że problem został rozwiązany w 15007, w którym eventvwr.exe używa CreateProcess do uruchomienia mmc.exe zamiast ShellExecute . Zobacz także: Microsoft Windows - Eskalacja uprawnień do obejścia ochrony bez plików UAC