Aktualności

Głębsze spojrzenie na moduły Tofsee

Data publikacji: 19/10/2017, Jarosław Jedynak

logo

Tofsee jest złośliwym oprogramowaniem z wieloma funkcjami – może kopać bitcoiny, wysyłać emaile, kraść dane dostępowe, wykonywać ataki DDoS i wiele więcej.

Pisaliśmy już o Tofsee/Ghegu kilka miesięcy temu – nasza analiza znajduje się pod adresem https://www.cert.pl/news/single/tofsee. Znajomość tamtego posta jest potrzebna żeby w pełni zrozumieć obecnie omawiany temat. Ten post ma za zadanie tylko rozszerzyć tamte badania, koncentrując się na funkcjach wtyczek, których wcześniej nie opisaliśmy.

Podsumujemy pokrótce każdy moduł i podkreślimy jego najważniejsze możliwości.

Ten post jest raczej długi – dla niecierpliwych, lista hashy i spis treści w jednym:

ID Zasobu Nazwa DLL Hash pluginu
1 ddosR.dll fbc7eebe4a56114e55989e50d8d19b5b
2 antibot.dll a3ba755086b75e1b654532d1d097c549
3 snrpR.dll 385b09563350897f8c941b47fb199dcb
4 proxyR.dll 4a174e770958be3eb5cc2c4a164038af
5 webmR.dll 78ee41b097d402849474291214391d34
6 protect.dll 624c5469ba44c7eda33a293638260544
7 locsR.dll 2d28c116ca0783046732edf4d4079c77
10 hostR.dll c90224a3f8b0ab83fafbac6708b9f834
11 text.dll 48ace17c96ae8b30509efcb83a1218b4
12 smtp.dll 761e654fb2f47a39b69340c1de181ce0
13 blist.dll e77c0f921ef3ff1c4ef83ea6383b51b9
14 miner.dll 47405b40ef8603f24b0e4e2b59b74a8c
15 img.dll e0b0448dc095738ab8eaa89539b66e47
16 spread.dll 227ec327fe7544f04ce07023ebe816d5
17 spread2.dll 90a7f97c02d5f15801f7449cdf35cd2d
18 sys.dll 70dbbaba56a58775658d74cdddc56d05
19 webb.dll 8a3d2ae32b894624b090ff7a36da2db4
20 p2p.dll e0061dce024cca457457d217c9905358

1. ddosR.dll

Oryginalna nazwa pliku: p:\cmf5\small2\plugins\plg_ddos\ddos.cpp

Zadaniem tego pluginu jest wykonywanie ataków DDoS na wskazane cele. Zaimplementowane metody nie są zbyt skomplikowane, np. wykonywanie wielu zapytań (tzw. HTTP Flood):

Albo stary dobry SYN flood (używając sterownika PassThru, czyli modułu grabb).

Nie zaobserwowaliśmy jeszcze żadnej aktywności DDoS od Tofsee – prawdopodobnie ten plugin obecnie nie jest wykorzystywany przez botmastera.

Konfiguracja otrzymywana z C&C dla tego pluginu jest bardzo prosta:

Moduły zawierają wiele napisów, które znacznie upraszczają analizę:

2. antibot.dll

Oryginalna nazwa pliku: z:\cmf5\small2\plugins\plg_antibot\plugin.cpp

To bardzo interesujący plugin – jego celem jest usunięcie innych rodzajów złośliwego oprogramowania z komputera ofiary.

Jest w stanie:

    • sprawdzić wszystkie działające procesy i zabić te, które mogą być potencjalnym zagrożeniem (sprawdzenie oparte o nazwę procesu)
    • przeszukać klucz rejestru SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects i usunąć niektóre dodatki do przeglądarki
    • przeszukać aktualne mutexy i zabić procesy które je posiadają (sprawdzenie oparte o nazwę)

Lista dodatków usuwanych aktualnie przez moduł (pobranych z C&C):

3. snrpR.dll

Oryginalna nazwa pliku: p:\\cmf5\\small2\\plugins\\plg_sniff\\sniff.cpp

Powiązana sekcja w konfiguracji:

Ruch jest podsłuchiwany i przechwytywany przez sterownik PassThru (dostępny przez named pipe „\\\\.\\PassThru”).

    • mail.sniff aktywuje kradzież adresów e-mail przechodzących po sieci. Adresy są kradzione z nagłówków From i To. Dodatkowo szuka w treści encji „%40″,”#64″,”#064” (czyli zakodowanego znaku „@”).

    • ftp.sniff i pop.sniff aktywują kradzież danych logowania POP3 i FTP. Plugin szuka komend USER i PASS, a następnie wyciąga zawartość i wysyła do serwera C&C.

    • mail.replace Aktywuje transparentne podmienianie zawartości wysyłanych emaili, używając wybranego szablonu (przechowywanego w konfiguracji w polu mailbody)

Przykładowy szablon który otrzymaliśmy (mimo że ta funkcja jest obecnie wyłączona):

Jak widać, szablon zostawia oryginalne nagłówki From, To (%FROM_LINE, %TO_LINE), dodatkowo ma opcję zostawienia oryginalnego tematu (%SUBJ, %_SUBJ) i oryginalnego czasu (%DATE, %P5DATE, %M5DATE)

4. proxyR.dll

Oryginalna nazwa pliku: p:\\cmf5\\small2\\plugins\\plg_proxy\\plugin.cpp

Ten moduł nasłuchuje na połączenia TCP na adresie 0.0.0.0:1080 i dostarcza wielowątkowy serwer SOCKS proxy. Wersja, którą analizowaliśmy, identyfikuje się w nagłówku Proxy-agent jako WinRoute Pro/4.1.

Ruch jest przekierowywany do adresów wpisanych w sekcji proxy_cfg, osobno dla każdego regionu:

Adresy są albo wpisane jako referencje do listy work_srv, albo bezpośrednio:

W proxy_cfg mamy też listę skonfigurowanych dla socketów timeoutów:

Kiedy brakuje jakiejś wartości w konfiguracji, program ma kilka domyślnych wartości zapewniających działanie.

Moduł dodatkowo dodaje mapowanie portu używając UPnP, przedstawiając się jako Skype:

Napisy z programu dają trochę wglądu w cel i wewnętrzne działanie tego pluginu:

6. protect.dll

Oryginalna nazwa pliku: z:\cmf5\small2\plugins\plg_protect\plugin.cpp

Ten moduł pobiera i instaluje złośliwą usługę w systemie:

Złośliwa usługa jest obfuskowana „nowoczesnym algorytmem szyfrowania” – czyli każdy bajt jest negowany:

Md5 zdeszyfrowanego backdoora = 49642f1d1b1673a40f5fa6263a66d056. Ten backdoor jest chroniony przez packer i to jedyne zaobserwowane przez nas jego użycie podczas całego procesu analizy Tofsee – może to sugerować, że był stworzony przez innego aktora i później wykorzystany przez twórców Tofsee.

7. locsR.dll

Oryginalna nazwa pliku: z:\cmf5\cmf5\small2\plugins\plg_locs\plg.cpp

Ten plugin kradnie dane dostępowe do programu Microsoft Outlook:

Po wyciągnięciu ich z rejestru, są odszyfrowywane i wykorzystywane do wysłania większej liczby emaili. Dodatkowo, generuje adres email w postaci [nazwa komputera]@mail.run i próbuje wysłać emaile korzystając z niej (czystym protokołem SMTP).

Ciekawsze napisy z pliku:

10. hostR.dll

Plugin, który potrafi działać jako serwer HTTP. Przedstawia się Apache/2.2.15 (Win32). Może serwować pliki, prawdopodobnie dla innych botów (w połączeniu z pluginem p2p.dll).

Jest w stanie wykluczać niektóre IP – prawdopodobnie analityków bezpieczeństwa (np. całe zakresy adresowe Forcepoint i Google są zbanowane).

Pobrana z C&C konfiguracja dla tego modułu:

11. text.dll

Oryginalna nazwa pliku: p:\cmf5\small2\plugins\plg_text\plg_text.cpp.

Bardzo prosty plugin, jest w stanie tylko przetwarzać szablony emaili pobranych z serwera C&C.

12. smtp.dll

Bardzo ważny moduł – generuje i wysyła emaile. Jest prawdopodobnie największym pluginem, a jego kod jest często skomplikowany.

Najciekawszą rzeczą w nim jest fakt, że do generowania wiadomości używa własnego dedykowanego języka skryptowego. Przykładowy skrypt otrzymany od C&C:

Jeśli ktoś jest w stanie rozpoznać ten język skryptowy, bardzo chętnie dowiedzielibyśmy się co jeszcze z niego korzysta. Jako że nie widzieliśmy wcześniej czegoś takiego, spróbowaliśmy przeanalizować interpreter tego języka.

Składnia jest raczej prosta, ale bardzo podobna do asemblera i prymitywna. Mamy nadzieję że autorzy malware generują ten skrypt z jakiegoś bardziej wysokopoziomowego języka, bo pisanie w takim czymś musi bardzo ranić zdrowie psychiczne programisty ;].

Wspieranych jest bardzo wiele opcodów – polecamy spojrzeć na tę uproszczoną funkcję parsującą jako przykład:

Nie przeanalizowaliśmy ich wszystkich, ale kilka najważniejszych to:

    • C ip:port – Połącz do ip:port (Connect)
    • L lbl – Stwórz etykietę (Label) o nazwie lbl.
    • J lbl – Skocz (Jump) do etykiety lbl.
    • v name value – Stwórz zmienną (variable) o nazwie name i przypisz wartość value.
    • W text – Wypisz (Write) coś na wyjście – czyli w tym przypadku do emaila.
    • I lbl condition – Jeśli (If) condition jest spełniony, skocz do etykiety lbl

Dodatkowo, otoczenie tekstu w „”” pozwala na znaki nowej linii i escape sequences, a __v(XX)__ to interpolacja zmiennych.

Ponownie, kilka ciekawszych napisów, które można znaleźć w tym pliku:

Przez chwilę myśleliśmy, że IfYouAreReadingThisYouHaveTooMuchFreeTime to easter-egg dla nas, analityków malware – ale okazuje się że to tylko dziwny specjalny przypadek związany z logowaniem do hotmaila.

Konfiguracja, którą pobraliśmy dla tego modułu z C&C:

13. blist.dll

Ten plugin sprawdza czy bot znajduje się na listach spambotów. W konfiguracji, którą zaobserwowaliśmy, następujące DNSBL (DNS-based Blackhole List) były używane:

DNSBL to usługa bazująca na DNS, używana do publikowania adresów IP nadających spam. Jeśli serwer mailowy używa DNSBL, wykona żądanie DNS do domeny DNSBL z każdym nadchodzącym połączeniem SMTP. Techniczne detale tego rozwiązania są poza zakresem naszego posta, ale jeśli ktoś jest ciekawy może spojrzeć na http://www.us.sorbs.net/using.shtml albo https://en.wikipedia.org/wiki/DNSBL.

Sprawdzenie DNSBL w malware jest wykonywana za pomocą gethostbyname.

Konfiguracja modułu pobrana z C&C:

14. miner.dll

Jak sama nazwa wskazuje, jest to koparka kryptowalut. Ten plugin służy tylko do koordynacji pracy, ale ma kilka powiązanych programów, które wykonują całą „ciężką pracę”.

Jeden z programów, nazywany grabb, jest dystrybuowany prosto z C&C. Inne są pobierane z URLi zapisanych w konfiguracji – w teorii. W praktyce serwery dystrybuujące programy kopiące wyglądają na martwe, więc nie byliśmy w stanie ich pobrać.

