Do opisania w dzisiejszym artykule nowego LOLBina zainspirował nas Grzegorz Tworek. Pokazał on, jak za pomocą wbudowanego w Windows polecenia „netsh.exe” oraz skompilowanej własnej biblioteki DLL możemy uzyskać narzędzie do uruchamiania malware lub dowolnych poleceń.
O LOLBinach pisaliśmy ostatnio w artykule pod koniec kwietnia. Wymieniliśmy wtedy aż siedem nowych sposobów na uruchomienie własnego malware. Dzisiejszy zdecydowanie dodajemy do tej listy i opisujemy poniżej.
Co to jest netsh.exe?
netsh.exe to popularne w świecie administratorów Windows i sieciowców narzędzie skryptowe wiersza poleceń, które umożliwia wyświetlanie lub modyfikowanie konfiguracji sieciowej aktualnie uruchomionego komputera. Poleceń netsh można używać w plikach wsadowych lub skryptach. Za pomocą netsh jesteśmy w stanie konfigurować komputery zdalne oraz lokalne.
netsh.exe i uruchomienie malware?
Jedną z ciekawych możliwości netsh jest współdziałanie z innymi składnikami systemu operacyjnego za pomocą plików bibliotek dołączanych dynamicznie (DLL).
Każda pomocnicza biblioteka DLL netsh zapewnia rozbudowany zestaw funkcji zwanych kontekstem, który jest grupą poleceń specyficznych dla roli lub funkcji serwera sieciowego. Te konteksty rozszerzają funkcjonalność narzędzia netsh, zapewniając obsługę konfiguracji i monitorowania dla jednej lub większej liczby usług, narzędzi czy protokołów.
W celu załadowania takiej biblioteki do netsh wystarczy uruchomić poniższą komendę:
netsh.exe add helper <nazwa_biblioteki>
I tutaj się zatrzymamy, ponieważ Grzegorz zauważył możliwość utworzenia własnej biblioteki DLL, która mogłaby być wykorzystana przez malware do uruchamiania dowolnych komend. Taki autorski backdoor w systemie.
Aby powyższe mogło zadziałać, konieczne jest spełnienie jednego warunku – na takiej końcówce musimy posiadać uprawnienia administratora lokalnego, ponieważ ze zwykłego użytkownika nie możemy załadować biblioteki DLL do netsh.exe.
Konfiguracja złośliwej biblioteki
Grzegorz na portalu GitHub zamieścił napisany w języku C kod źródłowy przykładowej biblioteki „netshrun.dll”, którą możemy wykorzystać do rozszerzenia poleceń w netsh.exe.
Posiada ona funkcję „RunStartHelper”, definiującą polecenie „run”, którym możemy wystartować (uruchomić) dowolną komendę.
Na przykład pisząc „start calc.exe”, uruchomimy na ekranie kalkulator.
Możemy oczywiście używać innych poleceń, co stwarza ogromne możliwości dla cyberprzestępców.
Podsumowanie
Opisany powyżej LOLBin to na pewno nowy interesujący sposób na uruchamianie instrukcji malware, który może zainspirować badaczy bezpieczeństwa do wyszukiwania kolejnych (w końcu Windows to niewyczerpana kopalnia takich odkryć). Choć wymaga uprawnień administracyjnych do systemu, z pewnością nie będzie stosowany w atakach na komputery, za to może być wykorzystywany w fazie posteksploitacyjnej ataku do utworzenia przyczółku na komputerze.
Wbudowane polecenie „netsh.exe” z pewnością będzie maskowało aktywność uruchamianych komend na Windows. Warto dodać to polecenie do monitorowanych w systemach bezpieczeństwa w firmach.