OceanLotus: macOS కోసం మాల్వేర్ అప్‌డేట్

మార్చి 2019లో, సైబర్ గ్రూప్ OceanLotus నుండి MacOS మాల్వేర్ యొక్క కొత్త నమూనా ప్రముఖ ఆన్‌లైన్ స్కానింగ్ సేవ అయిన VirusTotalకి అప్‌లోడ్ చేయబడింది. బ్యాక్‌డోర్ ఎక్జిక్యూటబుల్ ఫైల్ మేము అధ్యయనం చేసిన macOS మాల్వేర్ యొక్క మునుపటి సంస్కరణ వలె అదే సామర్థ్యాలను కలిగి ఉంది, కానీ దాని నిర్మాణం మార్చబడింది మరియు దానిని గుర్తించడం చాలా కష్టంగా మారింది. దురదృష్టవశాత్తూ, మేము ఈ నమూనాతో అనుబంధించబడిన డ్రాపర్‌ని కనుగొనలేకపోయాము, కాబట్టి మాకు ఇంకా ఇన్‌ఫెక్షన్ వెక్టర్ తెలియదు.

మేము ఇటీవల ప్రచురించాము OceanLotus గురించి పోస్ట్ మరియు ఆపరేటర్లు విండోస్ సిస్టమ్‌లలో పట్టుదలను అందించడానికి, కోడ్ అమలును వేగవంతం చేయడానికి మరియు పాదముద్రను ఎలా తగ్గించడానికి ప్రయత్నిస్తున్నారు. ఈ సైబర్ గ్రూప్‌లో మాకోస్ కోసం ఒక భాగం కూడా ఉందని కూడా తెలుసు. ఈ పోస్ట్ మునుపటి సంస్కరణతో పోల్చితే MacOS కోసం మాల్వేర్ యొక్క సరికొత్త సంస్కరణలో మార్పులను వివరిస్తుంది (ట్రెండ్ మైక్రో వివరించింది), మరియు IDA హెక్స్-రేస్ APIని ఉపయోగించి మీరు విశ్లేషణ సమయంలో స్ట్రింగ్‌ల డిక్రిప్షన్‌ను ఎలా ఆటోమేట్ చేయవచ్చో కూడా వివరిస్తుంది.

OceanLotus: macOS కోసం మాల్వేర్ అప్‌డేట్

Анализ

తదుపరి మూడు భాగాలు SHA-1 హాష్‌తో నమూనా యొక్క విశ్లేషణను వివరిస్తాయి E615632C9998E4D3E5ACD8851864ED09B02C77D2. ఫైల్ అంటారు ఫ్లాష్లైట్, ESET యాంటీవైరస్ ఉత్పత్తులు దీనిని OSX/OceanLotus.Dగా గుర్తిస్తాయి.

యాంటీ-డీబగ్గింగ్ మరియు శాండ్‌బాక్స్ రక్షణ

అన్ని macOS OceanLotus బైనరీల వలె, నమూనా UPXతో ప్యాక్ చేయబడింది, అయితే చాలా ప్యాకేజర్ గుర్తింపు సాధనాలు దానిని గుర్తించలేదు. వారు ఎక్కువగా "UPX" స్ట్రింగ్ ఉనికిపై ఆధారపడిన సంతకాన్ని కలిగి ఉండటం దీనికి కారణం కావచ్చు, అదనంగా, Mach-O సంతకాలు తక్కువ సాధారణం మరియు తరచుగా నవీకరించబడవు. ఈ ఫీచర్ స్టాటిక్ డిటెక్షన్ కష్టతరం చేస్తుంది. ఆసక్తికరంగా, అన్‌ప్యాక్ చేసిన తర్వాత, ఎంట్రీ పాయింట్ విభాగం ప్రారంభంలో ఉంటుంది __cfstring విభాగంలో .TEXT. దిగువ చిత్రంలో చూపిన విధంగా ఈ విభాగం ఫ్లాగ్ లక్షణాలను కలిగి ఉంది.

OceanLotus: macOS కోసం మాల్వేర్ అప్‌డేట్
మూర్తి 1. MACH-O __cfstring విభాగం లక్షణాలు

మూర్తి 2లో చూపిన విధంగా, విభాగంలోని కోడ్ స్థానాలు __cfstring కోడ్‌ను స్ట్రింగ్‌లుగా ప్రదర్శించడం ద్వారా కొన్ని వేరుచేయడం సాధనాలను మోసగించడానికి మిమ్మల్ని అనుమతిస్తుంది.

