Kontynuujemy serię artykułów poświęconych analizie złośliwego oprogramowania. W
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ę.
Interakcja z C&C
Niezależnie od zastosowanej metody komunikacja sieciowa rozpoczyna się od pozyskania zewnętrznego adresu IP ofiary korzystającej z zasobu
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:
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ć:
Nagłówek listu ma ogólną postać: / . Treść listu oraz jego załączniki nie są szyfrowane.
Interakcja odbywa się poprzez protokół FTP. Plik o nazwie zostanie przesłany na podany serwer _-_.html. Zawartość pliku nie jest szyfrowana.
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:
- nazwa programu jest wyszukiwana w tytułach okien
- nazwa programu jest sprawdzana w nazwie procesu okna
Następnie do logu dodawany jest rekord z informacją o aktywnym oknie w formacie:
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 | ↑ |
F1 | {F1} |
Lewa | ← |
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:
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ą.
Następnie do dziennika wstawiany jest tekst:
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.
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