Miner.dll weryfikuje że na pewno pobrał poprawny program, ale być może hashowanie było za trudne do zaimplementowania dla twórców, więc użyli prostszej metody – porównanie długości – na przykład, upewniają się że pobrany program cores_gt_1 ma dokładnie 223744 bajtów.

Nie analizowaliśmy tego pluginu bardzo dokładnie, bo koparki bitcoinów nie leżą w naszym obszarze zainteresowań, a napisy dały wystarczająco wiele informacji o tym co dzieje się w środku i tak:

A resztę można znaleźc w konfiguracji pobranej z C&C:

15. img.dll

Ten krótki plugin służy do przetwarzania złośliwych załączników – koduje je za pomocą algorytmu base64 i załącza do emaili.

Nie ma tu nic interesującego, jak widać w napisach zapisanych w kodzie:

Konfiguracja dla tego modułu pobrana z C&C.

16. spread.dll

Ten plugin jest wykorzystywany żeby rozprzestrzeniać Tofsee przez media społecznościowe: Facebooka, Twittera oraz komunikator Skype.

Najpierw wyciąga ciastka xs, datr, c_user (i więcej).

Dokładna metoda zależy od przeglądarki, ale generalnie wtyczka czyta ciastka zapisane na dysku przez przeglądarkę. Na przykład cookies.sqlite z \Mozilla\Firefox\Profiles dla Firefoxa. Wspierane przeglądarki to Chrome, IE, Firefox, Safari i Opera.

Następnie plugin używa tych ciastek np. żeby podszyć się pod użytkownika przed API Facebooka:

Lista przyjaciół jest pobierana przez API i wiadomość jest wysyłana do każdego z nich. Format wiadomości jest przechowywany w konfiguracji, na przykład:

‚fb.message1’: ‚%SPRD_TEXT1|%LANG_ID| %SPRD_URL1’

Twitter jest obsługiwany bardzo podobnie – ciastka są kradzione, followersi są pobierani przez API pod adresem https://twitter.com/followers, a następnie wysyłane są wiadomości.

Dodatkowo wspierane jest rosyjskie VKontakte, ale ta funkcja jest opcjonalna i trzymana w osobnym pluginie. Opisywany tu moduł sprawdza tylko czy VK jest włączony w konfiguracji i wywołuje odpowiedni handler (który musi być inicjalizowany z innego pluginu), jeśli jest zdefiniowany. Twórcy złośliwego oprogramowania zazwyczaj nie obierają na cel Rosji, więc ta funkcja jest wyłączona i moduł do Vkontakte nie jest rozpowszechniany.

Moduł może również rozprzestrzeniać się za pomocą Skype, ale analiza wsteczna protokołu Skype była widocznie za trudna, więc twórcy poszli na łatwiznę i wtyczka czeka, aż Skype zostanie uruchomiony, po czym wysyła wiadomości windowsowe do okna Skype:

Ten plugin ma dziesiątki zapisanych napisów, więc analiza w deasemblerze jest bardzo prosta. Kilka ciekawszych grup:

Referencje do pluginu OCR – żeby rozwiązywać Captchę:

Ciastka Facebooka:

Napisy związane z rozpowszechnianiem się przez Facebooka:

Napisy związane z kradzieżą ciasteczek:

Napisy związane z przechwytywaniem Skype:

Ciastka Twittera:

I rozpowszechnianie się przez Twittera:

Na koniec napisy związane z wysyłaniem ciasteczek:

Dużo funkcji oznacza dużo konfiguracji od C&C:

17. spread2.dll

Plugin stosujący metody sprzed ponad 15 lat – przenosić Tofsee przez… zainfekowane nośniki USB! Nie brzmi to jak dobra strategia w roku 2017, ale mimo to, jest on ciągle aktywny.

Najpierw złośliwy program jest kopiowany jako RECYCLER\<random_gibberish>.exe na nośnik USB, następnie są na nim ustawiane atrybuty READONLY i SYSTEM, a finalnie zapisywany jest złośliwy autorun.inf:

Złośliwy program, który będzie dystrybuowany, jest pobierany z Internetu (patrz również sys.dll i zmienna %FIREURL).

W napisach nie ma wiele ciekawego, poza logami:

A konfiguracja dla modułu jest dość uboga:

18. sys.dll

Ten plugin wygląda na downloader, albo raczej program aktualizujący. Wysyła on żądanie zależne od zawartości zmiennej %FIREURL w konfiguracji:

Przykładowe wartości %FIREURL (jeden na linię):

Zmienne są podmieniane rekursywnie, a %SYS_RN oznacza \r\n, więc pierwsza możliwa wartość powinna być traktowana jako:

Jeśli wyślemy to żądanie do odpowiedniego IP na porcie 80, otrzymamy kolejny złośliwy program. Różne żądania zwracają inne programy.

Jeśli żądanie jest niepoprawne, albo nie wspierane, zwracany jest następujący obraz:

Doceniamy poczucie humoru.

Nic zaskakującego w napisach:

Konfiguracja od C&C:

Dodatkowo używana jest zmienna %FIREURL z głównego modułu.

19. webb.dll

Ta wtyczka szuka procesu iexplore.exe. Jeśli znajdzie go, wstrzykuje do niego DLL IEStub.dll.

IEStub.dll przechwytuje bardzo dużo funkcji – lista:

Hooki przechwytują wołane funkcje i mogą nawet zmienić im parametry. Nie analizowaliśmy ich dokładnie, ale większość z nich to bardziej loggery, które tylko przechwytują interesujące dane z parametrów. Nie zaobserwowaliśmy żeby Tofsee serwowało jakiekolwiek web injecty.

Dla kompletności, interesujące napisy:

Konfiguracja dla tego modułu pobrana z C&C:

20. P2P.dll

Oryginalna nazwa pliku: p:\cmf5\small2\plugins\plg_p2p\plg_p2p.cpp

