Frekwencja nie powiodła się: wystawmy AgentaTeslę na działanie czystej wody. Część 2

Frekwencja nie powiodła się: wystawmy AgentaTeslę na działanie czystej wody. Część 2
Kontynuujemy serię artykułów poświęconych analizie złośliwego oprogramowania. W pierwszy Częściowo opowiedzieliśmy, jak Ilya Pomerantsev, specjalista ds. analizy złośliwego oprogramowania w CERT Group-IB, przeprowadził szczegółową analizę pliku otrzymanego pocztą od jednej z europejskich firm i odkrył tam oprogramowanie szpiegujące Agent Tesla. W tym artykule Ilya przedstawia wyniki szczegółowej analizy modułu głównego Agent Tesla.

Agent Tesla to modułowe oprogramowanie szpiegowskie dystrybuowane w modelu złośliwego oprogramowania jako usługi pod przykrywką legalnego produktu rejestrującego naciśnięcia klawiszy. Agent Tesla potrafi wyodrębniać i przesyłać dane uwierzytelniające użytkowników z przeglądarek, klientów poczty e-mail i klientów FTP na serwer do atakujących, rejestrując dane w schowku i przechwytując ekran urządzenia. W momencie analizy oficjalna strona deweloperów była niedostępna.

Plik konfiguracyjny

Poniższa tabela zawiera listę funkcji odnoszących się do używanego przykładu:

Opis Wartość
Flaga użycia KeyLoggera prawdziwy
Flaga użycia ScreenLoggera fałszywy
Interwał wysyłania dziennika KeyLoggera w minutach 20
Interwał wysyłania dziennika ScreenLoggera w minutach 20
Flaga obsługi klawisza Backspace. Fałsz – tylko logowanie. True – kasuje poprzedni klucz fałszywy
Typ CNC. Opcje: smtp, webpanel, ftp SMTP
Flaga aktywacji wątku do kończenia procesów z listy „%filter_list%” fałszywy
Flaga wyłączenia kontroli konta użytkownika fałszywy
Flaga wyłączenia menedżera zadań fałszywy
Flaga wyłączenia CMD fałszywy
Uruchom flagę wyłączającą okno fałszywy
Flaga wyłączenia przeglądarki rejestru fałszywy
Wyłącz flagę punktów przywracania systemu prawdziwy
Flaga wyłączenia panelu sterowania fałszywy
Flaga wyłączenia MSCONFIG fałszywy
Oznacz, aby wyłączyć menu kontekstowe w Eksploratorze fałszywy
Przypinana flaga fałszywy
Ścieżka do skopiowania modułu głównego podczas przypinania go do systemu %folder startowy% %folderins%%insname%
Flaga do ustawienia atrybutów „System” i „Ukryty” dla modułu głównego przypisanego do systemu fałszywy
Oznacz, aby wykonać ponowne uruchomienie po przypięciu do systemu fałszywy
Flaga przeniesienia modułu głównego do folderu tymczasowego fałszywy
Flaga obejścia UAC fałszywy
Format daty i godziny logowania rrrr-MM-dd GG:mm:ss
Flaga za użycie filtra programu dla KeyLoggera prawdziwy
Rodzaj filtrowania programu.
1 – w tytułach okien wyszukiwana jest nazwa programu
2 – w nazwie procesu okna wyszukiwana jest nazwa programu
1
Filtr programu "Facebook"
"świergot"
„Gmail”
"instagram"
"film"
"skype"
"porno"
"włamać się"
„Whatsapp”
"niezgoda"

Podłączenie modułu głównego do systemu

Jeżeli ustawiona jest odpowiednia flaga, moduł główny jest kopiowany do ścieżki określonej w konfiguracji jako ścieżka do przypisania do systemu.

W zależności od wartości z konfiguracji plik otrzymuje atrybuty „Ukryty” i „System”.
Autorun jest świadczony przez dwa oddziały rejestru:

  • Oprogramowanie HKCUMicrosoftWindowsCurrentVersionRun%insregname%
  • HKCUSOFTWAREMicrosoftWindowsCurrentVersionExplorerStartupApprovedRun %insregname%

