W dzisiejszym artykule opiszemy i pokażemy kolejne narzędzie wbudowane w Windows umożliwiające złośliwym aktorom pobranie z Internetu danych (treści) oraz wykonanie kodu.
Mowa o narzędziu GfxDownloadWrapper.exe, które jest dostępne na komputerach z Windows, jeśli te posiadają wgrane sterowniki karty Intel.
Jeśli nie czytaliście naszego ostatniego artykułu o CertReq, to oczywiście gorąco polecamy, gdyż wykorzystanie tego narzędzia jest podobne do opisywanego w dzisiejszym artykule z drobną różnicą – nie potrafi wykonać kodu.


Pliki binarne LOLBIN

Narzędzia takie jak CertReq, czy GfxDownloadWrapper.exe należą do grupy narzędzi określanych w cyberbezpieczeństwie pojęciem LOLBIN (Living-of-the-Land Binaries). Wcześniej pisaliśmy o terminie Living-off-the-Land (LotL), który odnosił się do sposobu działania cyberprzestępców. Termin LOLBIN określa stricte pliki binarne.
LOLBIN były gorącym tematem w ciągu ostatnich kilku lat w branży bezpieczeństwa, ponieważ dość często pojawiały się nowe pliki służące do wykonania kodu, pobrania lub wgrania do Internetu danych. O niektórych z nich pisaliśmy na Kapitanie Hack’u. Wiele z LOLBIN możecie znaleźć w projekcie LOLBAS, który opisuje funkcjonalność, przypadki użycia i podstawowe informacje przydatne w wykrywaniu.
W większości LOLBIN-y przedstawione w projekcie LOLBAS to pliki binarne podpisane przez system Windows. Są to zazwyczaj pliki binarne, które stanowią część systemu operacyjnego (podpisane przez Windows) i inne funkcjonalne pliki binarne, które są później dodawane do systemu operacyjnego (podpisane przez Microsoft). Istnieje jednak inna klasa binarek LOLBIN, które są dostarczane przez dostawców zewnętrznych i które w rzeczywistości są również podpisane przez firmę Microsoft. Takim przykładem jest GfxDownloadWrapper.exe


GfxDownloadWrapper

GfxDownloadWrapper.exe to plik binarny dołączony do oprogramowania sterownika karty graficznej Intel. Ponieważ karty Intel stanowią duży procent sprzętu używanego we współczesnych komputerach istnieje wysokie prawdopodobieństwo, że cyberprzestępcy będą mogli wykorzystać ten plik jako wektor niewłaściwego użycia. GfxDownloadWrapper jest to aplikacja .NET obsługująca panel sterowania Intel Graphics i ustawienia grafiki w grach.
Poniżej możemy zobaczyć wynik analizy podpisu plik GfxDownloadWrapper.exe. Widzimy na nim, że jest plikiem podpisanym przez wystawcę „Microsoft Windows Third Party Component CA 2012”:

Ciekawostką jest, że jeśli stacja robocza z Windows jest użytkowana od dłuższego czasu (powiedzmy ponad rok czasu) spotkamy na niej nawet kilkanaście wystąpień tego samego narzędzia GfxDownloadWrapper.exe. Możemy się o tym przekonać przeszukując system plików Windows po nazwie „GfxDownloadWrapper.exe”.
Wyniki znajdziemy w podkatalogach „C:\ProgramData\Package Cache\” i „C:\Windows\System32\DriverStore\FileRepository\”.
Dlaczego system Windows przechowuje aż taką duża ilość tych plików? Prawdopodobnie spowodowane jest to aktualizacjami tego sterownika i ponowną ich instalacją w trakcie używania systemu Windows.


Możliwości pobrania danych z Internetu w GfxDownloadWrapper.exe

Pierwszą wzmiankę w Internecie, w której pokazano interesująca możliwość pobierana z Internetu treści (danych) za pomocą GfxDownloadWrapper.exe możemy znaleźć w lutym 2019. Opublikował ją użytkownik o pseudonimie egre55 na Twitterze.

Narzędzie ostatecznie zostało dodane do LOLBAS. Jednak niedługo po tym incydencie Intel zdecydował się na wypuszczenie łatki do programu (w wersji 8.15.100.8681) i wprowadzenie ograniczeń, aby zapobiec przypadkowemu pobieraniu różnych treści. To z pewnością było dobre posunięcie, lecz pamiętajmy, że system Windows może na dysku systemowym posiadać wiele poprzednich wersji tej binarki. Wystarczy wyszukać (np. w katalogu „C:\ProgramData\Package Cache\”) tę właściwą binarkę o wersji 8.15.100.8280 i późniejszej i możemy się cieszyć możliwością pobierania danych z Internetu jak pokazano poniżej.


Możliwości uruchomienia kodu przez GfxDownloadWrapper.exe

Najnowszą, bo w październiku 2020 i równie ciekawą, odkrytą możliwością GfxDownloadWrapper.exe, oprócz pobierania treści z Internetu, jest sposobność uruchomienia kodu (załadowania złośliwej binarki DLL). Jak opisuje użytkownik Jas502n na Twitterze wystarczy użyć następującej linijki i wykonamy kod zawarty w bibliotece „payload.dll”

GfxDownloadWrapper.exe “run” “[ścieżka\do\payload.dll]” “Numer metody” “;AppData\Local\Intel\Games\[dowolna, losowa wartość]”

Do tego odkrycia doszło w momencie analizy kodu źródłowego GfxDownloadWrapper.exe, w którym pokazane zostały fragmenty kodu odpowiadające za obsługę odpowiednich wartości parametrów (argumentów) przekazywanych w wywołaniu binarki z linii komend. Wpisujemy tylko cztery parametry, które muszą mieć odpowiednią wartość:

Przykład uruchomienia biblioteki o nazwie „np.dll”, która uruchamia na ekranie komputera okno dialogowe z komunikatem „It Works!” przedstawia poniższa komenda:

GfxDownloadWrapper.exe “run” “c:\test\np.dll” “2” “;AppData\Local\Intel\Games\a”

Dla zespołów BlueTeam oraz zespołów Bezpieczeństwa IT oznacza to tyle, że jeśli złośliwy aktor (cyberprzestępca) uzyska dostęp do systemu z Windows 10, na którym występują sterowniki karty Intel, będzie mógł on w niezauważony sposób uruchomić dowolny kod w dostarczonej bibliotece DLL za pomocą pliku GfxDownloadWrapper.exe.


Podsumowanie

Powyższy przykład pokazuje, że musimy uważać zarówno na wykorzystanie narzędzi wbudowanych w Windows (takich jak np. CertReq) oraz na dostarczane przez firmy zewnętrzne (np. opisywany GfxDownloadWrapper.exe), które są podpisane przez Microsoft. Mogą być one pomijane w codziennej analizie wykonywanej w systemach bezpieczeństwa, dlatego warto je dodać do reguł monitorowania.

Podziel się z innymi tym artykułem!