OceanLotus: macOS க்கான தீம்பொருள் புதுப்பிப்பு

மார்ச் 2019 இல், சைபர் குழுவான OceanLotus இலிருந்து MacOS தீம்பொருளின் புதிய மாதிரியானது பிரபலமான ஆன்லைன் ஸ்கேனிங் சேவையான VirusTotal இல் பதிவேற்றப்பட்டது. நாங்கள் படித்த மேகோஸ் மால்வேரின் முந்தைய பதிப்பின் அதே திறன்களை பேக்டோர் எக்ஸிகியூட்டபிள் கோப்பில் உள்ளது, ஆனால் அதன் அமைப்பு மாறிவிட்டது மற்றும் அதைக் கண்டறிவது மிகவும் கடினமாகிவிட்டது. துரதிர்ஷ்டவசமாக, இந்த மாதிரியுடன் தொடர்புடைய ஒரு துளிசொட்டியை எங்களால் கண்டுபிடிக்க முடியவில்லை, அதனால் தொற்று திசையன் பற்றி எங்களுக்கு இன்னும் தெரியவில்லை.

சமீபத்தில் வெளியிட்டோம் 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, கற்பனையாக்கப்பெட்டியை அல்லது இணைகள். இறுதியாக, இயந்திரம் பின்வரும் "MBP", "MBA", "MB", "MM", "IM", "MP" மற்றும் "XS" ஆகியவற்றில் ஒன்றா என்பதை அடுத்த கட்டளை சரிபார்க்கிறது. இவை சிஸ்டம் மாடல் குறியீடுகள், எடுத்துக்காட்டாக, “எம்பிபி” என்றால் மேக்புக் ப்ரோ, “எம்பிஏ” என்றால் மேக்புக் ஏர் போன்றவை.

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 க்கான தீம்பொருள் புதுப்பிப்பு

இந்த உள்ளமைவு மாற்றத்திற்கு கூடுதலாக, மாதிரியானது பிணைய வடிகட்டலுக்கு நூலகத்தைப் பயன்படுத்தாது லிப்கர்ல், ஆனால் வெளிப்புற நூலகம். அதைக் கண்டுபிடிக்க, பின்கதவு தற்போதைய கோப்பகத்தில் உள்ள ஒவ்வொரு கோப்பையும் AES-256-CBC ஐப் பயன்படுத்தி டிக்ரிப்ட் செய்ய முயற்சிக்கிறது. gFjMXBgyXWULmVVVzyxy, பூஜ்ஜியங்களுடன் திணிக்கப்பட்டது. ஒவ்வொரு கோப்பும் மறைகுறியாக்கப்பட்டு இவ்வாறு சேமிக்கப்படும் /tmp/store, மற்றும் செயல்பாட்டைப் பயன்படுத்தி அதை நூலகமாக ஏற்றும் முயற்சி மேற்கொள்ளப்படுகிறது dlopen. டிக்ரிப்ஷன் முயற்சி வெற்றிகரமான அழைப்பில் விளையும் போது dlopen, பின்கதவு ஏற்றுமதி செய்யப்பட்ட செயல்பாடுகளை பிரித்தெடுக்கிறது Boriry и ChadylonV, இது சர்வருடனான பிணைய தொடர்புக்கு வெளிப்படையாக பொறுப்பாகும். மாதிரியின் அசல் இடத்திலிருந்து டிராப்பர் அல்லது பிற கோப்புகள் எங்களிடம் இல்லை, எனவே இந்த நூலகத்தை எங்களால் அலச முடியாது. மேலும், கூறு குறியாக்கம் செய்யப்பட்டுள்ளதால், இந்த சரங்களை அடிப்படையாகக் கொண்ட YARA விதி வட்டில் காணப்படும் கோப்புடன் பொருந்தாது.

மேலே உள்ள கட்டுரையில் விவரிக்கப்பட்டுள்ளபடி, அது உருவாக்குகிறது கிளையன்ட் ஐடி. இந்த ஐடி என்பது பின்வரும் கட்டளைகளில் ஒன்றின் ரிட்டர்ன் மதிப்பின் 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" சேர்க்கப்படும். இது கிளையன்ட் ஐடி சேமிக்கப்படுகிறது /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. மறைகுறியாக்கப்பட்ட உரை கருத்துகளில் வைக்கப்பட்டுள்ளது

இந்த வழியில் மறைகுறியாக்கப்பட்ட சரங்கள் ஐடிஏ சாளரத்தில் வசதியாக ஒன்றாக வைக்கப்படுகின்றன xrefs படம் 6 இல் காட்டப்பட்டுள்ளபடி இந்த செயல்பாட்டிற்கு.

OceanLotus: macOS க்கான தீம்பொருள் புதுப்பிப்பு
படம் 6. Xrefs to f_decrypt செயல்பாடு

இறுதி ஸ்கிரிப்டைக் காணலாம் கிதுப் களஞ்சியம்.

முடிவுக்கு

ஏற்கனவே குறிப்பிட்டுள்ளபடி, OceanLotus அதன் கருவித்தொகுப்பை தொடர்ந்து மேம்படுத்தி புதுப்பித்து வருகிறது. இந்த நேரத்தில், சைபர் குழு மேக் பயனர்களுடன் வேலை செய்ய தீம்பொருளை மேம்படுத்தியுள்ளது. குறியீடு பெரிதாக மாறவில்லை, ஆனால் பல மேக் பயனர்கள் பாதுகாப்புத் தயாரிப்புகளைப் புறக்கணிப்பதால், தீம்பொருளைக் கண்டறிவதிலிருந்து பாதுகாப்பது இரண்டாம் நிலை முக்கியத்துவம் வாய்ந்தது.

ஆராய்ச்சியின் போது ESET தயாரிப்புகள் ஏற்கனவே இந்தக் கோப்பைக் கண்டறிந்துள்ளன. C&C தொடர்பாடலுக்குப் பயன்படுத்தப்படும் பிணைய நூலகம் இப்போது வட்டில் குறியாக்கம் செய்யப்பட்டுள்ளதால், தாக்குபவர்கள் பயன்படுத்தும் சரியான பிணைய நெறிமுறை இன்னும் அறியப்படவில்லை.

சமரசத்தின் குறிகாட்டிகள்

சமரசத்தின் குறிகாட்டிகள் மற்றும் MITER ATT&CK பண்புக்கூறுகளும் கிடைக்கின்றன மகிழ்ச்சியா.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்