Ten plugin jest raczej krótki. Mimo że ma obiecującą nazwę, nie ma w nim wiele ciekawego – otwiera port na routerze i nasłuchuje połączeń. Nie implementuje żadnych poleceń, wszystko jest zostawione dla głównego modułu (albo pluginów, jak np. serwer HTTP).

Jak prawie każdy moduł, zapisuje logi do pliku %TMP%\log_%s.txt, a jeśli to się nie uda, to do C:\log.txt.

Dodaje również mapowanie portu używając UPnP, w taki sam sposób jak plugin 4 (proxyR.dll).

Konfiguracja otrzymana z C&C:

Interesujące napisy:

Podatność w protokole WPA2 – „Key Reinstallation Attacks: Forcing Nonce Reuse in WPA2”

Data publikacji: 17/10/2017, Mateusz Szymaniec

Niektóre implementacje protokołów WPA i WPA2 używanych do uwierzytelniania i szyfrowania komunikacji w sieciach WiFi pozwalają atakującym na jej podsłuchanie oraz wstrzyknięcie spreparowanych pakietów. Podatne na atak są m.in. urządzenia z niektórymi wersjami systemów operacyjnych Android (od wersji 6), Mac OS X oraz Linux (możliwość podsłuchiwania całej komunikacji), a względnie bezpieczne są urządzenia z systemami iOS oraz Windows (tylko możliwość wstrzykiwania pakietów typu broadcast, bez podsłuchiwania komunikacji).

Czytaj więcej

Ramnit – dogłębna analiza

Data publikacji: 29/09/2017, Michał Praszmo

Ramnit rozpoczął swoją działalność w 2010 roku. Rozprzestrzeniał się wtedy głównie infekując pliki wykonywalne i dołączając się do plików HTML. Rok później ukazała się jego groźniejsza wersja – autor wykorzystał kod złośliwego oprogramowania Zeus, który wyciekł w 2011 r. Wykorzystanie elementów kodu Zeusa pozwoliło dodać do Ramnita nowe funkcje, które ostatecznie uczyniły go pełnoprawnym trojanem bankowym.

