Metody wykradania haseł przez infostealery

data aktualizacji

Jedną z najpopularniejszych funkcjonalności złośliwego oprogramowania jest wykradanie danych.

Z tego powodu wyłoniła się grupa oprogramowania temu dedykowana – infostealery. 

Programy te mają na celu wykradanie różnych informacji o użytkownikach - głównie danych do logowania, ciasteczek i numerów kart płatniczych. Dane pozyskane z tych programów są często sprzedawane na tzw. „podziemnych marketach”, gdzie przestępcy kupują dane do konkretnych platform – tych, z których potrafią wygenerować zysk (m.in. dane do kont bankowych i innych serwisów płatniczych, konta do serwisów społecznościowych, skrzynek pocztowych).

Dystrybucja

Infostealery są dystrybuowane poprzez klasyczne metody – malspam (załączniki do wiadomości e- mail), cracki do gier i programów czy różnego rodzaju narzędzia do oszukiwania/wspomagania w  grach online (potocznie „hacki”) na stronach warezowych, torrentach czy nawet  w social mediach. Należy zawsze pamiętać, że nawet jeśli oprogramowanie z niepewnych źródeł działa, to nigdy nie ma pewności, czy w  tle nie zostało uruchomione złośliwe oprogramowanie.

zdjecie_1_

Tego typu filmy w mediach społecznościowych mają nas zachęcać do pobierania i uruchamiania programów, które są zamieszczane w linkach znajdujących się w opisie. 

zdjecie_2_

Fragment kodu programu reklamowanego na poprzednim obrazku. Program wykrada m.in. pliki zawierające w nazwie słowo kluczowe „wallet”.

zdjecie_3_

Przykład malspamu. W tym przypadku załącznikiem jest plik .zip, zawierający obraz .iso, w którym jest plik wykonywalny .exe z oprogramowaniem wykradającym dane LokiBot1.

Metody wykradania danych

Najczęściej spotykane jest bezpośrednie wyciąganie danych z plików na dysku zawierających zapisane przez użytkownika wcześniej hasła. Mniej popularne jest przechwytywanie parametrów przekazywanych funkcjom (Function hooking) czy też przechwytywanie systemowych zdarzeń klawiatury (Keyboard hooks).

Złośliwe oprogramowanie często nie ogranicza się do jednej z metod, ale łączy kilka, co daje lepsze rezultaty.

Hasła zapisane na dysku, ciasteczka i dane autouzupełniania

Przeglądarki mają wbudowane menadżery haseł - umożliwiające zapamiętywanie haseł, w celu łatwiejszego logowania się do witryn w przyszłości.

Aby się później do nich zalogować, dane te muszą być gdzieś zapisane - w tym przypadku przechowywane są na dysku, często w plikach sqlite.

Złośliwe programy wyszukują, otwierają, a następnie wyciągają dane do logowania z tych plików.

Dla przestępców cenne są także pliki cookies – nie zawierają one haseł, ale otrzymane od serwera dane do autoryzacji. W zależności od serwisu istnieje szansa, że uda się przestepcy za ich pomocą zalogować, nie znając hasła – metoda ta nazywana jest „Session hijacking” 2.

Pomimo swojej prostoty jest dość skuteczna i często używana przez złośliwe oprogramowanie.

Zaletami są łatwość implementacji i przejmowanie haseł używanych w przeszłości.

Nie zawsze jednak użytkownik decyduje się zapisać dane logowania – w takim przypadku ta metoda nie zadziała.

Warto wskazać, że nie każdy serwis wspiera zapisywanie haseł w przeglądarkach.

Ten schemat jest bardzo popularny wśród złośliwego oprogramowania - stosowany m.in. przez  AgentTesla, RedLine stealer3, Raccoon4, FormBook5, Lokibot.