OceanLotus: macOS కోసం మాల్వేర్ అప్‌డేట్
మూర్తి 2. బ్యాక్‌డోర్ కోడ్ డేటాగా IDA ద్వారా కనుగొనబడింది

ఒకసారి అమలు చేయబడిన తర్వాత, బైనరీ యాంటీ-డీబగ్గర్‌గా థ్రెడ్‌ను సృష్టిస్తుంది, దీని ఏకైక ఉద్దేశ్యం డీబగ్గర్ ఉనికిని నిరంతరం తనిఖీ చేయడం. ఈ ప్రవాహం కోసం:

- ఏదైనా డీబగ్గర్‌ని అన్‌హుక్ చేయడానికి ప్రయత్నిస్తుంది, కాల్ చేస్తోంది ptrace с PT_DENY_ATTACH అభ్యర్థన పరామితిగా
- ఫంక్షన్‌కు కాల్ చేయడం ద్వారా కొన్ని ప్రత్యేకమైన పోర్ట్‌లు తెరవబడి ఉన్నాయో లేదో తనిఖీ చేస్తుంది task_get_exception_ports
- ఫ్లాగ్ ఉనికిని తనిఖీ చేయడం ద్వారా దిగువ చిత్రంలో చూపిన విధంగా డీబగ్గర్ కనెక్ట్ చేయబడిందో లేదో తనిఖీ చేస్తుంది P_TRACED ప్రస్తుత ప్రక్రియలో

OceanLotus: macOS కోసం మాల్వేర్ అప్‌డేట్
మూర్తి 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 సర్వర్‌కు పంపబడిన మొదటి ప్యాకెట్ దిగువ పట్టికలోని ఆదేశాల ద్వారా సేకరించబడిన మొత్తం డేటాతో సహా హోస్ట్ మెషీన్ గురించి మరింత సమాచారాన్ని కలిగి ఉంటుంది.

OceanLotus: macOS కోసం మాల్వేర్ అప్‌డేట్

ఈ కాన్ఫిగరేషన్ మార్పుతో పాటు, నమూనా నెట్‌వర్క్ ఫిల్టరింగ్ కోసం లైబ్రరీని ఉపయోగించదు libcurl, కానీ ఒక బాహ్య లైబ్రరీ. దానిని కనుగొనడానికి, బ్యాక్‌డోర్ ప్రస్తుత డైరెక్టరీలోని ప్రతి ఫైల్‌ను కీతో AES-256-CBCని ఉపయోగించి డీక్రిప్ట్ చేయడానికి ప్రయత్నిస్తుంది gFjMXBgyXWULmVVVzyxy, సున్నాలతో ప్యాడ్ చేయబడింది. ప్రతి ఫైల్ డీక్రిప్ట్ చేయబడింది మరియు ఇలా సేవ్ చేయబడుతుంది /tmp/store, మరియు దీన్ని లైబ్రరీగా లోడ్ చేసే ప్రయత్నం ఫంక్షన్‌ని ఉపయోగించి చేయబడుతుంది dlopen. డిక్రిప్షన్ ప్రయత్నం విజయవంతమైన కాల్‌కు దారితీసినప్పుడు 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 సున్నాలతో నిండి ఉంటుంది) ఫంక్షన్ ద్వారా CCCrypt. మునుపటి సంస్కరణల నుండి కీ మార్చబడింది, కానీ సమూహం ఇప్పటికీ అదే స్ట్రింగ్ ఎన్‌క్రిప్షన్ అల్గారిథమ్‌ని ఉపయోగిస్తుంది కాబట్టి, డిక్రిప్షన్ ఆటోమేట్ చేయబడుతుంది. ఈ పోస్ట్‌తో పాటు, బైనరీ ఫైల్‌లో ఉన్న స్ట్రింగ్‌లను డీక్రిప్ట్ చేయడానికి హెక్స్-రేస్ APIని ఉపయోగించే IDA స్క్రిప్ట్‌ను మేము విడుదల చేస్తున్నాము. OceanLotus యొక్క భవిష్యత్తు విశ్లేషణ మరియు మేము ఇంకా పొందలేకపోయిన ఇప్పటికే ఉన్న నమూనాల విశ్లేషణకు ఈ స్క్రిప్ట్ సహాయపడవచ్చు. స్క్రిప్ట్ ఒక ఫంక్షన్‌కు పంపబడిన ఆర్గ్యుమెంట్‌లను స్వీకరించడానికి సార్వత్రిక పద్ధతిపై ఆధారపడి ఉంటుంది. అదనంగా, ఇది పారామీటర్ అసైన్‌మెంట్‌లను చూస్తుంది. ఫంక్షన్ ఆర్గ్యుమెంట్‌ల జాబితాను పొందడానికి మరియు దానిని కాల్‌బ్యాక్‌కు పంపడానికి ఈ పద్ధతిని మళ్లీ ఉపయోగించవచ్చు.

