Am Mäerz 2019 gouf eng nei Probe vu macOS Malware vun der Cybergrupp OceanLotus op VirusTotal eropgelueden, e populäre Online Scannen Service. D'Backdoor ausführbar Datei huet déiselwecht Fäegkeeten wéi déi fréier Versioun vun der macOS Malware déi mir studéiert hunn, awer seng Struktur huet geännert an et ass méi schwéier ze entdecken. Leider konnte mir keen Dropper fannen, deen mat dëser Probe assoziéiert ass, sou datt mir den Infektiounsvektor nach net kennen.
Mir publizéiert kuerzem
Analyse
Déi nächst dräi Deeler beschreiwen d'Analyse vun enger Probe mat engem SHA-1 Hash E615632C9998E4D3E5ACD8851864ED09B02C77D2
. De Fichier gëtt genannt flashlighted, ESET Antivirus Produkter erkennen et als OSX/OceanLotus.D.
Anti-Debugging a Sandbox Schutz
Wéi all macOS OceanLotus Binären ass d'Probe mat UPX verpackt, awer déi meescht Packager Identifikatiounsinstrumenter erkennen se net als solch. Dëst ass méiglecherweis well se meeschtens eng Ënnerschrëft enthalen ofhängeg vun der Präsenz vum "UPX" String, zousätzlech sinn Mach-O Ënnerschrëfte manner heefeg a ginn net sou dacks aktualiséiert. Dës Fonktioun mécht statesch Detektioun schwéier. Interessanterweis ass no der Auspackung den Entréespunkt um Ufank vun der Sektioun __cfstring
am Segment .TEXT
. Dës Sektioun huet Fändel Attributer wéi am Bild ënnendrënner gewisen.
Figur 1. MACH-O __cfstring Rubrik Attributer
Wéi an der Figur 2 gewisen, de Code Plaze an der Rubrik __cfstring
erlaabt Iech e puer Demontage Tools ze trickéieren andeems Dir Code als Saiten affichéiert.
Figur 2. Backdoor Code vun IDA als Daten entdeckt
Eemol ausgefouert, erstellt de Binär e Fuedem als Anti-Debugger deem säin eenzegen Zweck ass kontinuéierlech no der Präsenz vun engem Debugger ze kontrolléieren. Fir dëse Flow:
- Probéiert all Debugger unhaken, rufft ptrace
с PT_DENY_ATTACH
als Ufro Parameter
- Iwwerpréift ob e puer exklusiv Häfen oppe sinn andeems Dir eng Funktioun rufft task_get_exception_ports
- Kontrolléiert ob den Debugger ugeschloss ass, wéi an der Figur hei ënnendrënner, andeems Dir d'Präsenz vum Fändel iwwerpréift P_TRACED
am aktuelle Prozess
Figur 3. Iwwerpréift der Debugger Verbindung mat der sysctl Funktioun
Wann de Watchdog d'Präsenz vun engem Debugger erkennt, gëtt d'Funktioun genannt exit
. Zousätzlech kontrolléiert d'Probe dann d'Ëmfeld andeems se zwee Kommandoen lafen:
ioreg -l | grep -e "Manufacturer" и sysctl hw.model
D'Probe kontrolléiert dann de Retourwäert géint eng haart kodéiert Lëscht vu Strings vu bekannte Virtualiséierungssystemer: ackel, vmware, virtualbox oder Parallelen. Endlech kontrolléiert de nächste Kommando ob d'Maschinn ee vun de folgende "MBP", "MBA", "MB", "MM", "IM", "MP" an "XS" ass. Dëst sinn System Modell Coden, zum Beispill, "MBP" heescht MacBook Pro, "MBA" heescht MacBook Air, etc.
system_profiler SPHardwareDataType 2>/dev/null | awk '/Boot ROM Version/ {split($0, line, ":");printf("%s", line[2]);}
Main Ergänzunge
Wärend d'Backdoor Kommandoen zënter dem Trend Micro seng Fuerschung net geännert hunn, hu mir e puer aner Ännerungen gemierkt. D'C&C Serveren, déi an dëser Probe benotzt ginn, sinn zimlech nei a goufen den 22.10.2018 erstallt.
- daff.faybilodeau[.]com
- sarc.onteagleroad[.]com
- au.charlineopkesston[.]com
D'Ressource URL huet geännert op /dp/B074WC4NHW/ref=gbps_img_m-9_62c3_750e6b35
.
Den éischte Paket, deen un den C&C Server geschéckt gëtt, enthält méi Informatioun iwwer d'Hostmaschinn, inklusiv all d'Donnéeën, déi vun de Kommandoen an der Tabell hei drënner gesammelt ginn.
Zousätzlech zu dëser Konfiguratiounsännerung benotzt d'Probe keng Bibliothéik fir Netzwierkfilter gFjMXBgyXWULmVVVzyxy
, mat Nullen gepolstert. All Datei gëtt dekryptéiert a gespäichert als /tmp/store
, an e Versuch et als Bibliothéik ze lueden gëtt mat der Funktioun gemaach dlopen
, d'Backdoor extrahéiert exportéiert Funktiounen Boriry
и ChadylonV
, déi anscheinend fir d'Netzkommunikatioun mam Server verantwortlech sinn. Mir hunn net den Dropper oder aner Dateie vun der ursprénglecher Plaz vun der Probe, also kënne mir dës Bibliothéik net parséieren. Ausserdeem, well d'Komponente verschlësselt ass, passt eng YARA Regel baséiert op dëse Saiten net mat der Datei déi op der Disk fonnt gëtt.
Wéi am uewe genannten Artikel beschriwwen, erstellt et clientID. Dës ID ass den MD5 Hash vum Retourwäert vun engem vun de folgende Kommandoen:
- 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}'
(kréien MAC Adress)
- onbekannt Team ("x1ex72x0a
"), déi a fréiere Proben benotzt gëtt
Virum Hashing gëtt e "0" oder "1" zum Retourwäert bäigefüügt fir Root Privilegien unzeweisen. Dëst clientID gespäichert an /Library/Storage/File System/HFS/25cf5d02-e50b-4288-870a-528d56c3cf6e/pivtoken.appex
, wann de Code als Root oder an ~/Library/SmartCardsServices/Technology/PlugIns/drivers/snippets.ecgML an all anere Fäll leeft. D'Datei ass normalerweis verstoppt mat der Funktioun touch –t
mat engem zoufälleg Wäert.
Decodéieren Strings
Wéi mat fréiere Optiounen sinn d'Strings verschlësselt mat AES-256-CBC (hexadezimal Schlëssel: 9D7274AD7BCEF0DED29BDBB428C251DF8B350B92
mat Nullen padded, an IV mat Nullen gefëllt) duerch d'Funktioun
Wësse vun der Funktioun Prototyp decrypt, fënnt de Skript all Kräizreferenzen op dës Funktioun, all Argumenter, entschlësselt dann d'Donnéeën a setzt Kloertext an engem Kommentar op der Kräizreferenzadress. Fir datt de Skript richteg funktionnéiert, muss et op dat personaliséiert Alfabet gesat ginn, dat vun der Base64-Dekodéierungsfunktioun benotzt gëtt, an eng global Variabel muss definéiert ginn, déi d'Längt vum Schlëssel enthält (an dësem Fall en DWORD, kuckt Bild 4).
Figur 4. Definitioun vun der globaler Variabel key_len
An der Funktiounsfenster kënnt Dir op d'Entschlësselungsfunktioun klickt a klickt op "Argumenter extrahéieren an entschlësselen." De Skript soll déi entschlësselte Linnen an de Kommentarer setzen, wéi an der Figur 5.
Figur 5. Den entschlësselten Text gëtt an de Kommentarer gesat
Op dës Manéier ginn déi entschlësselte Saiten bequem an der IDA Fënster zesummegesat xref fir dës Funktioun wéi an der Figur 6 gewisen.
Figur 6. Xrefs zu f_decrypt Funktioun
D'Finale Schrëft kann op fonnt ginn
Konklusioun
Wéi scho gesot, OceanLotus verbessert an aktualiséiert seng Toolkit konstant. Dës Kéier huet d'Cybergrupp d'Malware verbessert fir mat Mac Benotzer ze schaffen. De Code huet net vill geännert, awer well vill Mac Benotzer d'Sécherheetsprodukter ignoréieren, ass de Schutz vu Malware virun der Detektioun vu sekundärer Wichtegkeet.
ESET Produkter hunn dës Datei schonn zu der Zäit vun der Fuerschung entdeckt. Well d'Netzbibliothéik, déi fir C&C Kommunikatioun benotzt gëtt, elo op Disk verschlësselt ass, ass de genaue Netzwierkprotokoll, deen vun den Ugräifer benotzt gëtt, nach net bekannt.
Indikatoren vum Kompromëss
Indicateuren vun Kompromëss souwéi MITER ATT & CK Attributer sinn och sinn op
Source: will.com