Nadużycie Alternatywnego Strumienia Danych nie zniknęło

Następujący wpis na blogu przedstawia koncepcję Alternatywnego Strumienia Danych oraz sposób jego wykorzystania w dziczy, zarówno w przeszłości, jak i obecnie: jako techniki używanej do ukrywania złośliwego ładunku w systemie plików. Chociaż można ją uznać za starą technikę, jest ona nadal aktualna i często spotykana w naturze.

Co to jest Alternatywny Strumień Danych?

Alternatywny Strumień Danych (ADS) to zdolność systemu plików NTFS (główny format systemu plików w Windows) do przechowywania różnych strumieni danych, oprócz domyślnego strumienia, który jest normalnie używany dla pliku. Kiedy ta funkcja została stworzona, jej głównym celem było zapewnienie wsparcia dla Hierarchicznego Systemu Plików (HFS) systemu macOS.

System plików NTFS zawiera pliki z atrybutami. Atrybutem istotnym dla naszego zakresu jest atrybut $DATA, który jest używany do przechowywania strumieni danych pliku.

W przeszłości powszechne było przechowywanie złośliwego ładunku w ADS legalnego pliku. Jednak obecnie wiele rozwiązań bezpieczeństwa wykrywa i skanuje ADS’. Jednakże, pokażemy w tym wpisie, że ADS może być nadal używany do uruchamiania payloads będąc ukrytym przed użytkownikiem, jak również różnymi produktami bezpieczeństwa.

Aby uprościć koncepcje, które są przedstawione w tym artykule, wszystkie przykłady są oparte na natywnych narzędziach w Windows.

Jak używać ADS

W starych dobrych czasach Windows Vista, Alternate Data Streams (ADS) był powszechną metodą dla twórców złośliwego oprogramowania do ukrywania ich złośliwego kodu. Alternatywny Strumień Danych był skutecznie wykorzystywany do ukrycia obecności złośliwych plików, poprzez wciśnięcie go wewnątrz legalnego pliku. Umieszczając złośliwe oprogramowanie w Alternatywnym Strumieniu Danych, plik Windows zawierał informacje i wskazówki dla legalnych plików, ale również dla złośliwego pliku. W celu uruchomienia złośliwego kodu, który haker umieścił w Alternatywnym Strumieniu Danych, chciałby on utworzyć symlink za pomocą polecenia mklink. Wymaga to jednak posiadania praw administracyjnych na komputerze. Biorąc pod uwagę, że normalne zachowanie użytkownika nie wymaga działania jako administrator, hakerzy zazwyczaj podchodzą do swoich celów zakładając, że trafiają na skrzynkę bez żadnych praw administratora.

Enumeracja – Główny strumień pod $DATA jest pustym ciągiem (zatem: „”, zwany również strumieniem nienazwanym). Ten strumień jest używany do zawarcia regularnego strumienia pliku.

Poniżej znajduje się przykład wyliczenia strumieni danych pliku za pomocą PowerShell:

Możesz również użyć dir /R, lub SysInternals\streams.exe do wyliczenia ADS pliku / rekursywnie na katalogu

Jak widać powyżej, plik zawiera tylko nienazwany strumień.

Jednakże, czasami można znaleźć ADS w legalnym pliku, ponieważ istnieje kilka legalnych zastosowań dla tej techniki.

Poniżej znajduje się przykład wyliczania strumieni danych pliku z ADS za pomocą PowerShell:


Jest to również przykład legalnego zastosowania ADS: Zone. Identyfikator. To pole prezentuje poziom zaufania źródła pliku. Jest to wykorzystanie przeglądarki do przechowywania jego macOS odpowiada „bit kwarantanny”.

Tworzenie – Chociaż mogą istnieć uzasadnione zastosowania ADS, ADS może być również używany do przechowywania złośliwego payload. Atakujący mogą preferować tę metodę niż zapisywanie ładunku w nienazwanym strumieniu, ponieważ jego obecność będzie ukryta przed użytkownikiem – nie jest on dostępny z poziomu explorer.exe (a wyświetlany rozmiar pliku nie uwzględnia rozmiaru ADS). Ponadto nie jest on domyślnie wyświetlany poleceniem „dir” (jednak flaga /R wyświetla ADS i jest stosowana od Windows Vista).

Tworzenie ADS jest dość proste.

Przykład tworzenia ADS za pomocą polecenia type:

Do Windows XP możliwe było uruchomienie ADS za pomocą polecenia start. Jednakże, od późniejszych wersji Windows, nie jest to już możliwe.

Dostęp do danych – Nadużywanie ADS jest nadal istotnym zagrożeniem, ponieważ istnieje wiele sposobów na odczytanie i wykonanie ADS.

Pierwszym zastosowaniem jest dostęp do danych. Zawartość ADS może być łatwo dostępna. Poniżej przedstawiono przykład z wykorzystaniem PowerShell:

Wykonanie – Oprócz odczytu danych, możliwe jest również ich wykonanie. Chociaż nie jest możliwe wykonanie ADS za pomocą polecenia „start”, to jednak można go uruchomić z innych programów. Na przykład, z WMI:

„wmic process call creates” – uruchamia proces z WMI. Może również uruchomić ADS. Przykład:

Istnieją dodatkowe legalne narzędzia natywne Windows, które mogą być użyte do bezpośredniego uruchomienia ADS. Na przykład, DLL może zostać zapisana wewnątrz ADS i wywołana przez DllMain poprzez rundll32.exe; również, HTA może zostać zapisana wewnątrz ADS i wywołana poprzez mshta.exe; i tak dalej.

Złośliwe kampanie nadużywające ADS

Może się wydawać, że Windows poradził sobie z zagrożeniami, które rezydują wewnątrz ADS. Jednak na wolności istnieje wiele rodzin złośliwego oprogramowania, które nadal nadużywają ADS.

Innym przykładem z 2017 roku jest BitPaymer, ransomware, który wykorzystywał dwa ADS-y w sekwencji ataku, aby dodać stealth do działań i ukryć złośliwą aktywność. Pierwszy ADS został stworzony w celu uruchomienia polecenia „net view”, aby uzyskać udziały sieciowe, następnie drugi ADS szyfruje dane na dysku i udziałach sieciowych.

Podsumowując, nadużywanie ADS jest techniką, która jest nadal aktualna w dzisiejszych czasach. Rzeczywiście, ostatnie wersje systemu Windows ograniczyły i wzmocniły funkcjonalność ADS. Jednakże, podstawowa znajomość natywnych narzędzi Windows, takich jak Power-Shell i WMI, lub pewna wiedza na temat wiersza poleceń Windows pozwala aktorom zagrożeń na kontynuowanie i wykorzystywanie ADS w swoich atakach. Co ciekawe, ostatnie kampanie wykorzystujące ADS są uważane za dość wyrafinowane i mają tendencję do minimalizowania wykorzystania trwałych plików na dysku.

.

Dodaj komentarz