ఫంక్షన్ ప్రోటోటైప్ తెలుసుకోవడం వ్యక్తీకరించడానికి, స్క్రిప్ట్ ఈ ఫంక్షన్‌కు సంబంధించిన అన్ని క్రాస్-రిఫరెన్స్‌లను, అన్ని ఆర్గ్యుమెంట్‌లను కనుగొంటుంది, ఆపై డేటాను డీక్రిప్ట్ చేస్తుంది మరియు క్రాస్-రిఫరెన్స్ చిరునామాలో వ్యాఖ్యలో సాదా వచనాన్ని ఉంచుతుంది. స్క్రిప్ట్ సరిగ్గా పనిచేయాలంటే, అది తప్పనిసరిగా బేస్64 డీకోడింగ్ ఫంక్షన్ ద్వారా ఉపయోగించే కస్టమ్ ఆల్ఫాబెట్‌కు సెట్ చేయబడాలి మరియు కీ యొక్క పొడవును కలిగి ఉండే గ్లోబల్ వేరియబుల్ తప్పనిసరిగా నిర్వచించబడాలి (ఈ సందర్భంలో ఒక DWORD, మూర్తి 4 చూడండి).

OceanLotus: macOS కోసం మాల్వేర్ అప్‌డేట్
మూర్తి 4. గ్లోబల్ వేరియబుల్ కీ_లెన్ యొక్క నిర్వచనం

ఫంక్షన్ విండోలో, మీరు డిక్రిప్షన్ ఫంక్షన్‌పై కుడి-క్లిక్ చేసి, “ఆర్గ్యుమెంట్‌లను సంగ్రహించి మరియు డీక్రిప్ట్ చేయండి” క్లిక్ చేయండి. స్క్రిప్ట్ మూర్తి 5లో చూపిన విధంగా డిక్రిప్ట్ చేసిన పంక్తులను వ్యాఖ్యలలో ఉంచాలి.

OceanLotus: macOS కోసం మాల్వేర్ అప్‌డేట్
మూర్తి 5. డిక్రిప్టెడ్ టెక్స్ట్ వ్యాఖ్యలలో ఉంచబడింది

ఈ విధంగా డీక్రిప్టెడ్ స్ట్రింగ్‌లు సౌకర్యవంతంగా IDA విండోలో ఉంచబడతాయి xrefs మూర్తి 6లో చూపిన విధంగా ఈ ఫంక్షన్ కోసం.

OceanLotus: macOS కోసం మాల్వేర్ అప్‌డేట్
మూర్తి 6. f_decrypt ఫంక్షన్‌కి Xrefs

చివరి స్క్రిప్ట్‌ను ఇక్కడ చూడవచ్చు గితుబ్ రిపోజిటరీ.

తీర్మానం

ఇప్పటికే చెప్పినట్లుగా, OceanLotus తన టూల్‌కిట్‌ను నిరంతరం మెరుగుపరుస్తుంది మరియు అప్‌డేట్ చేస్తోంది. ఈసారి, సైబర్ గ్రూప్ Mac వినియోగదారులతో పని చేయడానికి మాల్వేర్‌ను మెరుగుపరిచింది. కోడ్ పెద్దగా మారలేదు, కానీ చాలా మంది Mac వినియోగదారులు భద్రతా ఉత్పత్తులను విస్మరించినందున, మాల్వేర్‌ను గుర్తించకుండా రక్షించడం రెండవ ప్రాముఖ్యత.

పరిశోధన సమయంలో ESET ఉత్పత్తులు ఇప్పటికే ఈ ఫైల్‌ను గుర్తించాయి. C&C కమ్యూనికేషన్ కోసం ఉపయోగించే నెట్‌వర్క్ లైబ్రరీ ఇప్పుడు డిస్క్‌లో ఎన్‌క్రిప్ట్ చేయబడినందున, దాడి చేసేవారు ఉపయోగించే ఖచ్చితమైన నెట్‌వర్క్ ప్రోటోకాల్ ఇంకా తెలియలేదు.

రాజీకి సూచికలు

రాజీ సూచికలు అలాగే MITER ATT&CK లక్షణాలు కూడా అందుబాటులో ఉన్నాయి గ్యాలరీలు.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి