hamburger

(jeśli zgłaszasz przypadek phishingu, zapisz mail (przesuń go z programu pocztowego na pulpit komputera lub wybierz opcję plik/zapisz jako), a następnie załącz)

Podejrzany SMS prześlij na nr 508 700 900

Jeśli zgłoszenie dotyczy bezpieczeństwa dzieci, zgłoś je również pod http://www.dyzurnet.pl
@CERT_OPL

Phishing na Steamie: jak cyberprzestępcy przejmują konta graczy CS2

Wszyscy gracze CS2 mają kolejny powód, by dwa razy sprawdzać, gdzie wpisują dane logowania do platformy Steam. Przeanalizowana kampania phishingowa prowadzi ofiarę od pozornie niewinnego filmu na TikToku, przez fałszywą stronę wymiany przedmiotów, aż po niemal perfekcyjną kopię ekranu logowania Steam. Tym, co wyróżnia analizowaną kampanię jest mechanizm, który na bieżąco przekazuje dane atakującemu. To może pozwolić atakującemu ominąć dodatkową ochronę Steam Guard. Zastosowana technologia pozwala nawet rozpoznać, jakiego rodzaju kod 2FA potrzebuje ofiara, zweryfikować go względem prawdziwego API platformy Steam, aż wreszcie symulować oczekiwanie na potwierdzenie w telefonie. Analiza techniczna wykazuje, że to nie amatorskie oszustwo, ale zaawansowana platforma phishingowa, dodatkowo wyposażona w mechanizmy utrudniające jej analizę

Jak wygląda kradzież konta Steam – krok po kroku

O metodach przejmowania kont na platformie Steam pisaliśmy w lipcu tego roku w tekście pod tytułem „Odblokowano osiągnięcie: przejęte konto Steam”. Ten atak jednak wyróżnia się na tle dotychczasowych analiz nie tylko metodami szukania ofiar, ale technicznym zaawansowaniem fałszywej strony logowania do platformy Steam.

Pierwszym miejscem, w którym atakujący szukają ofiar, jest TikTok. Publikują tam filmy pokazujące ekwipunek do CS2 i pod pretekstem rezygnacji z dalszej gry oraz chęci oddania przedmiotów kierują odbiorców do kolejnego profilu.

Zrzut ekranu z tiktok, pierwszy krok kampanii.
Krok 1- film na TikToku, opis kieruje na konto z linkiem

Po kliknięciu linku w opisie, ofiara jest przekierowana na drugie konto, stworzone wyłącznie pod analizowaną kampanię. W bio możemy znaleźć link do domeny phishingowej.

Zrzut ekranu z tiktok, pierwszy drugi kampanii.
Krok 2 – Drugi profil na TikToku  z linkiem phishingowym w bio

W kolejnym kroku, już na fałszywej stronie, widzimy ekran wymiany Steam Trade Offer. To mechanizm umożliwiający wymianę przedmiotów pomiędzy graczami. Jest on starannie odwzorowany, a ofiara nie ma możliwości, aby odróżnić fałszywy ekran od prawdziwego. Zawiera on nawet poziom konta, datę rejestracji i siatkę przedmiotów, z której użytkownik może wybrać interesujące go elementy.

Fałszywa strona logowania do Steam.
Krok 3 – spreparowany ekran wymiany przedmiotów na domenie phishingowej

Dopiero na tym etapie ofiara zostaje przekierowana na fałszywy ekran logowania Steam, który jest perfekcyjną kopią oryginału. Formularz logowania jest hostowany na stronie https://www.steamcommummimty[.]com. Literówka w domenie (tzw. typosquatting) jest praktycznie nie do wychwycenia.

Fałszywa strona logowania do Steam, kolejny etap przejęcia danych.
Krok 4 –  fałszywy ekran logowania Steam na domenie steamcommummimty[.]cam

Co dzieje się pod maską strony – analiza techniczna ataku

