Czy w folderze System32 znajduje się plik binarny (.exe) odpowiedzialny za funkcje UAC systemu Windows? (np uac.exe
.). Co by się stało, gdyby ten plik został usunięty z użyciem siły? Czy system Windows zepsuje się lub nie uruchomi?
Tutaj nie ma problemu z XY; Jestem ciekawy, co by się stało, gdyby UAC został siłą usunięty z komputera.
Odpowiedzi:
UAC jest architekturą wieloskładnikową implementowaną przez wiele plików binarnych
Kontrola konta użytkownika (UAC) odnosi się do kilku składników, które razem tworzą architekturę UAC . Krótko przejrzę niektóre z nich wraz z plikami binarnymi odpowiedzialnymi za ich implementację, ale najpierw oto przegląd architektury UAC z artykułu Microsoft Docs Jak działa Kontrola konta użytkownika :
Urząd ds. Bezpieczeństwa lokalnego (LSA) / Token filtrowany
Koncepcyjnie „pierwszy” składnik UAC jest implementowany przez podsystem Local Security Authority, który obsługuje tworzenie tokena dostępu użytkownika podczas procesu logowania. Począwszy od systemu Windows Vista proces logowania został zmodyfikowany w taki sposób, że gdy administrator loguje się z włączonym UAC, podsystem LSA generuje dwa oddzielne tokeny dostępu dla użytkownika:
Jak pokazano tutaj, proces ten różni się od standardowego logowania użytkownika:
Trwa
lsass.exe
proces obsługi podsystemu LSA .Wirtualizacja
Dodana w Windows 7 wirtualizacja plików i rejestrów jest składnikiem UAC, który tłumi starsze aplikacje, które nie są zgodne z UAC, ale wymagają jedynie uprawnień administracyjnych w celu uzyskania dostępu do niektórych chronionych obszarów systemu plików lub rejestru:
Źródło
Poprzez przekierowanie tych prób dostępu do obszarów, które nie wymagają uprawnień administratora, aplikacje te nadal działają pomimo włączonego UAC w systemie.
Ta wirtualizacja jest zaimplementowana w jądrze .
Usługa informacji o aplikacji
Usługa informacji o aplikacji (AIS) odczytuje manifest aplikacji i współpracuje z monitem o zgodę UAC w celu ustalenia, czy aplikacja może wykonywać z podwyższonymi prawami (tj. Uruchamiać w kontekście niefiltrowanego tokena dostępu na poziomie administracyjnym utworzonego podczas logowania) . Ten post na blogu zawiera dobry przegląd jego roli w procesie UAC:
Oto grafika zgodna z powyższym cytatem, szczegółowo opisująca rolę AIS w procesie Monit o zgodę UAC:
AIS jest zaimplementowany w bibliotece DLL,
appinfo.dll
która jest wykonywana przezsvchost.exe
.Zgoda na monit
Odpowiedź BenN wyjaśnia kluczową rolę (nie) słynnego monitu o zgodę UAC. Jest to realizowane
consent.exe
i jest odpowiedzialne za uzyskanie zgody użytkownika lub poświadczeń administratora w celu umożliwienia uruchomienia aplikacji wymagającej uprawnień administratora.Bezpieczny pulpit
Bezpieczny pulpit to miejsce, w którym domyślnie wyświetla się monit o zgodę UAC. UACBlog firmy Microsoft mówi nam, co jest wyjątkowego w tym pulpicie w porównaniu do pulpitu użytkownika:
Pomysł korzystania z niego przy pytaniu użytkownika o zgodę na uruchomienie aplikacji z podwyższonymi uprawnieniami polega na tym, że złośliwe oprogramowanie nie może naśladować Bezpiecznego pulpitu, chyba że ma już uprawnienia administracyjne, w którym to przypadku nakłanianie użytkownika do przyznania go jest dyskusyjne.
Wniosek: UAC to nie tylko jeden plik binarny. To tkanina przeplecionych podsystemów.
Istnieją jeszcze inne aspekty architektury UAC, które nie zostały tu omówione, ale powinno to dostarczyć wystarczających dowodów na fakty, które:
Od czasu wprowadzenia w systemie Windows Vista został głęboko zintegrowany z kluczowymi częściami systemu operacyjnego, dzięki czemu niemożliwe jest usunięcie całego kodu odpowiedzialnego za kontrolę konta użytkownika bez niszczenia innych rzeczy (takich jak możliwość logowania!)
Myślę, że można śmiało powiedzieć, że jeśli „wymusisz” UAC, złamiesz Windows.
źródło
Jak doskonale wyjaśnił Twisty , istnieje wiele komponentów, które pomagają wdrożyć UAC. Część UAC, którą ludzie są najbardziej zaznajomieni, to okno dialogowe podniesienia uprawnień / zgody:
Zapewnia to
consent.exe
„Interfejs zgody dla aplikacji administracyjnych”. Próbowałem zmienić nazwę na maszynie wirtualnej i zobaczyć, co się stanie. Zgodnie z oczekiwaniami podczas używania polecenia „uruchom jako administrator” nie pojawiają się monity o podniesienie uprawnień - zamiast tego pojawia się błąd „nie znaleziono pliku”, który obwinia rzecz, którą próbujesz podwyższyć:Próba użycia dowolnego elementu interfejsu użytkownika Panelu sterowania, który wymaga podniesienia uprawnień (tj. Ma ikonę tarczy), nawet jeśli jest zalogowany jako administrator, kończy się niepowodzeniem z podobnymi błędami. Próba uruchomienia czynności administracyjnych z menu Start powoduje nieco inny błąd:
W zależności od zestawu ACL podczas zmiany nazwy, która zepsuła wszystko, naprawienie tego z poziomu systemu operacyjnego może być niemożliwe, ponieważ operacje na plikach mogą wymagać podniesienia uprawnień (nawet jeśli zwykle nie powodują wyświetlenia okna dialogowego zgody). Jednak działania typowe dla użytkownika nie wydają się być degradowane.
źródło
consent.exe
, osoba atakująca, która może to zrobić, znajduje się już po drugiej stronie szczelnego włazu i ma bardziej proste sposoby robienia złych rzeczy.