Kolejna odsłona kampanii „Komornika Sądowego” – ransomware Petya i Mischa

Data publikacji: 31/08/2016, Kamil Frankowicz

W pierwszym tygodniu sierpnia trafiła do nas wiadomość podszywająca się pod zawiadomienie od komornika sądowego o następującej treści:

Nr sprawy EGZ/2035-TR/12C/08/2016

ZAWIADOMIENIE O WSZCZĘCIU EGZEKUCJI
Komornik Sądowy przy Sądzie Rejonowym Poznań – Grunwald i Jeżyce w Poznaniu Piotr Tomaszewski zawiadamia o wszczęciu postępowania egzekucyjnego na wniosek wierzyciela:

PKO Bank Polski Spółka Akcyjna
ul. Puławska 15
02-515 Warszawa
którego reprezentuje: Adwokat Agnieszka Marciniak
ul. Grunwaldzka 519E/2, 62-064 Plewiska / Poznań

Postępowanie egzekucyjne zostało wszczęte na podstawie tytułu wykonawczego:

Nakaz zapłaty w postępowaniu upominawczym Sądu Rejonowego Poznań – Grunwald i Jeżyce w Poznaniu z dnia 13-07-2016, syg. akt VI Nc-e35886/EZ/16 zaopatrzone w klauzule wykonywalności z dnia 02-08-2016

w którym zasądzono od dłużnika na rzecz wierzyciela:

należność główna: 46 832,61 zł
odsetki do 02-08-2016: 1 257,95 zł

W przypadku zwłoki również dalsze odsetki od dnia 03-08.2016 w wysokości 0,75 zł dziennie wraz z należną od nich opłatą egzekucyjną w wysokości 15%

Koszt procesu: 840,00 zł
Koszt zastępstwa adwokackiego w egzekucji: 150,00 zł

Do każdej przekazywanej kwoty należy doliczyć opłatę stosunkową w wysokości 15% kwot przekazywanych oraz opłatę za przelew 0,35 zł.

Do powyższych kwot dojdą dalsze koszty egzekucyjne wysokość których zostanie ustalona w miarę dokonywania czynności. W celu uniknięcia dalszych kosztów należy wpłacić całą egzekwowaną należność łącznie z kosztami na konto komornika: Bank Polska Kasa Opieki S.A. I/Oddział Poznań 50 1240 1747 1111 0010 2730 9341
Lub bezpośrednio w kancelarii mieszczącej się: ul. Józefa Chociszewskiego 21/6, 60-255 Poznań

Wierzyciel wskazał we wniosku następujące sposoby egzekucji:
– rachunków bankowych
– nieruchomości
– ruchomości
– inne wierzytelności

Pobierz oryginał sądowego nakazu zapłaty:

VINc-e35886EZ16.pdf

Pobierz oryginał zawiadomienia o wszczęciu postępowania egzekucyjnego:

EGZ2035-TR12C082016.pdf
W korespondencji oraz przy wpłatach podać sygnaturę EGZ/2035-TR/12C/08/2016
Komornik Sądowy
Piotr Tomaszewski
Pouczenie: Jeżeli podstawę egzekucji stanowi tytuł wykonawczy w postaci zaopatrzonego w klauzulę wykonalności nakazu zapłaty wydanego w elektronicznym postępowaniu upominawczym, komornik poucza dłużnika o treści art. 139 § 1 i 5, art. 168, art. 172, art. 820 § 1 i2 art. 825 pkt 2, a także o treści art. 505 (art. 805 § 1 k.p.c.)

Scenariusz jest oczywisty – mail zawiera załącznik z rzekomymi dokumentami dotyczącymi sprawy opisanej powyżej. Jest to archiwum ZIP, dla uwiarygodnienia umieszczone pod domeną podszywającą się pod kancelarię prawniczą z Poznania. Archiwum zawiera plik o nazwie VINc-e35886EZ16-pdf.pif. Na dzień pisania posta plik jest rozpoznawany tylko przez 7/58 silników antywirusowych w serwisie VirusTotal.

Jak widać w dalszym ciągu jest wykorzystywana sztuczka z rozszerzeniem .pif, charakterystyczna dla kampanii tego aktora. Jedną z poprzednich opisywaliśmy pod koniec 2014 roku.

Rzekome dokumenty w formacie PDF są dropperem ransomware o nazwach Petya oraz Mischa.

Dropper i wybór payloadu