zdjecie_4_
Budowanie listy lokalizacji do przeszukiwania pod kątem ciasteczek przez AgentTesla.
Keyboard hooks
Drugą bardzo popularną i łatwą do implementacji są "keyboard hooks" - w wolnym tłumaczeniu "haki na klawiaturę".
Za pomocą wywołań systemowych, można dodać funkcje z napisanego przez nas programu do obsługi zdarzeń klawiatury - np. wciśnięcia lub puszczenia przycisku klawiatury.
Litery z kolejnych zdarzeń można łączyć w łańcuchy znaków, które mogą być potencjalnie używane jako hasła.
Jedną z wad jest pojawiający się tu problem początku i końca - nie wiemy dokładnie, kiedy  rozpoczyna i kończy się wpisywanie haseł. Dodatkowo możliwe jest przejmowanie tylko danych wpisywanych od momentu infekcji.
Dużą zaletą jest to, że mamy szansę przejąć dane, których użytkownik nie zdecyduje się na zapisanie.
Można tego dokonać używając funkcji SetWindowsHookEx i CallNextHookEx (więcej na ten temat https://docs.microsoft.com/en-us/windows/win32/winmsg/about-hooks).
Tej metody używają m.in. AgentTesla, njRat6.
zdjecie_5_
AgentTesla ustawiający funkcję do przechwytywania zdarzeń klawiatury. Pierwszy parametr ma wartość 13 - co oznacza "WH_KEYBOARD_LL" - przechwytywanie zdarzeń wejścia klawiatury.

Function hooking
Function hooks (w wolnym tłumaczeniu "haki na funkcjach") polega na przekazaniu wykonywania kodu do innego miejsca poprzez podmianę (patch) kilku instrukcji w funkcji na skok (jmp) w zadeklarowane przez nas wcześniej miejsce.
Cel skoku musi być w przestrzeni adresowej aktualnego procesu.
Po przejęciu wykonywania funkcji, możliwe jest podejrzenie i podmiana parametrów  zwracanych wartości funkcji – dzięki temu można np. wstrzyknąć kod do przeglądarek wykradający dane do  logowania czy przejmować naciśnięcia klawiszy z poziomu danej aplikacji bez użycia keyboard hooks.
Najczęściej używa się do tego charakterystycznych wywołań systemowych do manipulacji innym procesem – VirtualAllocEx, WriteProcessMemory, CreateRemoteThread i ResumeThread 7.
Alternatywą jest użycie paczki oprogramowania Microsoft Detours (https://www.microsoft.com/en-us/research/project/detours/)8.
Metoda używana m.in. przez Trickbot9, FormBook.
zdjecie_6_
Przykład hooka na funkcji ReadFile w bibliotece kernelbase.dll
Jak się przed tym chronić?
W przypadku, gdy staniemy się ofiarą złośliwego oprogramowania, niewiele może nam pomóc – nie  zawsze programy antywirusowe są w stanie wykryć nieznane wcześniej próbki.
Dlatego najważniejsze są działania zapobiegające infekcji – należy przede wszystkim uważać na  wszelkiego rodzaju podejrzane pliki w załącznikach, w szczególności, gdy rozszerzenie nie  jest  nam znane.
Należy także starać się utrzymywać aktualny system operacyjny i programy, których używamy.

 ____________________

1 Zob. https://www.infoblox.com/wp-content/uploads/infoblox-whitepaper-deep-analysis-of-a-recent-lokibot-attack.pdf

2 Zob. https://us.norton.com/internetsecurity-id-theft-session-hijacking.html  

3 Zob. https://cyber-anubis.github.io/malware%20analysis/redline/

4 Zob. https://blog.cyble.com/2021/10/21/raccoon-stealer-under-the-lens-a-deep-dive-analysis/

5 Zob. https://www.fortinet.com/blog/threat-research/deep-analysis-formbook-new-variant-delivered-in-phishing-campaign-part-iii

6 Zob. https://cybergeeks.tech/just-another-analysis-of-the-njrat-malware-a-step-by-step-approach/

7 Zob. https://www.sentinelone.com/labs/how-trickbot-malware-hooking-engine-targets-windows-10-browsers/

8 Zob. M. Sikorski, A. Honig „Practical Malware Analysis”, 2012, s.262

9 Zob. https://securelist.com/trickbot-module-descriptions/104603/