Wirus, który potrafi w całości schować się w rejestrze Windows

dodał 24 lipca 2014 o 10:39 w kategorii Złośniki  z tagami:
Wirus, który potrafi w całości schować się w rejestrze Windows

Mieliśmy już wirusy mieszkające we własnych plikach, w cudzych plikach, w sektorach startowych, w BIOSie komputera lub jego komponentów czy w interfejsie ACPI. Co powiecie jednak na złośliwe oprogramowanie, które chowa się w rejestrze Windows?

Win32/Poweliks, bo tak nazywa się bohater naszego artykułu, odkryty został przez firmę ESET w kwietniu. Na jego specyficzne działanie po raz pierwszy zwrócono uwagę tydzień temu na forum KernelMode.info. Mało kto jednak zainteresował się tematem aż do czasu opublikowania wpisu na Reddicie. Warto przyjrzeć się temu wirusowi, bo jest dość oryginalny.

Mieszkam w rejestrze i co mi zrobisz

Czy da się schować złośliwy program w rejestrze Windows? Okazuje się, że nie jest to dużym wyzwaniem, wymaga jedynie kilku prostych sztuczek. Poweliks zaczyna swoje działanie od klucza

HKCU\Software\Microsoft\Windows\CurrentVersion\Run

w którym umieszcza swój skrypt startowy

rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write("\74script language=jscript.encode>"+(new%20ActiveXObject("WScript.Shell")).RegRead("HKCU\\software\\microsoft\\windows\\currentversion\\run\\")+"\74/script>")

Zadaniem skryptu jest pobrać, zdekodować i wykonać kolejny skrypt, przechowywany w tej samej gałęzi rejestru w kluczu „Default”. Ten drugi skrypt dla odmiany pobiera z innego klucza ciąg znaków zakodowany w base64, który po odkodowaniu staje się plikiem DLL. Plik DLL jest właściwym elementem złośliwego oprogramowania, które po zdekodowaniu zostaje uruchomione wewnątrz dodatkowego procesu dllhost.exe. W razie usunięcia właściwego pliku z dysku może on zostać odtworzony na podstawie danych przechowywanych w rejestrze.

Sam wirus posiada już tradycyjne funkcje, takie jak komunikacja z C&C oraz pobieranie i wykonywanie plików przesyłanych przez swoich nadzorców. Od czasu pierwszej analizy pojawiły się także nowe wersje, które korzystają z innych kluczy rejestru, np.

HKEY_CURRENT_USER\Software\Classes\CLSID\{AB8902B4-09CA-4bb6-B78D-A8F59079A8D5}

Wirus dystrybuowany jest między innymi poprzez zainfekowane pliki RTF, wykorzystujące błąd CVE-2012-0158. Inne procesy jego dystrybucji znajdziecie w artykule Kafeine.

Analiza fragmentu kodu Poweliksa (źródło: Kafeine)

Analiza fragmentu kodu Poweliksa (źródło: Kafeine)

Pelerynka – niewidka

Wirus jest taki sprytny, że używane przez niego klucze rejestru są niewidoczne gołym okiem. Gołym – czyli korzystającym z narzędzia regedit, dostarczanego w systemie Windows. W tym celu wirus korzysta ze starej sztuczki, polegającej na wstawieniu do nazwy zmiennej znaku specjalnego NULL (0x00), który powoduje, że nie jest ona wyświetlana prawidłowo przez regedit.

Jeśli chcecie przeskanować swój rejestr w poszukiwaniu kluczy ukrytych w ten sposób, polecamy RootkitRevealer, który wykrywa te triki. W wykryciu i usunięciu wirusa pomogą także narzędzia takie jak Autoruns oraz ProcessExplorer.