Rozkładamy Malware #1: Watykańczyk

Rozkładamy Malware #1: Watykańczyk

W tym pilotażowym odcinku Rozkładania Malware zajrzymy w kod źródłowy wirusa "Watykańczyk". Czym on jest? Jak to zrobić? Dlaczego to robię? Już wyjaśniam.

[AKTUALIZACJA - 05.12.2022] - Dodano oryginalne pliki dźwiękowe

Praktycznie każdą aplikację zbudowaną na podstawie kodu źródłowego, można zdekompilować - zamienić z postaci zwykłego pliku uruchamialnego (np. exe) do postaci kodu. Oczywiście ten proces nie jest magiczny - oryginalny kod źródłowy oraz ten po dekomplilacji nie będą takie same. Dekompilator tylko "odgaduje", co dana binarka robi i zapisuje to w postaci kodu. Dzięki temu często możemy się dowiedzieć naprawdę ciekawych rzeczy na temat danej próbki. Trzeba się jednak liczyć z tym, że kod nie będzie w oryginalnej formie.

Dlaczego to robię? W Internecie jest dosyć dużo materiałów na temat tego popularnego niegdyś wirusa, ale praktycznie żaden nie przedstawił go bardziej od stronie technicznej. W ramach rozgrzewki postanowiłem więc zacząć właśnie od tego przypadku. Sam temat jest dosyć wrażliwy, ale spróbuję do tego podejść delikatnie.

Google Trends wykazuje największy skok wyszukiwań frazy "watykańczyk" w wakacje 2015 roku. Zgadza się to z datą wydania wirusa.

"Watykańczyk" to niegroźny wirus, a raczej straszak, w którym przewijają się memy związane z Janem Pawłem II. Niektórych może to obrażać, innych śmieszyć - nie zamierzam w to wnikać. W Internecie jest pełno prezentacji wirusa w akcji, ale oprócz tego konkretów brak. Nawet Malware Wiki nawet nie podaje żadnych ściślejszych informacji, mimo że ma "wiki" w nazwie.

Dosyć długi film o niczym, ale chyba najsensowniejszy spośród wszystkich na YouTube.
Watykańczyk w akcji, elegancko odpalony na maszynie wirtualnej.

Zanim przejdziemy do części właściwej pragnę nadmienić, że chyba moja próbka nie jest oryginalnym Watykańczykiem. Wiele osób w sieci pisało, że jest nieszkodliwy i wystarczy tylko zabić odpowiedni proces w Menedżerze Zadań lub odpowiednią komendą. Zdobyta przeze mnie wersja jednak wpakowuje się też do autostartu, więc samo ubicie nie wystarcza.

Dość gadania, zacznijmy przegląd kodu!

Całość będzie wykonywana za pomocą mojego ulubionego narzędzia do dekompilacji aplikacji napisanych w .NET, jakim jest dotPeek od JetBrains - gorąco polecam! Zaznaczam też, że działam tutaj zupełnie amatorsko, więc jeżeli popełnię jakąś głupotę, proszę o łaskawość.

Fikuśny obrazek startowy dotPeeka.
Na wszelki wypadek wszystko robię w "wirtualce".
Let_it_work, hah.

Na screenie powyżej widzimy mechanizm, o którym już wspominałem wcześniej - dodawanie do autostartu. Aplikacja wypakowuje w podane miejsce właściwego wirusa, po czym go uruchamia i kończy działanie. Dziwi mnie tutaj obecność jakichkolwiek ProgressBarów, nigdzie ich nie zauważyłem podczas działania programu.

Watykańczyk właściwy, podszywający się nazwą pod jedną ze składowych Windowsa i zakodowany w Base64.

Tutaj zaś zawiera się właściwy Watykańczyk, tylko że w postaci Base64. Możemy jednak postać tą zmienić, korzystając z Windowsowego narzędzia certutil.

Wyciągniętą próbkę właściwą importuję znowu do dotPeeka.

Poniżej po lewej stronie widzimy różne łańcuchy znaków. Przewijają się tu ciekawe nazwy zmiennych takie jak lataj_kurde czy rek1-4 (prawdopodobnie skrót od reklama).