Ponieważ bootloader włącza się do procesu RegAsm, ustawienie trwałej flagi dla modułu głównego prowadzi do dość interesujących konsekwencji. Zamiast się kopiować, szkodliwe oprogramowanie dołączało oryginalny plik do systemu RegAsm.exe, podczas którego wykonano iniekcję.

Frekwencja nie powiodła się: wystawmy AgentaTeslę na działanie czystej wody. Część 2
Frekwencja nie powiodła się: wystawmy AgentaTeslę na działanie czystej wody. Część 2

Interakcja z C&C

Niezależnie od zastosowanej metody komunikacja sieciowa rozpoczyna się od pozyskania zewnętrznego adresu IP ofiary korzystającej z zasobu czek[.]amazonaws[.]com/.
Poniżej opisano metody interakcji sieciowej prezentowane w oprogramowaniu.

panel internetowy

Interakcja odbywa się poprzez protokół HTTP. Szkodnik wykonuje żądanie POST z następującymi nagłówkami:

  • User-Agent: Mozilla/5.0 (Windows U Windows NT 6.1 ru rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)
  • Połączenie: Keep-Alive
  • Typ treści: application/x-www-form-urlencoded

Adres serwera jest określony przez wartość %PostURL%. Zaszyfrowana wiadomość jest wysyłana w parametrze „P”. Mechanizm szyfrowania opisano w pkt „Algorytmy szyfrowania” (metoda 2).

Przesłana wiadomość wygląda następująco:

type={0}nhwid={1}ntime={2}npcname={3}nlogdata={4}nscreen={5}nipadd={6}nwebcam_link={7}nclient={8}nlink={9}nusername={10}npassword={11}nscreen_link={12}

Parametr rodzaj wskazuje typ wiadomości:

Frekwencja nie powiodła się: wystawmy AgentaTeslę na działanie czystej wody. Część 2
hwid — skrót MD5 jest rejestrowany na podstawie wartości numeru seryjnego płyty głównej i identyfikatora procesora. Najprawdopodobniej używany jako identyfikator użytkownika.
czas — służy do przesyłania aktualnego czasu i daty.
nazwa komputera - zdefiniowana jako /.
dane dziennika — dane dziennika.

Podczas przesyłania haseł komunikat wygląda następująco:

type={0}nhwid={1}ntime={2}npcname={3}nlogdata={4}nscreen={5}nipadd={6}nwebcam_link={7}nscreen_link={8}n[passwords]

Poniżej znajdują się opisy skradzionych danych w formacie nclient[]={0}nlink[]={1}nazwa_użytkownika[]={2}nhasło[]={3}.

SMTP

Interakcja odbywa się poprzez protokół SMTP. Przesyłany list jest w formacie HTML. Parametr Tułów ma postać:

Frekwencja nie powiodła się: wystawmy AgentaTeslę na działanie czystej wody. Część 2
Nagłówek listu ma ogólną postać: / . Treść listu oraz jego załączniki nie są szyfrowane.

Frekwencja nie powiodła się: wystawmy AgentaTeslę na działanie czystej wody. Część 2
Interakcja odbywa się poprzez protokół FTP. Plik o nazwie zostanie przesłany na podany serwer _-_.html. Zawartość pliku nie jest szyfrowana.

Frekwencja nie powiodła się: wystawmy AgentaTeslę na działanie czystej wody. Część 2

Algorytmy szyfrowania

W tym przypadku zastosowano następujące metody szyfrowania:

Metoda 1

Ta metoda służy do szyfrowania ciągów znaków w module głównym. Algorytm używany do szyfrowania to AES.

Dane wejściowe to sześciocyfrowa liczba dziesiętna. Dokonuje się na nim następującej transformacji:

f(x) = (((x >> 2 - 31059) ^ 6380) - 1363) >> 3

Wynikowa wartość jest indeksem osadzonej tablicy danych.

Każdy element tablicy jest sekwencją DWORD. Podczas łączenia DWORD uzyskuje się tablicę bajtów: pierwsze 32 bajty to klucz szyfrowania, następnie 16 bajtów wektora inicjującego, a pozostałe bajty to zaszyfrowane dane.