Obecnie Ramnit posiada dużo więcej funkcji:

    • Wykonywanie ataków Man-in-the-Browser
    • Wykradanie haseł FTP i ciasteczek z przeglądarek
    • Wykorzystywanie DGA (Domain Generation Algorithm) do znalezienia serwera C&C (Command and Control)
    • Ręczne dodawanie wyjątków w programach antywirusowych
    • Eskalacja uprawnień za pomocą podatności CVE-2013-3660 oraz CVE-2014-4113 (privilege escalation)
    • Wykonywanie zrzutów ekranów

    Pomimo zamknięcia trzystu serwerów C&C przez Europol w 2015, Ramnit nadal ma się dobrze. Ostatnio jest dystrybuowany za pomocą exploit-kita RIG EK z seamless gates.

    Działanie

    Główny plik wykonywalny jest spakowany w pewnego rodzaju matrioszce: pierwsza (wierzchnia) warstwa to autorskie pakowanie, z kolei druga to normalny UPX.

    path.png

    Pomimo tego, że plik binarny jest zaszyfrowany, odzyskanie oryginalnej formy nie jest względnie trudne. Wystarczy uruchomić program ładujący w debuggerze, ustawić breakpoint zaraz po wypakowaniu się kodu i wejść do nowo powstałej funkcji. breakpoint1.png

    Jeśli przeanalizujemy kod znajdujący się zaraz za końcem instrukcji odpowiedzialnych za załadowanie pliku wykonywalnego możemy łatwo zauważyć charakterystyczną sygnaturę formatu PE „MZ”:

    breakpoint2.png

    Po odszyfrowaniu pliku wykonywalnego i dekompresji UPX można zauważyć 3 główne funkcje:

    • ApplyExploit
    • CheckBypassed
    • start

    ApplyExploit

    W dużym skrócie jest to funkcja, której zadaniem jest sprawdzenie czy aktualnie zalogowany użytkownik jest administratorem i czy program posiada odpowiednio wysoki poziom Windows Integrity Level. W sytuacji, gdy uprawnienia są zbyt niskie, stara się je podnieść korzystając z CVE-2013-3660 (załatane w MS13-053) oraz CVE-2014-4113 (załatane w MS14-058). Przed uruchomieniem exploita złośliwe oprogramowanie sprawdza czy aktualizacje łatające te podatności są zainstalowane w systemie operacyjnym.

    Jeśli procesowi uda się uzyskać prawa administratora przechowuje wartość „TRUE” w kluczu rejestru HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\jfghdug_ooetvtgk.

    CheckBypassed

    W tej części kodu sprawdzane jest czy funkcji ApplyExploit udało się podnieść uprawnienia. Jeżeli wartość we wspomnianym wyżej kluczu rejestru nie została ustawiona, nadpisuje ją i uruchamia funkcję odpowiedzialną za dodanie wyjątków do Zapory sieciowej Windows.

    start

    Koordynuje działanie funkcji ApplyExploit i CheckBypassed. W przypadku udanego podniesienia poziomu uprawnień tworzy dwa procesy o nazwie „svchost.exe” i uruchamia w nich kod z bibliotek: modules.dll i rmnsoft.dll

    Funkcja CheckBypassed jest wykonywana przed ApplyExploit, więc aby program w pełni się wykonał, musi zostać wykonany drugi raz.

    dll_injects.png

    Konfiguracja statyczna

    Ramnit szyfruje komunikację z C&C za pomocą algorytmu RC4. Klucz wykorzystywany w komunikacji i identyfikator botnetu są dołączane do komunikatu w postaci zakodowanej z użyciem operacji XOR i stałego klucza osadzonego w próbce. Kodowanie pomija pierwszy znak klucza, a sam ciąg przetwarzany jest od końca.

    Kod:

    Wywołanie funkcji xor:

    Podawane w argumentach długości wiadomości są zazwyczaj za długie i musimy polegać na terminacji stringów nullbyte’ami:

    Konfiguracja DGA wydaje się być zawsze deklarowana na początku sekcji data datasection.png

    Mechanizm perzystencji

    Program kopiuje sam siebie do C:\Users\User\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\.

    DGA

    Ramnit generuje listę potencjalnych domen C&C przy użyciu prostego generatora liczb pseudolosowych LCG (linear congruential generator):

    Generowanie domen:

    domain_gen.png

    Kod algorytmu DGA Ramnita zapisany w Pythonie:

    Komunikacja

    Ramnit komunikuje się z serwerami C&C przez port 443, nie używa jednak standardowego HTTPS, lecz swojego własnego protokołu:

    Struktura pakietu:

    Struktura danych zawartych w żądaniu:

    Jeśli więc chcemy wysłać własny pakiet z danymi musimy:

    • zaszyfrować dane większe niż 4 bajty z użyciem rc4 oraz klucza odzyskanego z xora
    • zapakować dane w chunki
    • połączyć wszystkie chunki razem
    • zapakować ostateczny bufor do pakietu

    Przykład ruchu sieciowego:

    403_traffic.png

    Niektóre rozpoznane komendy:

    Command Byte Value Description
    COMMAND_OK 0x01 Server’s response that the command executed successfully
    GET_DNSCHANGER 0x11 Get DNS-changer payload
    GET_INJECTS 0x13 Get web injects
    UPLOAD_COOKIES 0x15 Upload stolen cookies (zip format)
    GET_MODULE 0x21 Get a specific module
    GET_MODULE_LIST 0x23 Get a list of downloadable modules
    REGISTER_BOT 0xe2 Register bot (send 2 md5s)
    UPLOAD_INFO_GET_COMMANDS 0xe8 Upload detailed machine info

    Rejestracja jako bot

    Jeśli program chce się zarejestrować jako nowy bot wysyła rozkaz 0xe2 wraz z dwoma hashami md5 które bazują na strukturach:

    Implementacja w Pythonie:

    Jeśli rejestracja się powiodła i host zwrócił COMMAND_OK, bot wysyła pusty pakiet 0x51.

    Odpowiedź zawiera podpisaną wiadomość za której pomocą klient, korzystając ze zapisanego klucza publicznego może stwierdzić czy nikt się nie podszywa pod serwer.

    Moduły

    Ramnit może wysłać żądanie o listę dostępnych modułów i pobrać poszczególne indywidualnie:

    Antivirus Trusted Module v2.0

    Dodaje wyjątki do określonej listy antywirusów:

    Chrome reinstall module (x64-x86) v0.1

    Odinstalowuje Google Chrome

    I instaluje go ponownie:

    Cookie Grabber v0.2 (no mask)

    Kradnie ciasteczka z różnych lokalizacji systemowych i wysyła je spakowane w archiwum zip do C&C za pomocą rmnsoft.dll.

    Hooker

    Wykorzystywany do wykonywania ataków Man-in-the-Browser i podpinania się pod funkcje związane z HTTP.

    Webinjecty

    Webinjecty są stosunkowo nowym dodatkiem do Ramnita, korzystają jednak ze standardowego formatu używanego przez Zeusa:

    Obfuskacja / Unikanie detekcji

    Ramnit próbuje się ukryć przed Windows Defenderem dodając następujące wartości w rejestrze:

    Instrukcje NOP są dodawane w losowych miejscach. Utrudnia to m.in. stworzenie reguły Yara, która byłaby w stanie odnaleźć kluczowe fragmenty kodu.

    nop-fuscator.png

    Aktualizacja

    Podczas tworzenia tego artykułu natknęliśmy się na wariację Ramnita potocznie zwaną clickbideu. Program ładujący jest kompletnie inny, ale moduł służący do komunikacji (rmnsoft.dll) pozostał taki sam, z paroma małymi zmianami:

    DGA dodaje 3 różne TLD (Top-Level Domain) cyklicznie zamiast jednego:

    Zapis w Pythonie:

    Nowa wersja używa portu 8001 zamiast 443, zauważyliśmy również wersje korzystające z portu 442.

    Dodatkowo, inna wartość („fE4hNy1O”) jest wykorzystywana do wyliczenia drugiego skrótu md5

    Źródła

    IoCs

    Yara:

    Konfiguracje:

    Analizowane próbki

    sha256 loaderów:

    • d290225dde1b18bf68c4c42e06638a61fb336c91a2c4e6dd007bcbe7327fcbae
    • c2cae7d9ef91dfcc1ae8f542e0ac64ce66c526d5a4154241855020612d358ee8
    • 1f3fbca46a599b4f221ead7785606451365db45bbbc537ee0c4d019e8984d106
    • 9d723bb1dc375834ebb907271b83dffab44e98b82fa73da6267037f019e4bc83
    • f3567e2b5fc521987f0dd79aff6f3b1328db8e03fa825c3c030080a8b5819564
    • 7689465ba010537b0c29cf18d32a25962bd1605b717733f5953eb1b1eb0a68c9
    • f98ca50b7d07682ac359b97dd68eb924c4cbd825db72c1a132458e9bb765fa1e
    • 4b00b0ece480267af051e7907458381d8a9e8506c7da67b8a8e1d74d45773d68
    • 6ac47d82134385fa73386ff3cd7b2eb7008da2205b3f5af7b41fab45c63f9046
    • 6a1fc689d2ef32ee6288498f8a875c6dc880d7494f46c05d25d0e1f627984e8e
    • 522e935b91307b8c01e0ea8a724985f5b4e01227a761aeccb63b00f0d964f7e9
    • b3e67b5ee899c53f90c9da772592a4709372192542e1297bbce4929a8e1d5c69
    • 71d92cc6dc9273d162a969960b1021e5f18cf39b2c48043e5c5e49db5a58d955
    • da15c2a89334496910b6d966bf91fa25a1c9526c53796e06d166416abe7cf2f4
    • e4353bda9692581ea9743165dfd843238c23bb92e24b778983de80e90ac650a3

    sha256 modułów:

    • AvTrust:

      • b5a95a9bf419eab69d24b87ec561c657291d944acead30b25d004842db63338a
    • Chrome reinstall:

      • 862e690b2b24ed9f0394b88a6698f92ee6a3d2c511f76794a749611110cf9835
    • CookieGrabber:

      • 6e91c0cb5de7e8bdc5ad47581e07911424cfc784d38cd14dd9da0fa02fb0712c
    • FtpGrabber2:

      • 4a8c064fce1d8cf4017dc95c484fc058594d0e11cb6304cc5b3fed0561223514
    • Hooker:

      • a88151b3bf825e26ded28f94addeada095d2cd13791b2153a9594b26d9cfb85e
    • VNC IFSB:

      • b9cd5010f807caa133f133dad436cb7874d4433e36038c39537297b25efe7887

    domeny DGA (wygenerowane na podstawie seedów z sekcji Konfiguracje):

