Możemy szczerze pogratulować naszemu rodakowi Grzegorzowi Tworkowi kolejnego odkrycia – tym razem dwóch nowych LOLBinów, pozwalających uruchomić zewnętrzny kod i ominąć standardowe narzędzia do zabezpieczenia w Windowsie. Zaledwie we wrześniu pisaliśmy o ciekawym pliku ldifde.exe, również odkrytym przez Grzegorza, w tym artykule.

Nowe LOLBiny to dwa pliki: hvc.exe oraz tpmtool.exe. Zacznijmy od opisu tego pierwszego.


Do czego służy plik HVC.EXE i jak można uruchomić nim zewnętrzny program?

HVC.exe to narzędzie systemu Microsoft Windows przeznaczone dla hostów Hyper-V, umożliwiające otwieranie transportów przez VMBus. Jednym z jego parametrów wywołania jest „ssh” – bardzo zaciekawił on Grzegorza. Okazuje się, że poprzez odpowiednią manipulację zmiennej środowiskowej „HV_SSH_COMMAND” w systemie Windows możemy mieć wpływ na program, który uruchomi później wywołanie komendy „hvc.exe”.

Poniżej pokazujemy, co należy zrobić w celu wykonania zewnętrznego kodu lub uruchomienia programu (plik *.exe).

Źródło: Grzegorz Tworek – Twitter.com

Ustawiamy zmienną środowiskową „HV_SSH_COMMAND” na ścieżkę do pliku, który chcemy uruchomić. Następnie wpisujemy polecenie:

C:\Windows\system32\hvc.exe ssh dummyparam

Źródło: Grzegorz Tworek – Twitter.com

Od tego momentu możemy cieszyć się obejściem blokad bezpieczeństwa i działającymi w tle naszą aplikacją lub kodem.

Badacze zaobserwowali również, że hvc.exe używa w tle „netcat” (nc). Spróbowali za jego pomocą zmusić PowerShell do zaakceptowania niestandardowego polecenia SSH w celu użycia go w PSRemoting. I się udało.

Poniżej prezentujemy uruchomienie na systemie Windows PowerShell 7 „bezpośrednio” (*NIE* Windows PowerShell 5.1!), w pełni działający z dokładnie taką samą sztuczką, wykorzystujący polecenie „hvc.exe ssh”. Pod maską hvc.exe ssh wywołuje hvc.exe nc, narzędzie podobne do netcata, do otwierania transportu przez VMBus:

Źródło: Marc-André Moreau – Twitter.com. 

Do czego służy plik TPMTOOL.EXE?

Drugie narzędzie zaklasyfikowane przez Grzegorza do LOLBinów to tpmtool.exe. Podobnie jak hvc.exe, jest wbudowanym narzędziem w systemie Windows. Służy do pobierania informacji z modułu TPM (Trusted Platform Module), odpowiedzialnego za zapewnienie sprzętowych funkcji związanych z bezpieczeństwem. Chip TPM to bezpieczny procesor kryptograficzny, przeznaczony do wykonywania operacji kryptograficznych.


Jak TPMTOOL może uruchomić zewnętrzny program?

Odpowiedź jest prosta – poprzez uruchomienie odpowiedniej komendy z katalogu, np. c:\temp:

„C:\temp\Tpmtool.exe drivertracing stop”

Źródło: Grzegorz Tworek – Twitter.com

W tle systemu Windows zostanie aktywowany cmd.exe (wiersz linii poleceń), a następnie z niego wywołana (w tym samym katalogu) komenda „logman.exe stop TPMTRACE -ets”. Widać to na poniższym logu z SYSMON-a – utworzenie procesu po uruchomieniu powyższego polecenia „tpmtool.exe”.

Źródło: Grzegorz Tworek – Twitter.com

Oznacza to, że jeśli w tym samym katalogu umieścimy złośliwy plik o nazwie „logman.exe”, zostanie on automatycznie uruchomiony przez system Windows. Uważam, że dalszy komentarz jest tutaj zbędny…


Podsumowanie

Powyższe dwie możliwości (LOLBiny) mogą stanowić nowy wektor ataku używany w przyszłych akcjach hakerskich, dlatego warto przygotować się na ich odpowiednie monitorowanie i ochronę. Gratulujemy Grzegorzowi kolejnego odkrycia i czekamy na następne.

Podziel się z innymi tym artykułem!