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.
"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.
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ść.
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.
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.
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.
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.
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.
Barking to plik dźwiękowy zawierający pewne wykonanie Barki. Także ten, jak ktoś chce posłuchać, to proszę bardzo.
Bonus, oryginał:
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.
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!