Atak Petya & Mischa

Data publikacji: 28/06/2017, Kamil Frankowicz

Duet Petya & Mischa jest na rynku ransomware od końcówki 2015 roku. Po sukcesie ataku WannaCry, ostatni wariant został wzbogacony o funkcje propagacji wewnątrz sieci za pomocą exploita EternalBlue, PsExec oraz Windows Management Instrumentation Command-line (WMIC).

Wczorajsza kampania uderzyła przede wszystkim w sieci ukraińskie (dostawca energii Ukrenergo, system monitoringu promieniowania elektrowni w Czarnobylu oraz producent samolotów Antonov) oraz rosyjskie.

W przypadku Polski otrzymaliśmy tylko jedno potwierdzone zgłoszenie, lecz innymi kanałami udało się ustalić kilka zainfekowanych firm.

Czytaj więcej

Mole ransomware: analiza i dekryptor

Data publikacji: 30/05/2017, Jarosław Jedynak

logo

Mole to ransomware, które ma już prawie miesiąc, więc z naszego punktu widzenia (jako analityków) jest już dość stare. Było dystrybuowane głównie przez strony udające dokumenty Worda, namawiające ludzi do pobrania i zainstalowania złośliwego pluginu. Mole jest członkiem rosnącej rodziny CryptoMix, ale algorytm szyfrowania został kompletnie zmieniony (…ponownie).

Zainteresowaliśmy się tą odmianą po tym, jak ofiary skontaktowały się z nami pytając o możliwość deszyfrowania plików. Jako że ta rodzina już kilka razy okazywała się szyfrować pliki w słaby sposób, zdecydowaliśmy się spróbować swoich sił i tym razem. Okazało się to być dobrym pomysłem – nasze badania zakończyły się sukcesem i stworzyliśmy działający dekryptor, do pobrania ze strony https://nomoreransom.cert.pl/static/mole_decryptor.exe.

W reszcie artykułu skupimy się na dokładnych wynikach naszej analizy.

Kampania i zachowanie

Większość ofiar zainfekowała się Mole’em wchodząc na złośliwe strony imitujące dokumenty Worda, które nakłaniały do instalacji dodatkowego pluginu, rzekomo koniecznego do wyświetlenia treści. Na te strony byli kierowani głównie przez e-maile spamowe.

Mechanizm ten został dobrze opisany przez innych badaczy przed nami. Żeby nie kopiować niepotrzebnie ich pracy, dla osób zainteresowanych tematem dynamicznej analizy tego zagrożenia, polecamy następujące opracowania:

Zamiast tego skoncentrujemy się na statycznej analizie kodu i metod szyfrowania.

Analiza statyczna

Co typowe dla wielu rodzin złośliwego oprogramowania, to ransomware nie uruchomi się w większości rosyjskojęzycznych krajów. Dosłownie pierwszą rzeczą robioną przed program jest sprawdzenie ustawień klawiatury i zestawu znaków – jeśli są rosyjskie, proces zostanie natychmiastowo zakończony. W pozostałych przypadkach malware dopisuje się do autorun w rejestrze (mechanizm perzystencji), usuwa shadow copies (po sprawdzeniu wersji systemu Windows) i przechodzi do faktycznego szyfrowania:

Po uruchomieniu ransomware próbuje ominąć UAC i pokazuje fałszywe okienko dialogowe:

access denied image

Mechanizm ten zakłada, że użytkownik w pośpiechu naciśnie „Tak” widząc komunikat o błędzie. Oczywiście w ten sposób tylko przypieczętuje swój los, bo malware uruchomi się wtedy z prawami Administratora i będzie mogło robić co tylko zapragnie.

Ransomware oczywiście nie szyfruje każdego typu plików. Co ciekawe, szyfrowane rozszerzenia są obfuskowane, a nie zapisane bezpośrednio jako napisy w programie. Porównywane sąw środku olbrzymiej funkcji, po transformacji następującym algorytmem:

Lista rozszerzeń szyfrowanych plików:

I jak zwykle, najciekawszą częścią każdego ransomware jest faktyczne szyfrowanie plików. W tym przypadku może zostać podsumowane takim pseudokodem (w połowie zdekompilowany, w połowie napisany ręcznie kod pseudo-C++ – z pominiętymi nieważnymi fragmentami):

Albo w pythonowym pseudokodzie:

Ta metoda nie jest perfekcyjna, ale pominiemy tutaj dokładną kryptoanalizę.

Struktura pliku po zaszyfrowaniu wygląda tak:

Bardzo przypomina Revenge ransomware, przez co podejrzewamy, że Mole jest jego następną wersją. Z drugiej strony, użyty tu został algorytm RC4 zamiast bardziej zaawansowanego (i silniejszego) AES. Nie zmienia to wiele (RC4 ciągle jest wystarczająco silne do celów ransomware), ale nie jesteśmy pewni czemu twórcy zdecydowali się na ten krok wstecz.