Pokazał się także kod od wyświetlania spamu na pasku powiadomień. Dlaczego nie pętla, dlaczego... Mam nadzieję, że to wina dekompilatora...

Potem dokonałem, moim zdaniem, ciekawego odkrycia.

Po pierwsze, po lewej stronie zauważyć można wzmiankę o SETDESKWALLPAPER. Może to funkcja zmieniająca pulpit użytkownika? No prawie, bo mimo dalszego używania nazewnictwa "wallp(aper?)", zmieniane jest tylko tło wyskakującego okienka. Co jeszcze ciekawsze, samo tło pobierane jest z Imgura. W tej sytuacji możemy dokopać się do podstawowych statystyk zdjęcia.

Imgur zdradza statystyki zdjęcia.

Zdjęcie to zostało wyświetlone prawie 2.5 tysiąca razy! Oczywiście jest możliwe, że ktoś link dostał bezpośrednio (wszak Google po podaniu linka do obrazka pokazuje tylko linki do analiz wirusa), ale to nadal spora liczba wyświetleń. Zakładając więc, że pobranie obrazka również nabija licznik wyświetleń można stwierdzić, że "Watykańczyka" odpalono ponad dwa tysiące razy. Taka ciekawostka.

Powyższy fragment kodu odpowiada za sam początek tego, co widzi i słyszy użytkownik - wyświetla komunikat oraz odgrywa Barkę. Również nie utworzono tutaj pętli, przez co utworzyło się małe spaghetti.

Napotkałem również fragment kodu odpowiedzialny za mechanizm obronny. Jest to zwykłe ubijanie aplikacji i innych procesów, które pomogłyby w zatrzymaniu działania wirusa. Nie pytajcie, czemu autor próbował różnych wielkości liter. Nie mam pojęcia.

Nic nie wymknie się spod kontroli tak przemyślanego kodu! Funfact: dodatkowo jest jeszcze zamykany proces msconfig, czego na screenie nie pokazałem.

Poniżej przedstawiłem parę ciekawych "modułów". Pierwszy wyświetla obraźliwe reklamy w losowej kolejności, drugi (zaznaczony) wyłącza komputer o 21:37, a trzeci powoduje wysunięcie tacki napędu optycznego i wyświetlenie komunikatu "Insert Kremówka".

Różne strony w przeglądarce internetowej są uruchamianie razem z wyświetlaniem reklam na pulpicie, takie 2 w 1.

Jedna funkcja odpowiada za wyświetlanie reklam na pulpicie (w tym samym pliku, acz wyżej) oraz uruchamianie przeglądarki (co zaznaczyłem).

Na koniec naszych poszukiwań zajrzyjmy w jeszcze jedno miejsce. W źródle aplikacji znajdują się pewne dwa pliki, które nie zostały zapisane w postaci Base64. Są to barking oraz _11.

Po prawej dźwięk zapisany w postaci tekstowej. No, prawie... ?

Barking to plik dźwiękowy zawierający pewne wykonanie Barki. Także ten, jak ktoś chce posłuchać, to proszę bardzo.

audio-thumbnail
barking
0:00
/3:00

Bonus, oryginał:

Możliwe, że utwór w wirusie został przerobiony, gdyż początki obu wersji się różnią. Pomocne w znalezieniu oryginału okazało się wrzucenie pliku na SoundCloud. Od razu dostałem ostrzeżenie za prawa autorskie.

Pozostała nam jeszcze kwestia pliku _11. Co to jest? Jak się okazuje, to nieużywany w "Watykańczyku" remix DJ Mode - Usuń to. Wersja przyjazna oczom poniżej, a ciekawskich odsyłam na YouTube.

audio-thumbnail
_11
0:00
/1:35

To jest już koniec...

I to już wszystko w pierwszej części Rozkładania Malware. Mam nadzieję, że temat udało się całkowicie wyczerpać. Nie spodziewałem się, że przegląd takiego wirusa może być taki ciekawy, a jednak!

Jeżeli macie jakieś sugestie, komentarze czy opinie - dajcie znać poniżej lub na naszym serwerze Discord (zakładka O stronie).

Do następnego!