Jak oszukać Windows w kontekście blokady uruchamiania zabronionego oprogramowania? Mamy trzy nowe LOLBiny!

kapitanhack.pl 1 rok temu

Końcówka roku obfituje w odkrycia kolejnych LOLBinów można by zacytować słynne „Nadejszła wiekopomna chwila”… Jest ona udana również dla nas, ponieważ publikujemy dzisiaj aż trzy nowe odkrycia, z których dwa należą do Kapitana Hacka😊

Nieco ponad tydzień temu pisaliśmy na temat pliku Windows o nazwie „runonce.exe”, a już mamy trzy kolejne pliki – „query.exe”, „change.exe” i „reset.exe” – pozwalające na obejście zabezpieczeń systemu i uruchomienie dowolnego programu.

Pliki „runonce.exe” oraz „query.exe” w kontekście użycia ich jako LOLBinów zaprezentował na Twitterze badacz bezpieczeństwa Grzegorz Tworek.

Podany przez Grzegorza przykład użycia narzędzia „query.exe” jako LOLBina zainspirował nas do dalszych poszukiwań, czego wynikiem stało się odnalezienie dwóch kolejnych plików. Nasze „wykopalisko” opiszemy w drugiej części artykułu, zaczniemy natomiast od omówienia odkrycia Grzegorza.

Jak działa nowy LOLBin – query.exe?

Podobnie jak w artykule opisującym „runonce.exe”, musimy dodać do rejestru systemowego konkretny wpis „oszukujący” nasz Windows, a następnie wywołać z wiersza linii poleceń określoną komendę.

Naszą przygodę z nowymi LOLBinami rozpoczynamy od opisu polecenia „query.exe”, a następnie pokażemy, jak można obejść system, uruchamiając specjalną komendę.

Co to jest „query.exe”?

Query.exe to znany w świecie administratorów Windows wbudowany w system program (plik wykonywalny), uruchamiany z wiersza linii poleceń, który pozwala wyświetlać informacje o procesach, sesjach, użytkownikach i serwerach hosta sesji usług pulpitu zdalnego (Remote Desktop Session Host servers).

Na przykład wpisując na Windows polecenie:

Query process

dowiemy się, jakie procesy są uruchomione podczas naszej sesji.

W czym tkwi sztuczka?

Parametry wywołania polecenia „query.exe” możemy zobaczyć w specjalnej gałęzi rejestru systemowego

– „HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Utilities\query”.

Jak możemy się zorientować na powyższym ekranie, nazwy i wartości wpisów są tak naprawdę linkami (skrótami) do wykonania określonych poleceń w systemie.

Grzegorz pokazał, jak dodając własny wpis w tym miejscu, możemy tak naprawdę utworzyć nowy parametr wywołania dla polecenia „query.exe”.

Jako przykład użycia takiego LOLBina będziemy chcieli utworzyć dodatkowy wpis w rejestrze, definiując nowy parametr – „KapitanHack” – do polecenia query.exe, i za jego pomocą uruchomimy aplikację kalkulator.

Scenariusz uruchomienia systemu dzięki LOLBina „query.exe”

Zgodnie ze wskazówką opublikowaną przez Grzegorza tworzymy w rejestrze nowy wpis o nazwie „KapitanHack” o wartości

„0\01\0KapitanHACK\0calc.exe”.

Podanie wartości parametru we właściwym formacie jest tutaj kluczowe, ponieważ definiuje, jaki plik ma być uruchomiony oraz w jaki sposób. W naszym przypadku docelowym plikiem jest „calc.exe” – czyli aplikacja kalkulator na Windows.

1. Dodajemy wpis KapitanHACK do rejestru z wiersza linii poleceń:

reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Utilities\query" /v KapitanHACK /t REG_MULTI_SZ /d 0\01\0KapitanHACK\0calc.exe

Jak możemy się zorientować po jego dodaniu, w gałęzi rejestru „query” powstanie nowy spis o nazwie KapitanHACK.

2. Uruchamiamy polecenie query.exe z naszym parametrem

W wierszu linii poleceń Windows uruchamiamy następujące polecenie:

Query KapitanHACK

Od teraz możemy się cieszyć nowym parametrem w poleceniu „query.exe” o nazwie „KapitanHACK”, którego użycie będzie skutkowało uruchomieniem w systemie kalkulatora 😊

„Wykopaliśmy” kolejne LOLBiny – reset.exe oraz change.exe

Podczas przeglądania gałęzi rejestru systemowego:

„HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Utilities”,

natknęliśmy się na dwie interesujące możliwości. Oprócz „query” zauważyliśmy jeszcze dwie gałęzie kluczy odpowiadające poleceniom systemowym: „change.exe” i „reset.exe”.

Wewnątrz nich znajdują się podobne wpisy jak w „query.exe”. Na przykład dla „reset.exe” wyglądają one następująco:

Postępując jak przy „query.exe”, chcieliśmy utworzyć dwa nowe wpisy:

  • pierwszy dla „reset.exe”,
  • drugi dla „change.exe”.

Obie próby były jednak niemożliwe do wykonania, ponieważ konto administratora nie posiadało uprawnień do modyfikacji tych gałęzi rejestru i otrzymaliśmy błąd nieuprawnionego dostępu.

Jak okazało się po szybkim śledztwie, w rejestrze tylko klucz „query” posiada pełne uprawnienia dla grupy administratorów (Administrators). Reszta wpisów dla „reset” i „change” jest tylko z uprawnieniami odczytu.

Na dodatek właścicielem obu gałęzi jest konto „TrustedInstaller”, więc przejście chociażby na uprawnienia konta SYSTEM nic by nam tutaj nie dało, ponieważ w tym przypadku to konto posiada przydzielony taki sam zestaw uprawnień, jak grupa Administrators. Musieliśmy zastosować kolejną sztuczkę.

Ponieważ dla chcącego nic trudnego, wykonaliśmy modyfikację właściciela obu gałęzi rejestru na grupę Administrators (mogliśmy to zrobić, ponieważ posiadamy uprawnienia konta administratora) oraz zmodyfikować dla niej uprawnienia na obu katalogach na „pełny dostęp”.

W rezultacie odblokowaliśmy możliwość dodawania wpisów do dwóch interesujących nas gałęzi rejestru i tym sposobem uzyskaliśmy jeszcze dwa nowe LOLBiny: „reset.exe” oraz „change.exe”, oczywiście z fikcyjnym parametrem KapitanHACK. Dowody zamieszczamy poniżej:

Polecenie:

change KapitanHack
reset KapitanHack

Od tego momentu możemy się cieszyć aż trzema wbudowanymi w Windows narzędziami służącymi jako LOLBiny z naszym zaszytym poleceniem (parametrem wywołania) „KapitanHACK”, którego użycie doprowadzi do uruchomienia dowolnie wskazanego przez nas programu (w naszym scenariuszu jest to kalkulator).

Podsumowanie

Odkrycia Grzegorza (oraz nasze) pokazują, iż nic w systemie Windows nie jest w pełni bezpieczne i zawsze znajdzie się sposób na obejście blokad. Oczywiście zależy to między innymi od naszych umiejętności i kreatywności. Przy okazji pomysłu Grzegorza udało nam się odkryć dwa nowe LOLBiny, które dodajemy do listy monitorowanych poleceń w systemach bezpieczeństwa.

Grzegorzowi gratulujemy kolejnych odkryć w kontekście użycia wbudowanych w Windows plików wykonywalnych jako LOLBinów oraz cieszymy się, iż nasz rodak ma na koncie tak duże osiągnięcia. Ponieważ jest to ostatni artykuł w tym roku, w nowym życzymy wszystkim naszym Czytelnikom zdrowia, sukcesów, odkryć w dziedzinie CyberSec, bezpieczeństwa i jak najwięcej odpartych ataków!

Idź do oryginalnego materiału