Dropper na początku swojego działania sprawdza uprawnienia procesu:

mischa_administrative_privileges_checker

W przypadku braku uprawnień administracyjnych (niepotwierdzenie w okienku User Account Control po uruchomieniu), proces próbuje uruchomić się z podwyższonymi uprawnieniami. Jeżeli mu się nie uda, następuje wybór Mischy jako payloadu (żółta „ścieżka” na zrzucie ekranu) w postaci biblioteki DLL o nazwie Setup.dll.

mischa_payload_chooser

Następnym krokiem jest wstrzyknięcie biblioteki, do procesu conhost.exe , za pomocą techniki znanej jako Reflective DLL injection i rozpoczęcie szyfrowania plików za jej pomocą. Poniżej kluczowy fragment funkcji realizującej wstrzyknięcie:

mischa_ref_dll_injection

W sytuacji kiedy dropper zostanie uruchomiony od razu z uprawnieniami administracyjnymi (potwierdzenie w okienku User Account Control), ofiara jest infekowana ransomware Petya.

Początek działania malware to nadpisanie MBR oraz wybranych sektorów dysku twardego – od 34. do 66. Następnie generowany jest błąd systemu operacyjnego i następuje ponowne uruchomienie komputera z fałszywym narzędziem chkdsk.

mischa_fake_chkdsk

Mischa – szczegóły techniczne

Schemat działania ransomware zawiera się w kilku krokach:

1. Pobierane są informacje o podmontowanych dyskach wymiennych, udziałach sieciowych oraz dyskach lokalnych.

mischa_drive_type_checker

2. Następnie tworzona jest lista plików do zaszyfrowania na znalezionych dyskach. Poniżej fragment funkcji odpowiedzialnej za wybranie plików o odpowiednich rozszerzeniach (lista rozszerzeń szyfrowanych plików znajduje się tutaj).

Co ciekawe, szyfrowane są również pliki o rozszerzeniach  .exe i biblioteki .dll. Aby uniknąć zaszyfrowania plików systemowych i w konsekwencji niemożliwości uruchomienia systemu operacyjnego przez ofiarę, odpowiednie katalogi systemowe są blacklistowane (lista blacklistowanych katalogów).

mischa_find_files_to_encrypt

3. Pliki są odczytywane w częściach po 1024 bajty.

mischa_read_files

4. Kolejnym krokiem jest operacja xorowania odczytanych 16 bajtów z losowym buforem,  a następnie szyfrowanie za pomocą autorskiego algorytmu.

mischa_xor_encrypt_data

5. Zaszyfrowane części pliku są zapisywane jako jedna i na końcu dodawane są dodatkowe dane: wielkość pliku przed zaszyfrowaniem, losowy bufor użyty podczas xorowania oraz identyfikator ofiary.

mischa_write_encrypted_file

6. Po zaszyfrowaniu do nazwy plików dodawana jest część identyfikatora użytkownika.

mischa_files_after_encryption

7. Na pulpicie znajdziemy żądanie okupu w wersji tekstowej oraz HTML o nazwie YOUR_FILES_ARE_ENCRYPTED.[TXT | HTML].

mischa_ransom

Petya – szczegóły techniczne

Petya jest bardzo ciekawym rodzajem ransomware – jako pierwszy ransoware nadpisywała strukturę MBR w celu całkowitego zablokowania dostępu do systemu operacyjnego.

Dodatkowo, autorzy pokusili się o stworzenie niskopoziomowego szyfrującego wykorzystującego algorytm Salsa20 (tak jak było wcześniej wspomniane, nadpisuje 32 sektory dysku twardego, od 34. do 66.).

MBR przed infekcją:

petya_mbr_before

Oraz po infekcji:

petya_mbr_after

Nadpisanie MBR zakończone było wymuszeniem ponownego uruchomienia systemu operacyjnego. Deweloperzy posłużyli się w tym miejscu nieudokumentowaną oficjalnie funkcją WinAPI – NtRaiseHardError.

petya_raise_hard_error

Po infekcji użytkownikowi wyświetlane było fałszywe narzędzie chkdsk (screen w akapicie Dropper i wybór payloadu). W rzeczywistości w tym momencie szyfrowane są dane użytkownika. Poniżej zapisany kod payloadu w sektorze nr 34.

petya_payload_in_34_sector