Strona jest w pełni funkcjonalną aplikacją napisaną w React, a nie statycznym klonem HTML. Strona obsługuje 26 języków i zawiera formularze obsługujące różne metody dodatkowej weryfikacji: kod mobilny, kod wysłany pocztą elektroniczną, SMS lub potwierdzenie w aplikacji, fałszywy kod QR do logowania oraz punkty końcowe API zaciemnione za pomocą operacji XOR. To nie jest zwykły „grabber” haseł, tylko kompletny mechanizm przechwytywania kodów 2FA w czasie rzeczywistym. Dane logowania są przesyłane na żywo do atakującego, który równolegle loguje się na prawdziwej platformie Steam i przekazuje dalej kolejne żądania kodów.
Widać to w czterech miejscach kodu:

1. Logowanie i kod 2FA to dwa osobne żądania, nie jeden formularz

Fragment kodu strony odpowiedzialny za odpytywanie serwera

W przypadku prostego narzędzia kradnącego dane wystarczyłoby przesłanie ich do bazy lub panelu atakującego. Tu dane są przekazywane etapami, dokładnie tak, jak wygląda prawdziwy proces logowania do Steama.

2. Strona sama odpytuje backend co 5 sekund, czekając na odpowiedź

Fragment kodu strony odpowiedzialny za odpytywanie serwera

Ten polling ma sens tylko wtedy, gdy backend w tle robi coś asynchronicznego, czyli faktycznie próbuje zalogować się na prawdziwej stronie Steam przy użyciu danych ofiary i czeka, aż serwer Steam poprosi o kolejny krok.

3. To backend decyduje, jaki ekran 2FA pokazać

Fragment kodu strony odpowiedzialny za odpytywanie serwera

Strona nie wie z góry, czy ofiara korzysta z uwierzytelniania mobilnego, e-mailowego czy za pomocą SMS-a. Dowiaduje się tego dopiero po tym, jak backend spróbuje zalogować się prawdziwymi danymi na prawdziwym Steamie i dostanie odpowiedź, jakiego kroku brakuje.

4. Błędne kody są walidowane względem wartości zwracanych przez API Steam

Fragment kodu strony odpowiedzialny za odpytywanie serwera

Enumeracja kodów błędów to dokładna kopia oficjalnego EResult ze Steam API. Jeśli wpiszesz zły kod, strona naprawdę wie, że jest błędny, bo dostała tę informację z prawdziwego API Steam. Zwykły grabber zaakceptowałby dowolny ciąg znaków.

Do tego dochodzi jeszcze ekran „czekam na potwierdzenie w telefonie” z animowanym GIF-em, który odzwierciedla dokładnie to, co widzisz przy prawdziwym logowaniu do Steama, tyle że tutaj atakujący wywołuje powiadomienie na telefonie ofiary, logując się danymi w tle.

Co zbiera atakujący

  • Login i hasło do konta Steam
  • Kod 2FA (mobilny/e-mail/SMS) – możliwość przejęcia konta mimo włączonego Steam Guard, jeśli ofiara przekaże kod atakującemu
  • Dane o skuteczności kampanii zbierane za pomocą Facebook Pixel
  • Cookie segmentujące ofiary, np. pod kątem posiadania mobilnego uwierzytelnienia

Zabezpieczenia przed analizą

Strona wykrywa otwarcie narzędzi deweloperskich (różnicę w rozmiarze okna, czas wykonania kodu, obecność narzędzi typu Eruda i vConsole), po czym czyści cały DOM strony i przekierowuje na google.com. Do tego blokada menu kontekstowego, zaznaczania tekstu, kopiowania i wklejania oraz biała lista oparta na tokenie w adresie URL, pozwalająca twórcy testować stronę bez wyzwalania ochrony.

Fragment kodu strony odpowiedzialny za odpytywanie serwera

Wnioski

To nie jest amatorskie oszustwo. To modularna, wielojęzyczna platforma phishingowa z mechanizmem przechwytywania i przekazywania kodu 2FA w czasie rzeczywistym, telemetrią marketingową i profesjonalną ochroną przed analizą.

Jak się chronić:

  • Przed zalogowaniem zawsze sprawdzaj dokładny adres strony i domenę
  • Steam Guard nie wystarczy, jeśli wpiszesz kod na stronie kontrolowanej przez atakującego
  • Takie strony można zgłosić do CERT Orange Polska, skorzystaj z formularza „Zgłoś zagrożenie” na naszej stronie
  • Pamiętaj o bezpiecznych hasłach: przeczytaj nasz poradnik