IoC

Hashe sha256 z próbek:

Komunikacja sieciowa:

Notatka z żądaniem okupu:

Analiza złośliwego oprogramowania Emotet v4

Data publikacji: 24/05/2017, Paweł Srokosz

Wstęp

Emotet jest modularnym koniem trojańskim, który po raz pierwszy został zaobserwowany w czerwcu 2014 roku przez Trend Micro. Ten rodzaj złośliwego oprogramowania jest ściśle powiązany z innymi rodzajami, takimi jak Geodo, Bugat czy Dridex, które uznawane są za warianty należące do jednej rodziny.

Zadebiutował jako zaawansowany banker – u swych początków wykorzystywany był do wykradania pieniędzy z kont zainfekowanych ofiar. Jego początkowa wersja była wymierzona w klientów niemieckich i austriackich banków. Przejmowanie kont odbywało się z użyciem techniki Man-in-the-Browser, polegającej na przejęciu kontroli nad przeglądarką i przechwytywaniu komunikacji sieciowej przez podsłuchiwanie wywołań odpowiednich funkcji systemowych.

W kolejnej wersji (v2) arsenał Emoteta został uzupełniony o automatyczne wyprowadzanie pieniędzy z kont przy pomocy systemów ATS (Automatic Transfer System) (dokładniejszy opis tej techniki można znaleźć na 20 stronie raportu CERT Polska z 2013 r.). Jest to sposób powszechnie wykorzystywany również w innych bankerach, m.in. w ISFB (Gozi) i Tinbie.

Na początku kwietnia 2017r. zaobserwowaliśmy szeroką kampanię spamową, w której były dystrybuowane fałszywe maile pochodzące rzekomo od firmy kurierskiej DHL. Maile zawierały odnośnik prowadzący do nieznanego wcześniej, nowego wariantu złośliwego oprogramowania znanego pod nazwą Emotet.

W przypadku tej kampanii, zmiany w kodzie oprogramowania, a także w sposobie komunikacji z serwerami Command&Control wskazywały, iż mamy do czynienia z Emotetem w wersji 4. Z tego względu postanowiliśmy szczegółowo przeanalizować to zagrożenie.

Czytaj więcej

SECURE 2017 – Call for Speakers

Data publikacji: 23/05/2017, przemek

Rozpoczynamy poszukiwanie prelegentów na tegoroczną edycję konferencji SECURE.  Jeżeli posiadasz wiedzę na interesujący temat i chciałbyś przedstawić go w gronie światowej klasy ekspertów ds. bezpieczeństwa IT, zachęcamy do zapoznania się z zasadami zgłoszeń poniżej.

SECURE to odbywająca się w dn. 24 – 25 października 2017 w Warszawie konferencja, poświęcona w całości bezpieczeństwu teleinformatycznemu. Adresowana jest do administratorów, członków zespołów bezpieczeństwa oraz praktyków z tej dziedziny. Cechą wyróżniającą SECURE spośród innych konferencji jest przede wszystkim chęć dostarczania rzetelnych i merytorycznych informacji o tym, co naprawdę istotne i aktualne, głównie z pierwszej ręki – od najlepszych praktyków i ekspertów. Zapewnia to swoim wieloletnim doświadczeniem organizator wydarzenia: działający w ramach NASK zespół CERT Polska. Tematyka konferencji koncentruje się przede wszystkim na rozwiązaniach praktycznych, najnowszych trendach w przeciwdziałaniu zagrożeniom oraz istotnych zagadnieniach prawnych. Uczestnicy mają dostęp do najnowszej wiedzy, zyskując przez to możliwość podnoszenia swoich kwalifikacji i cennej wymiany doświadczeń.

Miniony rok pokazał, że wciąż poważnym zagrożeniem są tzw. exploit kity. Ofiarą tego typu złośliwego oprogramowania bywają nie tylko prywatni użytkownicy, ale jak mieliśmy okazję zauważyć – mogą one także zostać użyte w atakach typu wodopój (watering hole) ukierunkowanych w istotne podmioty sektora gospodarczego. Na popularności zyskują także ataki z wykorzystaniem urządzeń IoT, które nieodpowiednio zabezpieczone stanowią atrakcyjny cel dla dalszych działań przestępczych. Nie maleje także zagrożenie coraz nowymi rodzinami ransomware’u, również dotykającego systemów przemysłowych czy embedded. Jak radzić sobie z powyższymi zagrożeniami, a także wszystkimi tymi, które ze względu na swój dobrze przemyślany i ukierunkowany charakter wciąż pozostają trudne do wykrycia? Na te i inne pytania będziemy poszukiwali odpowiedzi w trakcie SECURE 2017.

Jeśli chciałbyś podzielić się z innymi wiedzą z tych tematów, lub czujesz się ekspertem w jednej z dziedzin wymienionych poniżej, kierujemy niniejsze zaproszenie właśnie do Ciebie.

SECURE 2017 odbędzie się w dniach 24-25 października, w centrum konferencyjnym Airport Hotel Okęcie w Warszawie. Tematykę konferencji wyznaczać będą trzy główne nurty:

    • techniczny – ze szczególnym uwzględnieniem nowatorskich i praktycznych rozwiązań
    • organizacyjny – ze szczególnym naciskiem na dostrzeganie nowych trendów w zagrożeniach
    • prawny – ze szczególnym naciskiem na rzeczywiste możliwości ścigania sprawców przestępstw

Prezentacje

