2019. gada martÄ populÄrajÄ tieÅ”saistes skenÄÅ”anas pakalpojumÄ VirusTotal tika augÅ”upielÄdÄts jauns macOS ļaunprÄtÄ«gas programmatÅ«ras paraugs no kibergrupas OceanLotus. AizmugurÄjo durvju izpildÄmajam failam ir tÄdas paÅ”as iespÄjas kÄ iepriekÅ”Äjai mÅ«su pÄtÄ«tÄs macOS ļaunprÄtÄ«gas programmatÅ«ras versijai, taÄu tÄ struktÅ«ra ir mainÄ«jusies, un to ir kļuvis grÅ«tÄk noteikt. DiemžÄl mÄs nevarÄjÄm atrast ar Å”o paraugu saistÄ«tu pilinÄtÄju, tÄpÄc mÄs vÄl nezinÄm infekcijas vektoru.
MÄs nesen publicÄjÄm
Analīze
NÄkamajÄs trÄ«s daļÄs ir aprakstÄ«ta parauga analÄ«ze ar SHA-1 jaucÄjkodu E615632C9998E4D3E5ACD8851864ED09B02C77D2
. Fails tiek izsaukts lukturÄ«tis, ESET antivÄ«rusu produkti to nosaka kÄ OSX/OceanLotus.D.
Pret atkļūdoŔanas un smilŔkastes aizsardzība
TÄpat kÄ visi macOS OceanLotus binÄrie faili, paraugs ir iesaiÅots ar UPX, taÄu lielÄkÄ daļa pakotÅu identifikÄcijas rÄ«ku to neatpazÄ«st. IespÄjams, tas ir tÄpÄc, ka tie galvenokÄrt satur parakstu, kas ir atkarÄ«gs no āUPXā virknes klÄtbÅ«tnes, turklÄt Mach-O paraksti ir retÄk sastopami un netiek tik bieži atjauninÄti. Å Ä« funkcija apgrÅ«tina statiskÄ noteikÅ”anu. Interesanti, ka pÄc izpakoÅ”anas ieejas punkts atrodas sadaļas sÄkumÄ __cfstring
segmentÄ .TEXT
. Å ai sadaļai ir karoga atribÅ«ti, kÄ parÄdÄ«ts tÄlÄk esoÅ”ajÄ attÄlÄ.
1. attÄls. MACH-O __cfstring sadaļas atribÅ«ti
KÄ parÄdÄ«ts 2. attÄlÄ, koda atraÅ”anÄs vietas sadaÄ¼Ä __cfstring
ļauj apmÄnÄ«t dažus izjaukÅ”anas rÄ«kus, parÄdot kodu kÄ virknes.
2. attÄls. Aizmugures durvju kods, ko IDA atklÄja kÄ datus
Kad tas ir izpildÄ«ts, binÄrais fails izveido pavedienu kÄ pretatkļūdotÄju, kura vienÄ«gais mÄrÄ·is ir nepÄrtraukti pÄrbaudÄ«t, vai nav atkļūdotÄja. Å ai plÅ«smai:
ā MÄÄ£ina atkabinÄt jebkuru atkļūdotÄju, zvana ptrace
Ń PT_DENY_ATTACH
kÄ pieprasÄ«juma parametrs
- PÄrbauda, āāvai daži ekskluzÄ«vi porti ir atvÄrti, izsaucot funkciju task_get_exception_ports
- PÄrbauda, āāvai atkļūdotÄjs ir pievienots, kÄ parÄdÄ«ts attÄlÄ zemÄk, pÄrbaudot karoga klÄtbÅ«tni P_TRACED
paÅ”reizÄjÄ procesÄ
3. attÄls. AtkļūdotÄja savienojuma pÄrbaude, izmantojot funkciju sysctl
Ja sargsuns konstatÄ atkļūdotÄja klÄtbÅ«tni, funkcija tiek izsaukta exit
. TurklÄt paraugs pÄrbauda vidi, izpildot divas komandas:
ioreg -l | grep -e "Manufacturer" Šø sysctl hw.model
PÄc tam paraugs pÄrbauda atgriezto vÄrtÄ«bu, salÄ«dzinot ar cieto kodu virkÅu sarakstu no zinÄmÄm virtualizÄcijas sistÄmÄm: acle, vmware, VirtualBox vai paralÄles. Visbeidzot, nÄkamÄ komanda pÄrbauda, āāvai iekÄrta ir viens no Å”iem āMBPā, āMBAā, āMBā, āMMā, āIMā, āMPā un āXSā. Tie ir sistÄmas modeļu kodi, piemÄram, āMBPā nozÄ«mÄ MacBook Pro, āMBAā nozÄ«mÄ MacBook Air utt.
system_profiler SPHardwareDataType 2>/dev/null | awk '/Boot ROM Version/ {split($0, line, ":");printf("%s", line[2]);}
Galvenie papildinÄjumi
Lai gan aizmugures durvju komandas nav mainÄ«juÅ”Äs kopÅ” Trend Micro pÄtÄ«juma, mÄs pamanÄ«jÄm dažas citas modifikÄcijas. Å ajÄ paraugÄ izmantotie C&C serveri ir diezgan jauni un izveidoti 22.10.2018.
SÄkot no daff.faybilodeau[.]com
SÄkot no sarc.onteagleroad[.]com
SÄkot no au.charlineopkeston[.]com
Resursa URL ir mainīts uz /dp/B074WC4NHW/ref=gbps_img_m-9_62c3_750e6b35
.
PirmajÄ C&C serverim nosÅ«tÄ«tajÄ paketÄ ir ietverta plaÅ”Äka informÄcija par resursdatoru, tostarp visi dati, kas savÄkti, izmantojot tÄlÄk esoÅ”Äs tabulas komandas.
Papildus Ŕīm konfigurÄcijas izmaiÅÄm paraugÄ netiek izmantota bibliotÄka tÄ«kla filtrÄÅ”anai gFjMXBgyXWULmVVVzyxy
, polsterÄts ar nullÄm. Katrs fails tiek atÅ”ifrÄts un saglabÄts kÄ /tmp/store
, un mÄÄ£inÄjums to ielÄdÄt kÄ bibliotÄku tiek veikts, izmantojot funkciju dlopen
, aizmugures durvis izvilk eksportÄtÄs funkcijas Boriry
Šø ChadylonV
, kas acÄ«mredzot ir atbildÄ«gi par tÄ«kla saziÅu ar serveri. Mums nav pilinÄtÄja vai citu failu no parauga sÄkotnÄjÄs atraÅ”anÄs vietas, tÄpÄc mÄs nevaram parsÄt Å”o bibliotÄku. TurklÄt, tÄ kÄ komponents ir Å”ifrÄts, YARA kÄrtula, kuras pamatÄ ir Ŕīs virknes, neatbilst diskÄ atrastajam failam.
KÄ aprakstÄ«ts iepriekÅ” rakstÄ, tas rada klienta ID. Å is ID ir vienas no tÄlÄk norÄdÄ«to komandu atgrieÅ”anas vÄrtÄ«bas MD5 jaucÄjvÄrds:
SÄkot no ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformSerialNumber/ { split($0, line, """); printf("%s", line[4]); }'
SÄkot no ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformUUID/ { split($0, line, """); printf("%s", line[4]); }'
SÄkot no ifconfig en0 | awk '/ether /{print $2}'
(iegūstiet MAC adresi)
- nezinÄma komanda ("x1ex72x0a
"), kas tika izmantots iepriekÅ”Äjos paraugos
Pirms jaukÅ”anas atgrieÅ”anas vÄrtÄ«bai tiek pievienots "0" vai "1", lai norÄdÄ«tu saknes tiesÄ«bas. Å is klienta ID glabÄjas /Library/Storage/File System/HFS/25cf5d02-e50b-4288-870a-528d56c3cf6e/pivtoken.appex
, ja kods tiek palaists kÄ root vai mapÄ ~/Library/SmartCardsServices/Technology/PlugIns/drivers/snippets.ecgML visos citos gadÄ«jumos. Fails parasti tiek paslÄpts, izmantojot funkciju touch āt
ar nejauÅ”u vÄrtÄ«bu.
StÄ«gu dekodÄÅ”ana
TÄpat kÄ iepriekÅ”ÄjÄs opcijÄs, virknes tiek Å”ifrÄtas, izmantojot AES-256-CBC (heksadecimÄlÄ atslÄga: 9D7274AD7BCEF0DED29BDBB428C251DF8B350B92
polsterÄts ar nullÄm un IV piepildÄ«ts ar nullÄm), izmantojot funkciju
Zinot funkcijas prototipu atÅ”ifrÄt, skripts atrod visas savstarpÄjÄs atsauces uz Å”o funkciju, visus argumentus, pÄc tam atÅ”ifrÄ datus un ievieto vienkÄrÅ”u tekstu komentÄrÄ savstarpÄjÄs atsauces adresÄ. Lai skripts darbotos pareizi, tas ir jÄiestata uz pielÄgoto alfabÄtu, ko izmanto base64 dekodÄÅ”anas funkcija, un ir jÄdefinÄ globÄlais mainÄ«gais, kas satur atslÄgas garumu (Å”ajÄ gadÄ«jumÄ DWORD, skatiet 4. attÄlu).
4. attÄls. GlobÄlÄ mainÄ«gÄ key_len definÄ«cija
Funkciju logÄ varat ar peles labo pogu noklikŔķinÄt uz atÅ”ifrÄÅ”anas funkcijas un noklikŔķinÄt uz "Izvilkt un atÅ”ifrÄt argumentus". Skriptam ir jÄievieto atÅ”ifrÄtÄs rindas komentÄros, kÄ parÄdÄ«ts 5. attÄlÄ.
AttÄls 5. AtÅ”ifrÄtais teksts tiek ievietots komentÄros
TÄdÄ veidÄ atÅ”ifrÄtÄs virknes tiek Ärti novietotas kopÄ IDA logÄ xrefs Å”ai funkcijai, kÄ parÄdÄ«ts 6. attÄlÄ.
6. attÄls. Xrefs uz f_decrypt funkciju
GalÄ«go skriptu var atrast vietnÄ
secinÄjums
KÄ jau minÄts, OceanLotus pastÄvÄ«gi uzlabo un atjaunina savu rÄ«ku komplektu. Å oreiz kibergrupa ir uzlabojusi ļaunprogrammatÅ«ru darbam ar Mac lietotÄjiem. Kods nav Ä«paÅ”i mainÄ«jies, taÄu, tÄ kÄ daudzi Mac lietotÄji ignorÄ droŔības produktus, ļaunprÄtÄ«gas programmatÅ«ras aizsardzÄ«ba pret atklÄÅ”anu ir sekundÄra nozÄ«me.
ESET produkti jau atrada Å”o failu izpÄtes laikÄ. TÄ kÄ C&C saziÅai izmantotÄ tÄ«kla bibliotÄka tagad ir Å”ifrÄta diskÄ, precÄ«zs uzbrucÄju izmantotais tÄ«kla protokols vÄl nav zinÄms.
Kompromisa rÄdÄ«tÄji
Ir pieejami arÄ« kompromisa indikatori, kÄ arÄ« MITER ATT&CK atribÅ«ti
Avots: www.habr.com