Metoda 2

Zastosowany algorytm 3DES w trybie EBC z dopełnieniem całych bajtów (PKCS7).

Klucz jest określony przez parametr %urlkey%jednak szyfrowanie wykorzystuje skrót MD5.

Złośliwa funkcjonalność

Badana próbka wykorzystuje następujące programy do implementacji swojej szkodliwej funkcji:

rejestrator kluczy

Jeśli istnieje odpowiednia flaga złośliwego oprogramowania korzystająca z funkcji WinAPI UstawWindowsHookEx przypisuje własną procedurę obsługi zdarzeń naciśnięcia klawisza na klawiaturze. Funkcja obsługi rozpoczyna się od pobrania tytułu aktywnego okna.

Jeżeli ustawiona jest flaga filtrowania aplikacji, filtrowanie odbywa się w zależności od podanego typu:

  1. nazwa programu jest wyszukiwana w tytułach okien
  2. nazwa programu jest sprawdzana w nazwie procesu okna

Następnie do logu dodawany jest rekord z informacją o aktywnym oknie w formacie:

Frekwencja nie powiodła się: wystawmy AgentaTeslę na działanie czystej wody. Część 2
Następnie zapisywana jest informacja o naciśniętym klawiszu:

Klucz Rekord
Backspace W zależności od flagi przetwarzania klawisza Backspace: False – {BACK}
True – kasuje poprzedni klucz
DUŻE LITERY {DUŻE LITERY}
ESC {WYJŚCIE}
PageUp {Strona w górę}
Pobierz
DELETE {USUŃ}
" "
F5 {F5}
& &
F10 {F10}
TAB {PATKA}
< <
> >
luka
F8 {F8}
F12 {F12}
F9 {F9}
ALT + TAB {ALT+TAB}
KONIEC {KONIEC}
F4 {F4}
F2 {F2}
CTRL {KLAWISZ KONTROLNY}
F6 {F6}
Prawa
Up &uarr;
F1 {F1}
Lewa &larr;
PageDown {Strona w dół}
wstawka {Wstawić}
Win {Wygrać}
NumLock {NumLock}
F11 {F11}
F3 {F3}
HOME {DOM}
ENTER {WCHODZIĆ}
ALT + F4 {ALT+F4}
F7 {F7}
Inny klucz Znak jest pisany wielkimi lub małymi literami, w zależności od położenia klawiszy CapsLock i Shift

Z określoną częstotliwością zebrany log przesyłany jest na serwer. Jeżeli przesyłanie nie powiedzie się, dziennik zostanie zapisany w pliku %TEMP%log.tmp w formacie:

Frekwencja nie powiodła się: wystawmy AgentaTeslę na działanie czystej wody. Część 2
Po uruchomieniu timera plik zostanie przesłany na serwer.

Rejestrator ekranu

Z określoną częstotliwością szkodliwe oprogramowanie tworzy zrzut ekranu w formacie Jpeg ze znaczeniem Jakość równy 50 i zapisuje go do pliku %APPDATA %.jpg. Po przesłaniu plik zostanie usunięty.

rejestrator schowka

Jeżeli ustawiona jest odpowiednia flaga, w przechwyconym tekście dokonywane są zamiany zgodnie z poniższą tabelą.

Frekwencja nie powiodła się: wystawmy AgentaTeslę na działanie czystej wody. Część 2
Następnie do dziennika wstawiany jest tekst:

Frekwencja nie powiodła się: wystawmy AgentaTeslę na działanie czystej wody. Część 2

Złodziej haseł

Szkodnik może pobierać hasła z następujących aplikacji:

Przeglądarki Klienci poczty e-mail Klienci FTP
Chrom Outlook fileZilla
Firefox Thunderbird WS_FTP
IE/krawędź foxmail WinSCP
Safari Opera Mail CoreFTP
Przeglądarka Opera IncrediMail Nawigator FTP
Yandex Pokomail FlashFXP
Comodo Eudora SmartFTP
ChromePlus Nietoperz Dowódca FTP
chrom Postbox
Pochodnia ClawsMail
7Star
Amigo
Odważne oprogramowanie Klienci Jabbera Klienci VPN
Przeglądarka Cent psi/psi+ Otwórz VPN
Chedot
CocCoc
Przeglądarka elementów Menedżery pobierania
Epicka przeglądarka prywatności Internet Download Manager
Kometa JDownloader
orbita
Sputnik
uCozMedia
Vivaldi
SeaMonkey
Przeglądarka Flock
UC Browser
Czarny Jastrząb
Cyberlis
K-Meleon
lodowy kot
Icedragon
Blady księżyc
Lis Wodny
Przeglądarka Falkon

Sprzeciw wobec analizy dynamicznej

  • Korzystanie z funkcji sen. Umożliwia ominięcie niektórych piaskownic po przekroczeniu limitu czasu
  • Zniszczenie wątku Strefa.Identyfikator. Pozwala ukryć fakt pobrania pliku z Internetu
  • W parametrze %lista_filtrów% określa listę procesów, które złośliwe oprogramowanie będzie kończyć w odstępach jednej sekundy
  • Odłączanie UAC
  • Wyłączenie menedżera zadań
  • Odłączanie CMD
  • Wyłączenie okna «Wypołowić»
  • Wyłączanie Panelu sterowania
  • Wyłączanie narzędzia RegEdit
  • Wyłączanie punktów przywracania systemu
  • Wyłącz menu kontekstowe w Eksploratorze
  • Odłączanie MSCONFIG
  • Objazd UAC:

Nieaktywne funkcje modułu głównego

Podczas analizy modułu głównego zidentyfikowano funkcje odpowiedzialne za rozprzestrzenianie się w sieci i śledzenie pozycji myszy.

Robak

Zdarzenia związane z podłączeniem nośników wymiennych są monitorowane w osobnym wątku. Po podłączeniu złośliwe oprogramowanie o tej nazwie jest kopiowane do katalogu głównego systemu plików scr.exe, po czym wyszukuje pliki z rozszerzeniem lnk. Zespół wszystkich lnk zmiany w cmd.exe /c start scr.exe&start i zakończ.

Każdy katalog w katalogu głównym nośnika ma przypisany atrybut "Ukryty" i tworzony jest plik z rozszerzeniem lnk z nazwą ukrytego katalogu i poleceniem cmd.exe /c start scr.exe&explorer /root,%CD%” i zakończ.

Śledzenie myszy

Metoda przechwytywania jest podobna do tej stosowanej w przypadku klawiatury. Ta funkcjonalność jest wciąż w fazie rozwoju.

Aktywność pliku

Ścieżka Opis
%Temp%temp.tmp Zawiera licznik prób obejścia UAC
%folder startowy%%folderins%%insname% Ścieżka do przypisania do systemu HPE
%Temp%tmpG{Aktualny czas w milisekundach}.tmp Ścieżka do kopii zapasowej modułu głównego
%Temp%log.tmp Plik dziennika
%AppData%{Dowolna sekwencja 10 znaków}.jpeg Zrzuty ekranu
C:UsersPublic{Dowolna sekwencja 10 znaków}.vbs Ścieżka do pliku vbs, którego bootloader może użyć do podłączenia do systemu
%Temp%{Nazwa folderu niestandardowego}{Nazwa pliku} Ścieżka używana przez program ładujący do podłączenia się do systemu

Profil atakującego

Dzięki zakodowanym na stałe danym uwierzytelniającym udało nam się uzyskać dostęp do centrum dowodzenia.

Frekwencja nie powiodła się: wystawmy AgentaTeslę na działanie czystej wody. Część 2
Pozwoliło nam to zidentyfikować ostateczny e-mail atakujących:

junaid[.]in***@gmail[.]com.

Nazwa domeny centrum dowodzenia jest zarejestrowana na poczcie sg***@gmail[.]com.

wniosek

Podczas szczegółowej analizy złośliwego oprogramowania użytego w ataku udało nam się ustalić jego funkcjonalność i uzyskać najpełniejszą listę wskaźników naruszenia istotnych w tym przypadku. Zrozumienie mechanizmów interakcji sieciowej pomiędzy szkodliwymi programami pozwoliło na sformułowanie zaleceń dotyczących dostosowania działania narzędzi bezpieczeństwa informacji, a także napisanie stabilnych reguł IDS.

Główne niebezpieczeństwo Agent Tesla podobnie jak DataStealer, ponieważ nie musi ingerować w system ani czekać na polecenie sterujące, aby wykonać swoje zadania. Po wejściu na maszynę natychmiast rozpoczyna zbieranie prywatnych informacji i przesyła je do CnC. To agresywne zachowanie jest pod pewnymi względami podobne do zachowania oprogramowania ransomware, z tą tylko różnicą, że to drugie nie wymaga nawet połączenia sieciowego. Jeśli natkniesz się na tę rodzinę, po oczyszczeniu zainfekowanego systemu z samego szkodliwego oprogramowania, zdecydowanie powinieneś zmienić wszystkie hasła, które przynajmniej teoretycznie mogłyby zostać zapisane w jednej z wymienionych powyżej aplikacji.

Patrząc w przyszłość, załóżmy, że napastnicy wysyłają Agent Tesla, początkowy program ładujący jest zmieniany bardzo często. Dzięki temu w momencie ataku pozostaniesz niezauważony przez skanery statyczne i analizatory heurystyczne. A tendencja tej rodziny do natychmiastowego rozpoczynania swojej działalności sprawia, że ​​monitory systemowe są bezużyteczne. Najlepszym sposobem na walkę z AgentemTeslą jest wstępna analiza w piaskownicy.

W trzecim artykule z tej serii przyjrzymy się innym używanym programom ładującym Agent Tesla, a także zbadać proces ich półautomatycznego rozpakowywania. Nie przegap!

Haszysz

SHA1
A8C2765B3D655BA23886D663D22BDD8EF6E8E894
8010CC2AF398F9F951555F7D481CE13DF60BBECF
79B445DE923C92BF378B19D12A309C0E9C5851BF
15839B7AB0417FA35F2858722F0BD47BDF840D62
1C981EF3EEA8548A30E8D7BF8D0D61F9224288DD

C&C

URL
sina-c0m[.]icu
smtp[.]sina-c0m[.]icu

RegKey

rejestr
HKCUSoftwareMicrosoftWindowsCurrentVersionRun{nazwa skryptu}
HKCUSoftwareMicrosoftWindowsCurrentVersionRun%insregname%
HKCUSOFTWAREMicrosoftWindowsCurrentVersionExplorerStartupApprovedRun%insregname%

Mutex

Nie ma żadnych wskaźników.

Akta

Aktywność pliku
%Temp%temp.tmp
%folder startowy%%folderins%%insname%
%Temp%tmpG{Aktualny czas w milisekundach}.tmp
%Temp%log.tmp
%AppData%{Dowolna sekwencja 10 znaków}.jpeg
C:UsersPublic{Dowolna sekwencja 10 znaków}.vbs
%Temp%{Nazwa folderu niestandardowego}{Nazwa pliku}

Informacje o próbkach

Imię Autor nieznany
MD5 F7722DD8660B261EA13B710062B59C43
SHA1 15839B7AB0417FA35F2858722F0BD47BDF840D62
SHA256 41DC0D5459F25E2FDCF8797948A7B315D3CB0753
98D808D1772CACCC726AF6E9
Rodzaj Nieruchomości PE (.NET)
Rozmiar 327680
Oryginalne imię AZZRIDKGGSLTYFUUBCCRRCUMRKTOXFVPDKGAGPUZI_20190701133545943.exe
Data stempla 01.07.2019
kompilator VB.NET

Imię IELibrary.dll
MD5 BFB160A89F4A607A60464631ED3ED9FD
SHA1 1C981EF3EEA8548A30E8D7BF8D0D61F9224288DD
SHA256 D55800A825792F55999ABDAD199DFA54F3184417
215A298910F2C12CD9CC31EE
Rodzaj Nieruchomości PE (.NET DLL)
Rozmiar 16896
Oryginalne imię IELibrary.dll
Data stempla 11.10.2016
kompilator Linker Microsoftu (48.0*)

Źródło: www.habr.com

Dodaj komentarz