Poszukujemy osób gotowych do wygłoszenia prezentacji, która porusza przynajmniej jeden z poniższych tematów

    • ewolucja i analiza złośliwego oprogramowania (wirusy, trojany, robaki, botnety, itp)
    • wykrywanie włamań
    • nowatorskie zastosowania systemów honeypot i systemów sandbox
    • ataki APT
    • monitorowanie bezpieczeństwa w sieci
    • bezpieczeństwo smartfonów i aplikacji mobilnych
    • techniki wizualizacji zdarzeń bezpieczeństwa
    • bezpieczeństwo systemów SCADA i ataki na sieci przemysłowe
    • bezpieczeństwo IPv6
    • cloud security
    • wczesne ostrzeganie o zagrożeniach w sieciach teleinformatycznych
    • obsługa incydentów bezpieczeństwa
    • standardy wymiany informacji dotyczących bezpieczeństwa
    • ataki DDoS i techniki obrony
    • skuteczność narzędzi w zwalczaniu nowych technik ataków
    • narzędzia open source w bezpieczeństwie
    • ochrona tożsamości w sieci
    • prywatność, poufność i anonimowość w sieci
    • steganografia w sieciach teleinformatycznych
    • czynnik ludzki w bezpieczeństwie
    • prawo polskie i europejskie w odniesieniu do bezpieczeństwa teleinformatycznego
    • działania organów ścigania w zakresie zwalczania przestępczości teleinformatycznej
    • projekty naukowe z dziedziny bezpieczeństwa teleinformatycznego

Ważne informacje o prezentacjach

    • zgłoszenia należy przesyłać wyłącznie przez stronę https://easychair.org/conferences/?conf=secure2017
    • do zgłoszenia wymagane jest przygotowanie tytułu prezentacji, krótkiego abstraktu oraz informacji o autorze
    • pytania dotyczące procesu zgłaszania i selekcji prezentacji należy zgłaszać na adres [email protected]
    • przewidywany czas na prezentację to 45 minut, w tym czas na pytania i odpowiedzi
    • prezentacja nie może mieć charakteru reklamowego
    • materiały należy nadsyłać w formatach OpenOffice, Microsoft Office lub PDF
    • prezentacje zostaną udostępnione uczestnikom konferencji w formie elektronicznej
    • organizatorzy zapewniają bezpłatny, pełny udział w całej konferencji (nie dotyczy warsztatów) oraz imprezie wieczornej w dn. 24 października 2017 r.; organizatorzy nie pokrywają kosztów podróży i zakwaterowania

Ważne terminy

    • nadsyłanie zgłoszeń – do 10 lipca 2017 r. 17 lipca 2017 r.
    • wybór prezentacji – do 7 sierpnia 2017 r.
    • nadsyłanie prezentacji – do 9 października 2017 r.

Krótkie wystąpienia

Zapraszamy uczestników konferencji SECURE do dzielenia się na gorąco swoimi ideami, pytaniami oraz problemami. Podczas jednego z bloków konferencji zaprosimy do przedstawiania krótkich wystąpień, dotyczących dowolnego tematu związanego z bezpieczeństwem teleinformatycznym.

Ważne informacje o krótkich wystąpieniach

    • maksymalny czas jednego wystąpienia to 5 minut. Łączny czas na wszystkie wystąpienia będzie ograniczony.
    • zgłoszenia chęci krótkiego wystąpienia można dokonać w dowolnym momencie po zarejestrowaniu się jako uczestnik konferencji, także w trakcie jej trwania.
    • organizatorzy zastrzegają sobie prawo ostatecznej decyzji o dopuszczeniu do wystąpienia

WannaCry Ransomware

Data publikacji: 15/05/2017, Kamil Frankowicz

WannaCry (inne nazwy WCry, WannaCrypt, WanaCrypt0r) jest bardzo skutecznym w swoim działaniu złośliwym oprogramowaniem typu ransomware, które 12 maja swoim zasięgiem objęło ponad 100 krajów i 200 tysięcy komputerów z systemem operacyjnym Windows.

Ofiarami padły takie instytucje jak: brytyjska służba zdrowia, Nissan, Telefonica, FedEx, rosyjskie banki i koleje państwowe, indyjskie linie lotnicze Shaheen Airlines oraz włoskie uniwersytety. Kampania WannaCry mimo ogromnego zasięgu nie odniosła sukcesu komercyjnego – zdecydowało się zapłacić około 200 osób, a całkowita suma wpłat wynosi około 50 tysięcy dolarów.

Czytaj więcej

Krajobraz bezpieczeństwa polskiego Internetu w 2016 roku

Data publikacji: 20/04/2017, piotrb

Okładka raportu 2015Już po raz 21. publikujemy raport roczny z działalności naszego zespołu. Tak jak poprzednio staramy się przy tej okazji przedstawić stan bezpieczeństwa polskiej części Internetu, patrząc z perspektywy obsługiwanych przez nas incydentów, działalności badawczej oraz projektów, w których bierzemy udział.
Stało się już zwyczajem, że raport otwiera kalendarium najważniejszych, według nas, wydarzeń na świecie oraz w Polsce związanych z bezpieczeństwem komputerowym. W dalszej części prezentujemy projekty, w których braliśmy czynny udział, takie jak CyberROAD i SISSDEN, oraz wydarzenia, w których uczestniczyliśmy.
Przedstawiając zagrożenia i ataki w skali globalnej staraliśmy wybrać te, które są według nas bardzo ważne lub bezpośrednio dotykają także naszego kraju, czego przykładem jest opis botnetu Mirai czy operacja Avalanche.
W części raportu skupiającej się na polskim fragmencie Internetu szczegółowo opisaliśmy najważniejsze rodziny złośliwego oprogramowania atakującego użytkowników w Polsce, czyli m.in. ISFB, Nymaim i GMBot. Stosunkowo dużo miejsca poświęciliśmy na ransomware, który niestety w 2016 roku był dużym problemem tak w Polsce, jak i na świecie.
Na końcu zamieściliśmy integralną część raportu ze statystykami przedstawiającymi liczby zainfekowanych maszyn, serwerów z podatnymi usługami oraz dane na temat phishingu. Zapraszamy do lektury raportu!

12345...1020...