U ožujku 2019. novi uzorak macOS zlonamjernog softvera iz cyber grupe OceanLotus prenesen je na VirusTotal, popularnu internetsku uslugu skeniranja. Backdoor izvršna datoteka ima iste mogućnosti kao i prethodna verzija zlonamjernog softvera macOS koji smo proučavali, ali njezina se struktura promijenila i postalo ju je teže otkriti. Nažalost, nismo uspjeli pronaći kapaljku povezanu s ovim uzorkom, tako da još ne znamo vektor infekcije.
Nedavno smo objavili
Analiza
Sljedeća tri dijela opisuju analizu uzorka s SHA-1 hashom E615632C9998E4D3E5ACD8851864ED09B02C77D2
. Datoteka se zove svjetiljkom, antivirusni proizvodi ESET-a otkrivaju ga kao OSX/OceanLotus.D.
Anti-debugging i sandbox zaštita
Kao i sve macOS OceanLotus binarne datoteke, uzorak je zapakiran s UPX-om, ali ga većina alata za identifikaciju paketa ne prepoznaje kao takvog. To je vjerojatno zato što uglavnom sadrže potpis ovisan o prisutnosti "UPX" niza, osim toga, Mach-O potpisi su rjeđi i ne ažuriraju se tako često. Ova značajka otežava statičku detekciju. Zanimljivo, nakon raspakiranja ulazna točka je na početku dionice __cfstring
u segmentu .TEXT
. Ovaj odjeljak ima atribute zastavice kao što je prikazano na slici ispod.
Slika 1. MACH-O __cfstring atributi odjeljka
Kao što je prikazano na slici 2, mjesta koda u odjeljku __cfstring
omogućuje vam da prevarite neke alate za rastavljanje prikazivanjem koda kao nizova.
Slika 2. Backdoor kod koji je IDA otkrila kao podatke
Jednom izvršena, binarna datoteka stvara nit kao antidebugger čija je jedina svrha kontinuirana provjera prisutnosti debuggera. Za ovaj tijek:
— Pokušava otkačiti bilo koji program za ispravljanje pogrešaka, poziva ptrace
с PT_DENY_ATTACH
kao parametar zahtjeva
- Provjerava jesu li neki ekskluzivni priključci otvoreni pozivom funkcije task_get_exception_ports
- Provjerava je li debugger povezan, kao što je prikazano na donjoj slici, provjerom prisutnosti zastavice P_TRACED
u trenutnom procesu
Slika 3. Provjera veze programa za ispravljanje pogrešaka pomoću funkcije sysctl
Ako pas čuvar otkrije prisutnost programa za ispravljanje pogrešaka, poziva se funkcija exit
. Dodatno, uzorak zatim provjerava okruženje izvođenjem dvije naredbe:
ioreg -l | grep -e "Manufacturer" и sysctl hw.model
Uzorak zatim provjerava povratnu vrijednost prema tvrdo kodiranom popisu nizova iz poznatih virtualizacijskih sustava: acle, VMware, virtualbox ili paralele. Konačno, sljedeća naredba provjerava je li stroj jedan od sljedećih “MBP”, “MBA”, “MB”, “MM”, “IM”, “MP” i “XS”. Ovo su šifre modela sustava, na primjer, "MBP" znači MacBook Pro, "MBA" znači MacBook Air, itd.
system_profiler SPHardwareDataType 2>/dev/null | awk '/Boot ROM Version/ {split($0, line, ":");printf("%s", line[2]);}
Glavni dodaci
Iako se backdoor naredbe nisu promijenile od istraživanja Trend Microa, primijetili smo nekoliko drugih izmjena. C&C poslužitelji koji se koriste u ovom uzorku prilično su novi i kreirani su 22.10.2018.
- daff.faybilodeau[.]com
- sarc.onteagleroad[.]com
- au.charlineopkesston[.]com
URL resursa promijenjen je u /dp/B074WC4NHW/ref=gbps_img_m-9_62c3_750e6b35
.
Prvi paket poslan C&C poslužitelju sadrži više informacija o glavnom računalu, uključujući sve podatke prikupljene naredbama u donjoj tablici.
Uz ovu promjenu konfiguracije, uzorak ne koristi biblioteku za mrežno filtriranje gFjMXBgyXWULmVVVzyxy
, podstavljen nulama. Svaka datoteka se dekriptira i sprema kao /tmp/store
, a pomoću funkcije se pokušava učitati kao biblioteka dlopen
, backdoor izvlači izvezene funkcije Boriry
и ChadylonV
, koji su očito odgovorni za mrežnu komunikaciju s poslužiteljem. Nemamo kapaljku ili druge datoteke s izvorne lokacije uzorka, pa ne možemo analizirati ovu biblioteku. Štoviše, budući da je komponenta šifrirana, YARA pravilo temeljeno na ovim nizovima neće odgovarati datoteci pronađenoj na disku.
Kao što je opisano u gornjem članku, stvara ID klijenta. Ovaj ID je MD5 raspršivanje povratne vrijednosti jedne od sljedećih naredbi:
- ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformSerialNumber/ { split($0, line, """); printf("%s", line[4]); }'
- ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformUUID/ { split($0, line, """); printf("%s", line[4]); }'
- ifconfig en0 | awk '/ether /{print $2}'
(preuzmi MAC adresu)
- nepoznati tim ("x1ex72x0a
"), koji se koristi u prethodnim uzorcima
Prije raspršivanja, "0" ili "1" se dodaje povratnoj vrijednosti za označavanje root privilegija. Ovaj ID klijenta pohranjeno u /Library/Storage/File System/HFS/25cf5d02-e50b-4288-870a-528d56c3cf6e/pivtoken.appex
, ako se kod pokreće kao root ili u ~/Library/SmartCardsServices/Technology/PlugIns/drivers/snippets.ecgML u svim ostalim slučajevima. Datoteka je obično skrivena pomoću funkcije touch –t
sa slučajnom vrijednošću.
Dekodiranje nizova
Kao i kod prethodnih opcija, nizovi su šifrirani pomoću AES-256-CBC (heksadecimalni ključ: 9D7274AD7BCEF0DED29BDBB428C251DF8B350B92
podstavljen nulama, a IV ispunjen nulama) kroz funkciju
Poznavanje prototipa funkcije dešifriranje, skripta pronalazi sve unakrsne reference na ovu funkciju, sve argumente, zatim dekriptira podatke i stavlja običan tekst unutar komentara na adresu unakrsne reference. Da bi skripta radila ispravno, mora biti postavljena na prilagođenu abecedu koju koristi funkcija dekodiranja base64, a mora se definirati globalna varijabla koja sadrži duljinu ključa (u ovom slučaju DWORD, pogledajte sliku 4).
Slika 4. Definicija globalne varijable key_len
U prozoru Funkcija možete desnom tipkom miša kliknuti funkciju dešifriranja i kliknuti "Izdvoj i dešifriraj argumente". Skripta bi trebala staviti dešifrirane retke u komentare, kao što je prikazano na slici 5.
Slika 5. Dešifrirani tekst stavlja se u komentare
Na ovaj način se dešifrirani nizovi prikladno postavljaju zajedno u IDA prozor xrefs za ovu funkciju kao što je prikazano na slici 6.
Slika 6. Xrefs za f_decrypt funkciju
Konačni scenarij možete pronaći na
Izlaz
Kao što je već spomenuto, OceanLotus neprestano poboljšava i ažurira svoj alat. Ovaj put, cyber grupa je poboljšala zlonamjerni softver za rad s Mac korisnicima. Kod se nije mnogo promijenio, ali budući da mnogi korisnici Maca ignoriraju sigurnosne proizvode, zaštita zlonamjernog softvera od otkrivanja je od sekundarne važnosti.
Proizvodi ESET-a već su otkrivali ovu datoteku u vrijeme istraživanja. Budući da je mrežna biblioteka koja se koristi za C&C komunikaciju sada šifrirana na disku, točan mrežni protokol koji napadači koriste još nije poznat.
Pokazatelji kompromisa
Indikatori kompromisa kao i atributi MITER ATT&CK također su dostupni na
Izvor: www.habr.com