Po zaszyfrowaniu na początku sektora nr 54 zapisywana jest flaga statusu szyfrowania. W przypadku kiedy jest ustawiona na 0, ransomware wyświetla „narzędzie” chkdsk.

petya_enc_flag_check

Po zaszyfrowaniu plików użytkownikowi zostaje wyświetlone żądanie okupu:

petya_ransom

 

Co zrobić kiedy zostałem zainfekowany?

Podobnie jak w ostatnim wpisie dotyczącym CryptXXX i CrypMIC, zalecamy posiadanie aktualnej, pełnej kopii zapasowej najważniejszych danych oraz aktualnego oprogramowania. Oczywiście należy również wyrobić sobie nawyk krytycznego podejścia do korespondecji mailowej, której się nie spodziewamy (zwłaszcza zawierającej załączniki lub nakazującej wykonanie akcji pobrania pliku z zewnętrznych serwisów i uruchomienia na własnym komputerze).

Niestety plików zaszyfrowanych najnowszą wersją Petya oraz Mischa nie da się odszyfrować za pomocą narzędzi dostępnych w Internecie. W przypadku infekcji starszą wersją Petya, powstało narzędzie Anti-Petya, które umożliwia wygenerowanie klucza potrzebnego do odszyfrowania plików.

Celem prewencji, zaawansowanym użytkownikom możemy polecić honeypota AntiRansom oraz narzędzie ProcFilter.

Aktualizacja 25.07.2017

Malwarebytes opublikowało narzędzie do deszyfrowania wszystkich odmian ransomware Petya: Red Petya, Green Petya (+ Mischa) i GoldenEye.

Skrót kryptograficzny próbki i reguła YARA

VINc-e35886EZ16-pdf.pif SHA256: ecc5cc62c8200954079191e586123522f88aa1414ae98908380176d75d2e7eab
Setup.dll SHA256: 024400c8b62e67add08e10f02052b1066d4e0c89652670dd545308bb4237bcad
rule mischa : ransomware
{
meta:
author="kamilf"

strings:
$ransom_note_header = "You became victim of the PETYA RANSOMWARE!"
$ransom_filename_txt = "YOUR_FILES_ARE_ENCRYPTED.TXT"
$ransom_filename_html = "YOUR_FILES_ARE_ENCRYPTED.HTML"
$find_xxxx_section = { BA 2E [3] 8D 47 ?? 38 17 75 14 8D [3] 85 D2 74 21 0F BE [2] 0F BE ?? 40 }
$generate_keys_1 = { 8A CE C0 E9 ?? 80 F9 ?? 1A C0 80 C1 ?? 24 D9 02 C1 8A CE 80 E1 ?? 88 47 ?? 80 F9 ?? 1A C0 80 C1 ??}
$generate_keys_2 = { F3 0F 7F 47 ?? F3 0F 6F 46 ?? F3 0F 7F 47 ?? F3 0F 6F 46 [31] 66 0F D6 47 ?? }
$write_petya_to_hdd = { 99 2B C8 8B 45 ?? 6A ?? 1B C2 0F A4 C8 09 6A ?? 50 C1 [2] 51 FF [2] FF 15 [4] }
$inject_mischa_dll = { 8A [2] 84 C0 75 F9 8B 5F ?? 2B F1 8B CB [3] 8D 51 ?? 8A [2] 84 C0 75 F9 8B 7F ?? 2B CA 8B D7 8D 42 ?? [3] 8D 9B [4] }
$injected_dll_prepare_ransom_note = { 52 57 50 E8 [4] FF 73 ?? BF [4] B9 [4] 8B D7 E8 [4] FF 73 ?? BA [4] 89 45 ?? 8B C8 E8 [4] FF 73 ?? BA [4] 89 45 ?? 8B C8 E8 [4] }
$encryption_helper_function = { C1 E9 ?? 81 E1 FF [3] C1 E8 ?? 25 [4] 8B 0C [5] 33 0C [5] 8B 45 ?? C1 E8 ?? 33 0C [5] 0F B6 ?? 33 0C [5] }

condition:
6 of ($find_xxxx_section, $generate_keys_1, $generate_keys_2, $write_petya_to_hdd, $inject_mischa_dll, $ransom_note_header, $ransom_filename_txt, $ransom_filename_html, $injected_dll_prepare_ransom_note, $encryption_helper_function)
}

Materiały dodatkowe

Czytelnikom zainteresowanym tematem duetu Mischa & Petya polecamy następujące wpisy: