Niejednokrotnie zdarza się, że narzędzia administracyjne Microsoft umożliwiają wykorzystanie wysokich uprawnień do złych celów i pozwalają na obejście ochrony systemu. Tak jest na przykład w przypadku Certutil czy PowerShell.
Dziś opowiemy o narzędziu o nazwie wsreset.exe, którego złośliwe możliwości zostały niedawno opisane na blogu Daniela Geberta.
Programik wsreset.exe to sprawdzone i kilkuletnie już narzędzie służące do rozwiązywania problemów z Microsoft Store. Pozwala na przykład na proste i szybkie zresetowanie usług sklepu i wyczyszczenie jego pamięci podręcznej.
Pentester Daniel Gebert odkrył, że wsreset może być wykorzystany do usunięcia dowolnego pliku w systemie lub ominięcia ochrony antywirusowej bez wykrycia. Program działa z podwyższonymi uprawnieniami, ponieważ zajmuje się ustawieniami systemu Windows, dlatego luka pozwala atakującym na usunięcie plików, nawet jeśli normalnie nie mieliby takich uprawnień.
Usuwanie plików za pomocą wsreset.exe
Podczas tworzenia tymczasowej pamięci podręcznej i plików cookie Sklep Windows przechowuje te pliki w następujących katalogach:
%UserProfile%\AppData\Local\Packages\Microsoft.WindowsStore_8wekyb3d8bbwe\AC\INetCache
%UserProfile%\AppData\Local\Packages\Microsoft.WindowsStore_8wekyb3d8bbwe\AC\INetCookies
Po przeanalizowaniu działania narzędzia, odkrywca podatności stwierdził, że wsreset usuwa pliki znajdujące się w tych folderach „resetując” w ten sposób pamięć podręczną i pliki cookie aplikacji Windows Store.
Technika eksploatacji opiera się tutaj na prostej koncepcji „wiązania folderów” (ang. folder junction), które są podobną, ale bardziej ograniczoną wersją dowiązań symbolicznych.
Jeśli atakujący może utworzyć link wskazujący ścieżkę \InetCookies do katalogu docelowego wybranego przez atakującego, to katalog docelowy zostanie usunięty po uruchomieniu narzędzia wsreset. Dzieje się tak, ponieważ narzędzie wsreset domyślnie działa z automatycznie podwyższonymi uprawnieniami.
Aby rozpocząć, osoba atakująca najpierw usuwa folder \INetCookies (który w przeciwnym razie zostałby wyczyszczony przez narzędzie wsreset). Nawet użytkownicy z ograniczonymi uprawnieniami mogą usunąć folder, więc nie jest to żadne wyzwanie (może to zrobić osoba atakująca, która przejęła konto użytkownika lub złośliwy skrypt działający w kontekście zwykłego konta. Poniżej widzimy ścieżkę do wspomnianego folderu oraz uprawnienia Full Control dla zwykłych userów:
Następnie, osoba atakująca tworzy „link” lub powiązanie folderów, dzięki czemu lokalizacja \INetCookies wskazuje na uprzywilejowaną lokalizację, którą ma zostać usunięta za pomocą narzędzia wsreset.exe.
W poniższym przykładzie osoba atakująca mapuje katalog \INetCookies do lokalizacji „C:\Windows\System32\drivers\etc”, gdzie znajdują się ważne pliki konfiguracyjne i ustawienia systemowe, w tym plik „hosts” do konfigurowania lokalnych reguł DNS.
Można to zrobić za pomocą programu mklink.exe z parametrem „/J” lub za pomocą polecenia „new-item” programu PowerShell z parametrem„ -ItemType”:
Teraz, gdy „wsreset” jest uruchamiany przez osobę atakującą folder „\etc”, który w innym przypadku wymagałby podniesienia uprawnień do wyczyszczenia, zostałby usunięty.
Obejście antywirusa za pomocą wsreset.exe
Daniel Gebert wykazał również, jak można wykorzystać tą własność „wsreset”, aby ominąć zabezpieczenia antywirusowe, na przykładzie oprogramowania „Adaware”.
Program antywirusowy Adaware przechowuje pliki konfiguracyjne (i nie tylko) w folderze „C:\ProgramData\adaware\adaware antivirus”. Oprogramowanie potrzebuje tych plików do interakcji z wcześniej pobranymi sygnaturami złośliwego oprogramowania. Nie można usunąć tego folderu tradycyjnymi metodami.
Gdy osoba atakująca utworzy powiązanie „\INetCookies” w celu wskazania folderu „\adaware antivirus” i uruchomi narzędzie wsreset, pliki w tym folderze są bezproblemowo usuwane. Niektóre pliki (które były używane przez program antywirusowy) mogą pozostać w folderze nawet po uruchomieniu narzędzia wsreset, to nie jest problem. Cała operacja wystarczy, aby trwale uszkodzić program antywirusowy. Po jego ponownym uruchomieniu, zostanie dezaktywowany.
Luka w zabezpieczeniach umożliwiająca eskalację uprawnień występująca w narzędziu wsreset.exe może zostać wykorzystana do innych celów, takich jak na przykład obejście UAC.
Jak twierdzi autor, to tylko niektóre z przykładów nieuprawnionego podniesienia uprawnień do plików systemowych, które mogą pomóc cyberprzestępcom w naruszaniu zabezpieczeń systemu i pozostawaniu niewykrytym.
Czekamy jaka będzie odpowiedź Microsoftu w sprawie wsreset.exe. Będziemy o tym informować na kapitanie hacku.