trzy kolejne pliki lolbiny – „query.exe”, „change.exe” i „reset.exe”

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.

przykład użycia narzędzia „query.exe” jako LOLBina

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.

lolbin query.exe

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”.
lolbin query.exe wywoływanie

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 oprogramowania za pomocą LOLBina „query.exe”

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

Podanie wartości parametru w odpowiednim 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ń:

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

lolbin query.exe rejestry

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 ?

lolbin query.exe wykonanie

„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 ciekawe 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:

lolbin rest.exe rejestry

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.

lolbin rest.exe uruchamianie

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.

lolbin rest.exe rejestry

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ę.

lolbin rest.exe rejestry

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
lolbin change.exe uruchamianie
reset KapitanHack
lolbin rest.exe uruchamianie

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).

lolbin rest.exe uruchamianie

Podsumowanie

Odkrycia Grzegorza (oraz nasze) pokazują, że 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ę, że 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!

Podziel się z innymi tym artykułem!