మార్చి 2019లో, సైబర్ గ్రూప్ OceanLotus నుండి MacOS మాల్వేర్ యొక్క కొత్త నమూనా ప్రముఖ ఆన్లైన్ స్కానింగ్ సేవ అయిన VirusTotalకి అప్లోడ్ చేయబడింది. బ్యాక్డోర్ ఎక్జిక్యూటబుల్ ఫైల్ మేము అధ్యయనం చేసిన macOS మాల్వేర్ యొక్క మునుపటి సంస్కరణ వలె అదే సామర్థ్యాలను కలిగి ఉంది, కానీ దాని నిర్మాణం మార్చబడింది మరియు దానిని గుర్తించడం చాలా కష్టంగా మారింది. దురదృష్టవశాత్తూ, మేము ఈ నమూనాతో అనుబంధించబడిన డ్రాపర్ని కనుగొనలేకపోయాము, కాబట్టి మాకు ఇంకా ఇన్ఫెక్షన్ వెక్టర్ తెలియదు.
మేము ఇటీవల ప్రచురించాము
Анализ
తదుపరి మూడు భాగాలు SHA-1 హాష్తో నమూనా యొక్క విశ్లేషణను వివరిస్తాయి E615632C9998E4D3E5ACD8851864ED09B02C77D2
. ఫైల్ అంటారు ఫ్లాష్లైట్, ESET యాంటీవైరస్ ఉత్పత్తులు దీనిని OSX/OceanLotus.Dగా గుర్తిస్తాయి.
యాంటీ-డీబగ్గింగ్ మరియు శాండ్బాక్స్ రక్షణ
అన్ని macOS OceanLotus బైనరీల వలె, నమూనా UPXతో ప్యాక్ చేయబడింది, అయితే చాలా ప్యాకేజర్ గుర్తింపు సాధనాలు దానిని గుర్తించలేదు. వారు ఎక్కువగా "UPX" స్ట్రింగ్ ఉనికిపై ఆధారపడిన సంతకాన్ని కలిగి ఉండటం దీనికి కారణం కావచ్చు, అదనంగా, Mach-O సంతకాలు తక్కువ సాధారణం మరియు తరచుగా నవీకరించబడవు. ఈ ఫీచర్ స్టాటిక్ డిటెక్షన్ కష్టతరం చేస్తుంది. ఆసక్తికరంగా, అన్ప్యాక్ చేసిన తర్వాత, ఎంట్రీ పాయింట్ విభాగం ప్రారంభంలో ఉంటుంది __cfstring
విభాగంలో .TEXT
. దిగువ చిత్రంలో చూపిన విధంగా ఈ విభాగం ఫ్లాగ్ లక్షణాలను కలిగి ఉంది.
మూర్తి 1. MACH-O __cfstring విభాగం లక్షణాలు
మూర్తి 2లో చూపిన విధంగా, విభాగంలోని కోడ్ స్థానాలు __cfstring
కోడ్ను స్ట్రింగ్లుగా ప్రదర్శించడం ద్వారా కొన్ని వేరుచేయడం సాధనాలను మోసగించడానికి మిమ్మల్ని అనుమతిస్తుంది.
మూర్తి 2. బ్యాక్డోర్ కోడ్ డేటాగా IDA ద్వారా కనుగొనబడింది
ఒకసారి అమలు చేయబడిన తర్వాత, బైనరీ యాంటీ-డీబగ్గర్గా థ్రెడ్ను సృష్టిస్తుంది, దీని ఏకైక ఉద్దేశ్యం డీబగ్గర్ ఉనికిని నిరంతరం తనిఖీ చేయడం. ఈ ప్రవాహం కోసం:
- ఏదైనా డీబగ్గర్ని అన్హుక్ చేయడానికి ప్రయత్నిస్తుంది, కాల్ చేస్తోంది ptrace
с PT_DENY_ATTACH
అభ్యర్థన పరామితిగా
- ఫంక్షన్కు కాల్ చేయడం ద్వారా కొన్ని ప్రత్యేకమైన పోర్ట్లు తెరవబడి ఉన్నాయో లేదో తనిఖీ చేస్తుంది task_get_exception_ports
- ఫ్లాగ్ ఉనికిని తనిఖీ చేయడం ద్వారా దిగువ చిత్రంలో చూపిన విధంగా డీబగ్గర్ కనెక్ట్ చేయబడిందో లేదో తనిఖీ చేస్తుంది P_TRACED
ప్రస్తుత ప్రక్రియలో
మూర్తి 3. sysctl ఫంక్షన్ని ఉపయోగించి డీబగ్గర్ కనెక్షన్ని తనిఖీ చేస్తోంది
వాచ్డాగ్ డీబగ్గర్ ఉనికిని గుర్తించినట్లయితే, ఫంక్షన్ అంటారు exit
. అదనంగా, నమూనా రెండు ఆదేశాలను అమలు చేయడం ద్వారా పర్యావరణాన్ని తనిఖీ చేస్తుంది:
ioreg -l | grep -e "Manufacturer" и sysctl hw.model
తెలిసిన వర్చువలైజేషన్ సిస్టమ్ల నుండి హార్డ్-కోడెడ్ స్ట్రింగ్ల జాబితాకు వ్యతిరేకంగా నమూనా తిరిగి విలువను తనిఖీ చేస్తుంది: అకిల్, VMware, VirtualBox లేదా సమాంతరాలు. చివరగా, మెషీన్ కింది "MBP", "MBA", "MB", "MM", "IM", "MP" మరియు "XS"లలో ఒకటి కాదా అని తదుపరి ఆదేశం తనిఖీ చేస్తుంది. ఇవి సిస్టమ్ మోడల్ కోడ్లు, ఉదాహరణకు, “MBP” అంటే MacBook Pro, “MBA” అంటే MacBook Air మొదలైనవి.
system_profiler SPHardwareDataType 2>/dev/null | awk '/Boot ROM Version/ {split($0, line, ":");printf("%s", line[2]);}
ప్రాథమిక చేర్పులు
ట్రెండ్ మైక్రో పరిశోధన నుండి బ్యాక్డోర్ కమాండ్లు మారనప్పటికీ, మేము కొన్ని ఇతర మార్పులను గమనించాము. ఈ నమూనాలో ఉపయోగించిన C&C సర్వర్లు చాలా కొత్తవి మరియు 22.10.2018/XNUMX/XNUMXన సృష్టించబడ్డాయి.
- daff.faybilodeau[.]com
- sarc.onteagleroad[.]com
- au.charlineopkesston[.]com
వనరు URL కు మార్చబడింది /dp/B074WC4NHW/ref=gbps_img_m-9_62c3_750e6b35
.
C&C సర్వర్కు పంపబడిన మొదటి ప్యాకెట్ దిగువ పట్టికలోని ఆదేశాల ద్వారా సేకరించబడిన మొత్తం డేటాతో సహా హోస్ట్ మెషీన్ గురించి మరింత సమాచారాన్ని కలిగి ఉంటుంది.
ఈ కాన్ఫిగరేషన్ మార్పుతో పాటు, నమూనా నెట్వర్క్ ఫిల్టరింగ్ కోసం లైబ్రరీని ఉపయోగించదు gFjMXBgyXWULmVVVzyxy
, సున్నాలతో ప్యాడ్ చేయబడింది. ప్రతి ఫైల్ డీక్రిప్ట్ చేయబడింది మరియు ఇలా సేవ్ చేయబడుతుంది /tmp/store
, మరియు దీన్ని లైబ్రరీగా లోడ్ చేసే ప్రయత్నం ఫంక్షన్ని ఉపయోగించి చేయబడుతుంది dlopen
, బ్యాక్డోర్ ఎగుమతి చేసిన ఫంక్షన్లను సంగ్రహిస్తుంది Boriry
и ChadylonV
, ఇవి సర్వర్తో నెట్వర్క్ కమ్యూనికేషన్కు స్పష్టంగా బాధ్యత వహిస్తాయి. నమూనా యొక్క అసలు స్థానం నుండి డ్రాపర్ లేదా ఇతర ఫైల్లు మా వద్ద లేవు, కాబట్టి మేము ఈ లైబ్రరీని అన్వయించలేము. అంతేకాకుండా, భాగం ఎన్క్రిప్ట్ చేయబడినందున, ఈ స్ట్రింగ్లపై ఆధారపడిన YARA నియమం డిస్క్లో కనిపించే ఫైల్తో సరిపోలడం లేదు.
పై వ్యాసంలో వివరించిన విధంగా, ఇది సృష్టిస్తుంది క్లయింట్ ID. ఈ ID కింది ఆదేశాలలో ఒకదాని రిటర్న్ విలువ యొక్క MD5 హాష్:
- 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}'
(MAC చిరునామా పొందండి)
- తెలియని బృందం ("x1ex72x0a
"), ఇది మునుపటి నమూనాలలో ఉపయోగించబడింది
హాషింగ్ చేయడానికి ముందు, రూట్ అధికారాలను సూచించడానికి రిటర్న్ విలువకు "0" లేదా "1" జోడించబడుతుంది. ఈ క్లయింట్ ID లో నిల్వ చేయబడింది /Library/Storage/File System/HFS/25cf5d02-e50b-4288-870a-528d56c3cf6e/pivtoken.appex
, కోడ్ రూట్గా లేదా ~/Library/SmartCardsServices/Technology/PlugIns/drivers/snippets.ecgMLలో అన్ని ఇతర సందర్భాలలో అమలు చేయబడితే. ఫైల్ సాధారణంగా ఫంక్షన్ ఉపయోగించి దాచబడుతుంది touch –t
యాదృచ్ఛిక విలువతో.
డీకోడింగ్ స్ట్రింగ్స్
మునుపటి ఎంపికల మాదిరిగానే, స్ట్రింగ్లు AES-256-CBC (హెక్సాడెసిమల్ కీ:) ఉపయోగించి గుప్తీకరించబడతాయి. 9D7274AD7BCEF0DED29BDBB428C251DF8B350B92
సున్నాలతో ప్యాడ్ చేయబడింది మరియు IV సున్నాలతో నిండి ఉంటుంది) ఫంక్షన్ ద్వారా
ఫంక్షన్ ప్రోటోటైప్ తెలుసుకోవడం వ్యక్తీకరించడానికి, స్క్రిప్ట్ ఈ ఫంక్షన్కు సంబంధించిన అన్ని క్రాస్-రిఫరెన్స్లను, అన్ని ఆర్గ్యుమెంట్లను కనుగొంటుంది, ఆపై డేటాను డీక్రిప్ట్ చేస్తుంది మరియు క్రాస్-రిఫరెన్స్ చిరునామాలో వ్యాఖ్యలో సాదా వచనాన్ని ఉంచుతుంది. స్క్రిప్ట్ సరిగ్గా పనిచేయాలంటే, అది తప్పనిసరిగా బేస్64 డీకోడింగ్ ఫంక్షన్ ద్వారా ఉపయోగించే కస్టమ్ ఆల్ఫాబెట్కు సెట్ చేయబడాలి మరియు కీ యొక్క పొడవును కలిగి ఉండే గ్లోబల్ వేరియబుల్ తప్పనిసరిగా నిర్వచించబడాలి (ఈ సందర్భంలో ఒక DWORD, మూర్తి 4 చూడండి).
మూర్తి 4. గ్లోబల్ వేరియబుల్ కీ_లెన్ యొక్క నిర్వచనం
ఫంక్షన్ విండోలో, మీరు డిక్రిప్షన్ ఫంక్షన్పై కుడి-క్లిక్ చేసి, “ఆర్గ్యుమెంట్లను సంగ్రహించి మరియు డీక్రిప్ట్ చేయండి” క్లిక్ చేయండి. స్క్రిప్ట్ మూర్తి 5లో చూపిన విధంగా డిక్రిప్ట్ చేసిన పంక్తులను వ్యాఖ్యలలో ఉంచాలి.
మూర్తి 5. డిక్రిప్టెడ్ టెక్స్ట్ వ్యాఖ్యలలో ఉంచబడింది
ఈ విధంగా డీక్రిప్టెడ్ స్ట్రింగ్లు సౌకర్యవంతంగా IDA విండోలో ఉంచబడతాయి xrefs మూర్తి 6లో చూపిన విధంగా ఈ ఫంక్షన్ కోసం.
మూర్తి 6. f_decrypt ఫంక్షన్కి Xrefs
చివరి స్క్రిప్ట్ను ఇక్కడ చూడవచ్చు
తీర్మానం
ఇప్పటికే చెప్పినట్లుగా, OceanLotus తన టూల్కిట్ను నిరంతరం మెరుగుపరుస్తుంది మరియు అప్డేట్ చేస్తోంది. ఈసారి, సైబర్ గ్రూప్ Mac వినియోగదారులతో పని చేయడానికి మాల్వేర్ను మెరుగుపరిచింది. కోడ్ పెద్దగా మారలేదు, కానీ చాలా మంది Mac వినియోగదారులు భద్రతా ఉత్పత్తులను విస్మరించినందున, మాల్వేర్ను గుర్తించకుండా రక్షించడం రెండవ ప్రాముఖ్యత.
పరిశోధన సమయంలో ESET ఉత్పత్తులు ఇప్పటికే ఈ ఫైల్ను గుర్తించాయి. C&C కమ్యూనికేషన్ కోసం ఉపయోగించే నెట్వర్క్ లైబ్రరీ ఇప్పుడు డిస్క్లో ఎన్క్రిప్ట్ చేయబడినందున, దాడి చేసేవారు ఉపయోగించే ఖచ్చితమైన నెట్వర్క్ ప్రోటోకాల్ ఇంకా తెలియలేదు.
రాజీకి సూచికలు
రాజీ సూచికలు అలాగే MITER ATT&CK లక్షణాలు కూడా అందుబాటులో ఉన్నాయి
మూలం: www.habr.com