Menu dostępności

nowy LOLBin na Windows – lpremove.exe

Testujemy nowy LOLBin na Windows – lpremove.exe

Ostatnio  o LOLBinach pisaliśmy w kwietniu. Podczas kolejnych poszukiwań natrafiliśmy na ciekawy nowo odkryty LOLBin o nazwie „lpremove.exe”.

Zasadę działania nowego LOLBina opisał Grzegorz Tworek na X-ie. Zanim przejdziemy do testów, omówimy ten proces.

„lpremove.exe”.

Co to jest lpremove.exe?

„lpremove.exe” (skrót od language pack remove) to plik wykonywalny będący częścią systemu operacyjnego Microsoft Windows. Jest szczególnie powiązany z procesem czyszczenia pakietu językowego MUI (Multilingual User Interface).

Powiązane oprogramowanie, pakiet językowy MUI, zostało zaprojektowane tak, aby interfejs użytkownika systemu Windows był zrozumiały dla użytkowników, którzy nie mówią po angielsku. Tłumaczy tekst w oknach dialogowych, menu i innych częściach interfejsu użytkownika na inne języki. Plik „lpremove.exe” służy do usuwania tych pakietów językowych, gdy nie są już potrzebne lub powodują problemy.

Plik „lpremove.exe” jest potrzebny, jeśli chcesz odinstalować pakiet językowy z systemu Windows. Jest to również narzędzie używane przez system Windows w zaplanowanym zadaniu, które uruchomia się na uprawnieniach SYSTEM.

Co to jest lpremove.exe?

Jak wykorzystać nowego LOLBina?

Grzegorz znalazł sposób, aby można było zmusić system do uruchomienia dowolnego pliku wykonywalnego podczas uruchomienia pliku „lpremove.exe.” Lecz by można było do tego doprowadzić, trzeba wykonać wcześniej dwie operacje w systemie, które (niestety) wymagają uprawnień Administratora. Pierwsza to operacja dodania specjalnego klucza do rejestru systemowego. Druga to zdefiniowanie ścieżki do „systemroot”, wskazującej na bieżący folder, z którego chcemy, aby lpremover.exe uruchomił nasz plik wykonywalny o nazwie „msbuilder.exe”.

Kroki do wykorzystania LOLBina są następujące:

Krok 1. Tworzymy na dysku tymczasowy folder, np. „C:\Temp”

Krok 2. Tworzymy w utworzonym w kroku 1. folderze podfolder o nazwie „System32”

Krok 3. Do katalogu „System32” wgrywamy nasz dowolny plik wykonywalny i zmieniamy jego nazwę na „mcbuilder.exe”

W naszym przypadku do katalogu „C:\temp\lpremove\system32\” przekopiowaliśmy plik wykonywalny kalkulatora i zmieniliśmy jego nazwę na „mcbuilder.exe”.

lpremove.exe?

Krok 4. Definiujemy zmienną środowiskową systemroot, aby jej wartość wskazywała na naszą ścieżkę

Z wiersza linii poleceń uruchamiamy poniższą komendę:

set systemroot=%cd%

Krok 5. Tworzymy odpowiedni klucz w rejestrze, pozwalający na uruchomienie procesu czyszczenia pakietu językowego

Z wiersza linii poleceń uruchamiamy poniższą komendę:

reg add HKLM\SYSTEM\CurrentControlSet\Control\CMF\Config /v SYSTEM-LP /t REG_DWORD /d 1

Klucz możemy też dodać ręcznie w edytorze rejestru.

lpremove.exe

Krok 6. Uruchamiamy LOLBina „lpremove.exe”

Z powyższej ścieżki „c:\temp\lpremove” uruchamiamy narzędzie „lpremove.exe”:

c:\windows\system32\lpremovove.exe
lpremove.exe

Wynikiem powyższych działań będzie uruchomienie procesu „msbuilder.exe” (w naszym przypadku aplikacji kalkulator), który jest naszym plikiem wykonywalnym. Ciekawostką jest, że plik wykonywalny uruchomi się z flagą dwCreationFlag o wartości „CREATE_NO_WINDOW”, czyli nie pojawi się na ekranie (uruchomi się w tle).

Co się dzieje w tle systemu

Z przeanalizowanych przez nas działań w Process Monitorze widzimy, że standardowe uruchomienie „lpremove.exe” szuka w rejestrze systemowym klucza „SYSTEM-LP” w lokalizacji

„HKLM\System\CurrentControlSet\Control\CMF\Config\”.
lpremove.exe

Domyślnie system go nie znajduje, lecz gdy ręcznie go wprowadzimy (tak jak w scenariuszu testu), sytuacja się zmieni i system będzie próbował utworzyć we wskazanej lokalizacji plik wykonywalny „mcbuilder.exe”.

lpremove.exe

Wcześniejszy trik z podmianą ścieżki w zmiennych środowiskowych „systemroot” na bieżącą lokalizację wywołania, np. „C:\temp\lpremove”, spowoduje możliwość uruchomienia dowolnego pliku wykonywalnego. Warunek jest jeden – plik ten musi posiadać nazwę „mcbuilder.exe” i znajdować się w podkatalogu o nazwie „System32” głównego folderu, z którego uruchamiamy proces „lpremove.exe”.

Popularne

Grupa ransomware ALP-001 twierdzi, że zaatakowała Polsat

Grupa ransomware ALP-001 twierdzi, że zaatakowała Polsat

W niedzielę wieczorem na zagranicznych serwisach newsowych poświęconych malware pojawiły się informacje o cyberataku na serwis Polsatu. Według doniesień za incydent odpowiada grupa ransomware ALP-001, która...
DarkSword – cichy zabójca iPhone’ów. Nowy exploit, który przejmuje kontrolę nad urządzeniem w kilka sekund

DarkSword – cichy zabójca iPhone’ów. Nowy exploit, który przejmuje kontrolę nad urządzeniem w kilka sekund

Powstał nowy, zaawansowany zestaw exploitów wymierzony w użytkowników iPhone’ów. Narzędzie o nazwie DarkSword pokazuje, że nawet platformy uznawane za jedne z najbezpieczniejszych mogą stać się celem...
ClickFix na macOS, czyli jak użytkownicy sami instalują malware i jak Apple próbuje to powstrzymać

ClickFix na macOS, czyli jak użytkownicy sami instalują malware i jak Apple próbuje to powstrzymać

Współczesne cyberataki rzadko polegają na wykorzystywaniu luk w oprogramowaniu. Zamiast tego cyberprzestępcy coraz częściej manipulują samymi użytkownikami, nadużywając ich zaufania i obserwując rutynowe z...
Irańscy hakerzy włamali się na skrzynkę dyrektora FBI. Atak elementem cyberwojny

Irańscy hakerzy włamali się na skrzynkę dyrektora FBI. Atak elementem cyberwojny

Grupa hakerska powiązana z Iranem przeprowadziła skuteczny atak na prywatną skrzynkę e-mail dyrektora FBI, Kasha Patela. Incydent szybko stał się głośny nie tylko ze względu na rangę celu, ale także jak...
WhatsApp jako wektor ataku – Microsoft ostrzega przed nową kampanią malware ukrytą w wiadomościach

WhatsApp jako wektor ataku – Microsoft ostrzega przed nową kampanią malware ukrytą w wiadomościach

Cyberprzestępcy po raz kolejny wykorzystują zaufanie użytkowników do popularnych komunikatorów. Najnowsze ostrzeżenie Microsoftu ujawnia zaawansowaną kampanię, w której złośliwe oprogramowanie jest rozsy...