எக்டோபிளாசம் npm நிறுவல் Hooks AWS நற்சான்றிதழ்களைத் திருடுபவர்கள்

எக்டோபிளாசம்: npm install hooks கண்டெய்னர்-மட்டும் தூண்டுதலின் பின்னணியில் AWS நற்சான்றிதழ்களைச் சேகரிக்கும்

பொருளடக்கம்

கட்டாயம் படிக்க வேண்டிய பதிவுகள்

சமீபத்திய சுவாரஸ்யமான பதிவு

டிஎல்; DR

ஒரு கொத்து ஐந்து npm தொகுப்புகள்இரண்டு கணக்கு முகவரிகளில் வெளியிடப்பட்டு, அனுப்பப்பட்ட ஒரு postinstall ஹோஸ்டிலிருந்து கிளவுட் நற்சான்றுகளைப் படித்து, அவற்றை ஆஃப்-பாக்ஸிற்கு அனுப்பும் ஒரு ஹூக். அந்தத் தொகுப்புகள் போலி மற்றும் திருட்டுப் பெயர்களைக் கொண்டுள்ளன — coral-wraith, ecto-corsair-whisper-6f3b9, ecto-corsair-flag-x9m4, ecto-rust-read-f3a9c1, ecto-nightly-spirit — மேலும் அவர்கள் சேகரிக்கும் அனைத்தையும் ஒரு போலியாக வரிசைப்படுத்துவார்கள். ecto_module: YAML மேனிஃபெஸ்ட்டை அனுப்புவதற்கு முன், நாங்கள் கிளஸ்டரைக் கண்காணிக்கிறோம். எக்டோபிளாசம்.

ஒரு குறிப்பிட்ட சூழலை, அதாவது 'a' என்ற பெயரைக் கொண்ட ஒரு ஹோஸ்டைக் கண்டறியும்போது மட்டுமே பேலோட் இயங்கும். 12-எழுத்து ஹெக்ஸ் சரம் மற்றும் கீழ் ஒரு வேலை செய்யும் கோப்பகம் /app/node_modules — ஒரு கண்டெய்னரைஸ்டு பில்ட் அல்லது சிஐ வர்க்கரின் வடிவம். அந்த கேட் கடந்து செல்லும்போது, ​​ஹூக் வினவுகிறது. AWS நிகழ்வு மெட்டாடேட்டா சேவை (IMDSv2) IAM பங்கு நற்சான்றிதழ்களுக்காக, பட்டியலிடுகிறது AWS இரகசிய மேலாளர் மூன்று பிராந்தியங்களில், சூழல் மாறிகளை வெளியேற்றி, கீழ் உள்ள கோப்புகளைப் படிக்கிறது. /appமேலும், அது 'கேப்சர்-தி-ஃபிளாக்' சரங்களைத் திரட்டுகிறது. பின்னர் அது அந்த முடிவை இரண்டு வழிகளில் வெளியேற்றுகிறது: ஒரு பீக்கனிலிருந்து மற்றொரு பீக்கனுக்கு. webhook.site ஒரு சேகரிப்பான் மற்றும் ஒரு raw-IP முனையத்திற்கு அனுப்பப்படும் ஒரு manifest PUT கோப்பு, அத்துடன் localhost-first மாற்றுவழிகளின் பட்டியலும்.

பிற்கால தொகுப்பு விளக்கங்கள் "வெர்டாசியோ விநியோகச் சங்கிலி சோதனைக்கான CTF பேலோட்" என்று குறிப்பிடுகின்றன. அந்த சுய விளக்கத்தை, கண்கூடாகக் காணக்கூடிய ஒரு உண்மையாக நாங்கள் தெரிவிக்கிறோம். அதன் செயல்பாடு — ஒரு பொது ஐபி-க்கு நேரடி வெளியேற்றம், உண்மையான IMDS நற்சான்றிதழ் வாசிப்புகள், உண்மையான சீக்ரெட்ஸ் மேனேஜர் அழைப்புகள் — லேபிளைப் பொருட்படுத்தாமல் அதுவாகவே இருக்கிறது, மேலும் இந்த பதிப்புகள் தீங்கிழைக்கும் தன்மை கொண்டவை என வகைப்படுத்தப்பட்டதற்கான காரணமும் இதுவே ஆகும்.

அந்தக் குழுவில் உள்ள ஒரு பெயர், coral-wraithஅது ஒரே ஒரு வெளியீட்டுடன் நின்றுவிடவில்லை. சில மணி நேரங்களிலேயே டஜன் கணக்கான பதிப்புகளாக அதிவேகமாக மீண்டும் மீண்டும் வெளியிடப்பட்டது. 1.0.0 ஏறுதல் 6.0.0 மேலும், அதே பெயரில் வெளியான முந்தைய பதிப்பில் 'inflated' பயன்படுத்தப்பட்டிருந்தது. 9999.0.x பதிப்பு எண்கள், ஒரு கிளாசிக் வடிவம் சார்பு-குழப்ப முயற்சிஅந்த மாற்றங்களின் ஊடாக, அந்த பேலோட் வெளிப்படையாக முதிர்ச்சியடைந்தது: ஒருமுறை மட்டும் இயங்கும் ஹோஸ்ட்-எண்ணும் பீக்கனிலிருந்து, அதன் இலக்குக்கு வெளியே அமைதியாக இயங்குவதை உறுதிசெய்யும் சூழல் சோதனைகளால் சூழப்பட்ட ஒரு முழுமையான AWS நற்சான்றிதழ் மையமாக அது உருவெடுத்தது.

தொகுப்புகள் 5 பெயர்கள்; coral-wraith தனியாக டஜன் கணக்கான பதிப்புகளில் மீண்டும் வெளியிடப்பட்டது
சூழல் NPM
நிறுவல் திசையன் postinstall வாழ்க்கைச் சுழற்சி ஸ்கிரிப்ட்
முதன்மை இலக்கு AWS IAM பங்கு நற்சான்றிதழ்கள் + இரகசிய மேலாளரின் இரகசிய மதிப்புகள், சூழல் மாறிகள், /app கோப்புகளை
எக்ஸ்ரம் webhook.site பீக்கான் + ரா-ஐபி சி2 புட்
தூண்டுதல் வாயில் 12-ஹெக்ஸ் ஹோஸ்ட்பெயர் + /app/node_modules தற்போதைய பணி அடைவு (cwd), அத்துடன் அந்தச் சூழலுக்கு வெளியே தரவுப் பொதியை அடக்கும் ஒரு சூழல் சரிபார்ப்பும்.
தீவிரத்தன்மை உயர் — கிளவுட் நற்சான்றிதழ் மற்றும் நிர்வகிக்கப்பட்ட இரகசிய வெளிப்படுத்தல் கொள்கலனாக்கப்பட்ட உருவாக்கம் மற்றும் இயக்க நேரச் சூழல்கள்

தாக்குதல் உடற்கூறியல்

கிளஸ்டரில் உள்ள ஒவ்வொரு தொகுப்பும் ஒரே மாதிரியாக உருவாக்கப்பட்டுள்ளது: கிட்டத்தட்ட காலியான index.js (தொகுதி.ஏற்றுமதிகள் = {}), ஒரு வரி தொகுப்பு.ஜேசன் திரைக்கதை — “postinstall”: “node postinstall.js” — மற்றும் பேலோடில் postinstall.jsஹூக்கை இயக்குவதற்கு பேக்கேஜை நிறுவினாலே போதும்; எந்த இம்போர்ட்டோ அல்லது கால்-ஓ தேவையில்லை.

இலக்கு வாயில். எதையும் செய்வதற்கு முன், எக்டோ-குடும்ப பேலோட் அதன் சுற்றுப்புறங்களைச் சரிபார்க்கிறது:

function isAppWorker():   host = os.hostname()   if host does NOT match /^[0-9a-f]{12}$/  -> exit   if cwd does NOT contain "/app/node_modules" -> exit   if cwd contains "/tmp/npm-safe"            -> exit   otherwise -> proceed

12-ஹெக்ஸ் ஹோஸ்ட்பெயர் என்பது டாக்கர் ஒரு கண்டெய்னருக்கு ஒதுக்கும் இயல்புநிலை வடிவமாகும், மேலும் /app/node_modules இது ஒரு வழக்கமான கண்டெய்னருக்குள் நிறுவும் பாதையாகும். அந்தப் பாதை ஒரு சாண்ட்பாக்ஸ் செய்யப்பட்ட பிரித்தெடுக்கும் கோப்பகம் போல் தோன்றினால், மூன்றாவது பிரிவு வெளியேறிவிடும். இதன் நிகர விளைவு என்னவென்றால், பேலோட் ஒரு டெவலப்பரின் மடிக்கணினியிலோ அல்லது பகுப்பாய்வு சாண்ட்பாக்ஸிலோ செயலற்ற நிலையில் இருக்கும், மேலும் ஒரு கண்டெய்னராக்கப்பட்ட பில்ட் அல்லது ரன்டைம் வர்க்கருக்குள் மட்டுமே செயல்படுத்தப்படும் — இது லைவ் கிளவுட் நற்சான்றிதழ்களைக் கொண்டிருக்க அதிக வாய்ப்புள்ள ஒரு சூழலாகும். கிளஸ்டரில் உள்ள ஆரம்பகால தொகுப்பு, பவள-பேய்அதற்கு அத்தகைய வாயில் எதுவும் இல்லை, மேலும் அது தனது (எளிமையான) சேகரிப்பை நிபந்தனையின்றி இயக்குகிறது.

சேகரிப்புவாயில் கடந்து செல்லும்போது, ​​கொக்கி அதன் வழியே வெளியேறுகிறது. execFileSync(“/bin/sh”, [“-c”, ...]) மேலும் இது பின்வரும் வரிசையிலான ஒரு ஒற்றைக் கூட்டு கட்டளையை இயக்குகிறது:

1. PUT /latest/api/token to 169.254.169.254          (IMDSv2 token request) 2. GET .../iam/security-credentials/                  (IAM role name) 3. GET .../iam/security-credentials/<role>            (temporary credentials) 4. dump env | sort                                    (environment variables) 5. list /app (excl. node_modules) + cat first 15      (application files) 6. aws secretsmanager list-secrets                    (us-east-1, eu-west-1, eu-central-1) 7. scrape readable files for HTB{...}                 (capture-the-flag strings)

படிகள் 1–3 என்பவை IMDSv2-ஐப் பெறுவதற்கான ஒரு பாடப்புத்தக வழிமுறையாகும்: ஒரு அமர்வு டோக்கனைக் கோருங்கள், பின்னர் அதை இணைக்கவும். X-aws-ec2-metadata-token இன்ஸ்டன்ஸின் IAM ரோல் மற்றும் அந்த ரோலின் தற்காலிக அணுகல் சாவிகளைப் பெறுவதற்கான ஹெடர். எளிமையான, அங்கீகரிக்கப்படாத IMDSv1-க்கு பதிலாக IMDSv2-ஐ செயல்படுத்தும் தேர்வு. GET AWS பரிந்துரைக்கும் பாதுகாப்பு ஏற்பாடான, டோக்கன் அடிப்படையிலான மெட்டாடேட்டா அணுகல் தேவைப்படும்படி கட்டமைக்கப்பட்ட இன்ஸ்டன்ஸ்களிலும் கூட இந்த பேலோட் செயல்படும் என்பது குறிப்பிடத்தக்கது. படி 3-ஆல் வழங்கப்படும் நற்சான்றிதழ்கள் குறுகிய காலமே செல்லுபடியாகும். அணுகல் விசை ஐடி/இரகசிய அணுகல் திறவுகோல்/டோக்கன் அந்த இன்ஸ்டன்ஸின் பங்கிற்கு வரையறுக்கப்பட்ட ட்ரிப்பிள்கள்; அந்தப் பங்கு என்னவெல்லாம் செய்ய முடியுமோ, அத்தனையையும் அந்தச் சாவிகளை வைத்திருப்பவர், அந்த நற்சான்றிதழின் ஆயுட்காலம் முழுவதும் செய்ய முடியும்.

படிகள் 4–6 எடுப்பை அகலப்படுத்துகின்றன. சிஏ டம்ப் என்பது, பில்ட் அல்லது ரன்டைம் செயல்முறை பெற்றெடுத்த அனைத்தையும் சேகரிக்கிறது — நடைமுறையில் ரெஜிஸ்ட்ரி டோக்கன்கள், தரவுத்தள இணைப்புச் சரங்கள் மற்றும் ஏபிஐ கீகள் பெரும்பாலும் இங்குதான் இருக்கும். / செயலி கோப்பு ஆய்வு, பதினைந்து பயன்பாட்டுக் கோப்புகள் வரை வெளிப்புறத்தில் இருந்து படிக்கிறது. முனை_மாடூல்கள்இது உள்ளமைவை மேற்பரப்புக்குக் கொண்டுவரக்கூடும், .env கோப்புகள், அல்லது மூலம். படி 6 அழைக்கிறது AWS இரகசிய மேலாளர் பட்டியல்-இரகசியங்கள் மூன்று பிராந்தியங்களில்; படிகள் 1–3 இல் பெறப்பட்ட சான்றுகளே அந்த அழைப்புகளைச் சரியாக அங்கீகரிக்கின்றன, எனவே IMDS ரீட் மற்றும் சீக்ரெட்ஸ் மேனேஜர் எண்ணுதல் சங்கிலி ஆகியவை இன்ஸ்டன்ஸ் ரோல் → நிர்வகிக்கப்பட்ட-இரகசிய இருப்பு என ஒரே மேல்நிலைக்கு ஒன்றாக இணைகின்றன. படி 7 என்பது கொடியைக் கைப்பற்றும் கட்டமைப்பிற்கான ஒரு குறிப்பாகும் — ஒரு HTB{…} கொடி கண்டறியப்பட்டால் அது தனியாக அனுப்பப்படும், இல்லையெனில் சேகரிக்கப்பட்ட மூலத் தொகுப்பு நான்கு துண்டுகளாகப் பிரிக்கப்பட்டு அனுப்பப்படும்.

கிளஸ்டரில் உள்ள பிற்காலப் பதிப்புகள் இந்த விரிவாக்கத்தை மேலும் முன்னெடுத்துச் செல்கின்றன. ஒரு சரக்குப்பட்டியலுடன் நின்றுவிடாமல், அவை IMDS பதிலை அலசி ஆராய்ந்து, தற்காலிக சாவிகளை இவ்வாறு ஏற்றுமதி செய்கின்றன. AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_SESSION_TOKEN சூழல் மாறிகள், இவற்றின் அடையாளத்தை உறுதிப்படுத்தவும் AWS STS அழைப்பாளர் அடையாளத்தைப் பெறுபின்னர், ஆல் திரும்பப் பெறப்பட்ட ஒவ்வொரு ரகசியத்தின் மீதும் சுழற்சி செய்யவும். இரகசியங்களை பட்டியலிடு அழைப்பு AWS இரகசிய மேலாளர் இரகசிய மதிப்பைப் பெறு ஒவ்வொன்றிலும் — அவற்றின் பெயர்களை மட்டுமல்ல, இரகசிய உள்ளடக்கங்களையும் மீட்டெடுக்கின்றன. அதே பதிப்புகள் செயல்முறை-பதிலீடு செய்யப்பட்ட கொடி பைனரிகளையும் படிக்கின்றன (/readflag மற்றும் நண்பர்கள்) மற்றும் முயற்சி செய்யுங்கள் சரக்கு ஓட்டம் கீழ் காணப்படும் எந்த ரஸ்ட் திட்டத்திற்கும் எதிராக / செயலிகிளவுட் நற்சான்றிதழ்களுக்கு அப்பால், உருவாக்கச் சூழல் வெளிப்படுத்தும் அனைத்தையும் உள்ளடக்கிப் பயன்பாட்டை விரிவுபடுத்துகிறது.

இந்தப் பிந்தைய பதிப்புகள் தங்களைத் தாங்களே மிகவும் தீவிரமாகக் கட்டுப்படுத்திக் கொள்கின்றன. 12-ஹெக்ஸ் ஹோஸ்ட்நேம் மற்றும் /app/node_modules சோதனைகளின் போது, ​​பேலோடானது செயலில் உள்ள தொகுப்பு-பதிவக உள்ளமைவு மற்றும் பணிபுரியும் கோப்பகப் பாதையை ஆய்வு செய்கிறது. மேலும், அவை ஒரு நேரடி இலக்கைக் காட்டிலும் பகுப்பாய்வு அல்லது பிரதி சூழலைக் குறிக்கும்போது, ​​அது எந்த அறிவிப்பும் இன்றி வெளியேறுகிறது. இதன் ஒருங்கிணைந்த விளைவாக, பெரும்பாலான ஆய்வுச் சூழல்களில் வெளிப்படையாகத் தெரியக்கூடிய எதையும் செய்யாத ஒரு பேலோடாக இது அமைகிறது. மேலும், ஒரு உண்மையான கண்டெய்னராக்கப்பட்ட ஹோஸ்டில் இருப்பதாக அது கருதும் இடங்களில் மட்டுமே தனது முழுமையான தரவுச் சேகரிப்பை இது இயக்குகிறது.

வெளியேற்றம்சேகரிக்கப்பட்ட தரவு இரண்டு சேனல்கள் வழியாக ஹோஸ்டை விட்டு வெளியேறுகிறது. முதலாவதாக, ஒரு பீக்கான் போஸ்ட் ஒரு நிலையான வெப்ஹூக்.தளம் ஹோஸ்ட்பெயர், எண் UID, பணிபுரியும் கோப்பகம் மற்றும் 120 KB வரையிலான சேகரிக்கப்பட்ட தரவுகளைக் கொண்ட ஒரு சேகரிப்பான். இரண்டாவதாக, அந்தத் தரவு ஒரு போலியான YAML “தொகுதி வெளிப்பாட்டிற்குள்” மடிக்கப்படுகிறது. PUT, க்கு /api/modules/ இலக்கு சேவையகத்தில்:

ecto_module:   name: "<flag-or-chunk-0>"   version: "1.0.0"   power_level: "<chunk-1>"   ship_deck: "<chunk-2>"   cargo_hold: "<chunk-3>"

வெளிப்படையான புலப் பெயர்கள் (சக்தி நிலை, கப்பல் தளம், சரக்கு_வைப்பு) என்பவை அலங்காரமே — திருடப்பட்ட தரவு அந்த ஸ்டிரிங் மதிப்புகளுக்குள் அடங்கியுள்ளது, இதனால்தான் ஒரு நெட்வொர்க் மானிட்டர், வெளிப்படையான தரவுக் கொட்டலாகத் தோன்றுவதற்குப் பதிலாக, தீங்கற்ற ஒரு பேக்கேஜ்-ரெஜிஸ்ட்ரி மேனிஃபெஸ்ட் பதிவேற்றம் போலத் தோற்றமளிப்பதைக் காண்கிறது. பீக்கான் சேனல் இன்னும் பலவற்றைக் கொண்டு செல்கிறது: போஸ்ட் உடல் வெப்ஹூக்.தளம் இதில் ஹோஸ்ட்பெயர், எண் வடிவிலான UID, பணிபுரியும் கோப்பகம் மற்றும் 120 KB வரையிலான சேகரிக்கப்பட்ட தரவுத் தொகுப்பு ஆகியவை அடங்கும், எனவே ஒரேயொரு வெற்றிகரமான பீக்கான் கூட முழுமையான தரவையும் வழங்குகிறது. வெப்ஹூக்.தளம் இது ஒரு இலவச கோரிக்கை-ஆய்வு சேவையாகும்; இதை ஒரு சேகரிப்பானாகப் பயன்படுத்துவதால், அந்தச் சேனலுக்காக ஆபரேட்டர் தனக்கென சொந்தமாக கோரிக்கை பெறும் உள்கட்டமைப்பை ஒருபோதும் அமைக்க வேண்டியதில்லை, மேலும் பதிவுசெய்யப்பட்ட கோரிக்கைகள் இந்தச் சேவையின் சேமிப்பகத்தில் நிலைத்திருக்கும்.

அறிக்கை PUT, பலவற்றுடன் தொடங்கும் ஒரு மாற்று வழிப் பட்டியலைப் பின்பற்றுகிறது 127.0.0.1/லோக்கல் ஹோஸ்ட் துறைமுகங்கள் மற்றும் பின்னர் ` இல் உள்ள மூன்று பொது முகவரிகளுக்குச் செல்கிறது.154.57.164.0/24` 2xx என்ற நிலையுடன் பதிலளிக்கும் முதல் முனையத்தில் நின்றுவிடும். இந்த லோக்கல்ஹோஸ்ட்-முதன்மையான வரிசைமுறை, "வெர்டாசியோ டெஸ்டிங்" என்பதன் சுய-விவரணத்துடன் (லூப்பேக்கில் உள்ள ஒரு உள்ளூர் பதிவகம்) ஒத்துப்போகிறது, ஆனால் பொது-IP மாற்று வழிகள் இருப்பதால், லூப்பேக் கேட்காத போதெல்லாம் தரவு ஹோஸ்டை விட்டு வெளியேறுகிறது — அதாவது, ஆசிரியரின் சொந்த சோதனை அமைப்பு அல்லாத எந்தவொரு இயந்திரத்திலும் இது நிகழ்கிறது.

காலக்கெடு

இந்தத் தொகுப்பு, ஒரேயொரு வீழ்ச்சியைக் காட்டிலும் படிப்படியான திறன் வளர்ச்சியைக் காட்டுகிறது. நாங்கள் இதை வெளியீட்டு நேரத்தின்படி அல்லாமல், கவனிக்கப்பட்ட செயல்பாட்டின் அடிப்படையில் வரிசைப்படுத்துகிறோம்:

மேடை தொகுப்புகள் / பதிப்புகள் நடத்தை
ஆரம்ப ஓட்டம் coral-wraith 9999.0.x சார்பு-குழப்ப முயற்சிக்கு இணங்க உயர்த்தப்பட்ட பதிப்பு எண்கள்; நிறுவலின் போது எண்ணுதல் மற்றும் வெளியேற்றுதல்
விதை coral-wraith 1.0.0 postinstall id/env/flag கோப்புகளைச் சேகரிக்கிறது; ஒற்றை PUT க்கு 154[.]57[.]164[.]71:30782, குறிப்பான் ECT-472839
விரைவான மறு செய்கை coral-wraith 1.0.1 → 6.0.0 சில மணிநேரங்களில் டஜன் கணக்கான வெளியீடுகள்; பேலோட் ஆதாயங்களைப் பெறுகிறது isAppWorker() கேட், IMDSv2 நற்சான்றிதழ் பெறுதல், முழுமையான get-secret-value pivot, பதிவகம்/பாதை சூழல் சரிபார்ப்பு, மற்றும் இரட்டை சிங்க் குறிப்பான்கள்
இணையான பெயர்கள் ecto-corsair-whisper-6f3b9 1.0.14–1.0.18 அதே கட்டுப்படுத்தப்பட்ட பேலோட்; webhook.site பீக்கான் மற்றும் பல-முனைய மாற்றுவழிப் பட்டியல்
மாறிகள் ecto-rust-read-f3a9c1 1.0.1–1.0.2 கூடுதல் சிங்க் மார்க்கர்களைச் சேர்க்கிறது ECT-987654, ECT-654321, ECT-839201
மாறிகள் ecto-corsair-flag-x9m4 1.0.0, ecto-nightly-spirit 1.1.0 அதே கேடட் பேலோட், அதே C2 மற்றும் பீக்கான்

இந்த கிளஸ்டரின் வரையறுக்கும் பண்பு அதன் வெளியீட்டுத் தாளம் ஆகும்: ஒரே ஒரு தொகுப்பு மற்றும் ஒரே ஒரு பதிப்பிற்குப் பதிலாக, அதே பெயர் விரைவான தொடர்ச்சியில் மீண்டும் மீண்டும் வெளியிடப்படுகிறது, ஒவ்வொரு வெளியீடும் முந்தையதின் ஒரு சிறிய மாறுபாடாக உள்ளது, அத்துடன் அதே உள்ளடக்கத்தைக் கொண்ட வேறு பெயர்களைக் கொண்ட ஒரு சில உடன் வெளியீடுகளும் உள்ளன. இரகசியம் பேசு குறியீடு இரண்டு நெருக்கமான கைரேகைகளாகப் பிரிந்தது — ஒரு தொகுப்பு இரண்டு முக்கியமான கண்டறிதல்களைத் தூண்டுகிறது, மற்றொன்று மூன்றைத் தூண்டுகிறது (ஒரு கூடுதல் கோப்பு-வாசிப்பு முனை) — ஆனால் இரண்டுமே ஒரே தரவுச் சுமைக்குத் தீர்வு காண்கின்றன; வேறுபாடு என்பது குறியீட்டு நகர்வு, நடத்தை சார்ந்த கிளைப்பிரிவு அல்ல. பதிப்புகள் இரகசியம் பேசு பகுப்பாய்வு செய்யப்பட்ட வரம்பிற்கு அப்பாற்பட்டவை (இக்கட்டுரை எழுதப்படும் நேரத்தில் குறைந்தபட்சம் 1.0.25 வரை) பதிவகத்தில் நேரடியாகக் காணப்பட்டன, மேலும் பவள-பேய் பெயர் அதே சாளரத்தின் மீது தனது சொந்த பதிப்பு ஏணியில் தொடர்ந்து ஏறியது.

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

கீழே உள்ள அனைத்து குறிகாட்டிகளும் வட்டில் உள்ள தொகுப்பு மூலத்திலிருந்து எடுக்கப்பட்டன. பிணையக் குறிகாட்டிகளின் செயல்திறன் குறைக்கப்பட்டுள்ளது.

பிணையம்

காட்டி செயல்பங்கு
hxxp://154[.]57[.]164[.]71:30782 C2 PUT இலக்கு (coral-wraith)
hxxp://154[.]57[.]164[.]80:30543 C2 PUT ஃபால்பேக் (ecto-*)
hxxp://154[.]57[.]164[.]82:31250 C2 PUT ஃபால்பேக் (ecto-*)
hxxp://154[.]57[.]164[.]71:31289 C2 PUT ஃபால்பேக் (ecto-*)
hxxps://webhook[.]site/602a4c72-7033-4e28-92ea-dc66e59206e5 பீக்கான் கலெக்டர்
169[.]254[.]169[.]254/latest/... IMDSv2 நற்சான்றிதழ் வாசிப்பு (இலக்குத் தரப்பு, AWS மெட்டாடேட்டா)

நடத்தை/கோப்பு

காட்டி செயல்பங்கு
"postinstall": "node postinstall.js" நிறுவல் திசையன்
ecto_module: YAML உடன் power_level / ship_deck / cargo_hold விசைகளை Exfil வெளிப்படுத்தல் திட்டம்
சிங்க் மார்க்கர்கள் ECT-472839, ECT-987654, ECT-654321, ECT-839201 C2 பாதை பிரிவு /api/modules/<marker>
isAppWorker() வாயில்: புரவலன் /^[0-9a-f]{12}$/, cwd கொண்டுள்ளது /app/node_modules செயல்படுத்தும் நிபந்தனை
aws secretsmanager list-secrets மீது us-east-1, eu-west-1, eu-central-1 இரகசியங்களின் எண்ணிக்கை
HTB{...} ரெஜெக்ஸ் ஸ்கிராப் கொடியைக் கைப்பற்றும் அறுவடை

கோப்பு ஹாஷ்கள் (sha256, பகுப்பாய்வு நேரத்தில் கைப்பற்றப்பட்டது)

கோப்பு sha256
coral-wraith/postinstall.js ce5ff035cfdfed1d0015446424b352c27b66bcb77e9fdb0a51e4245199146824
ecto-corsair-whisper-6f3b9 1.0.18/postinstall.js b58432acba376aa6976f0490d9a1c04257ccdbc856d8390260c50322d63e31c3

காரணம் மற்றும் கவனிக்கப்பட்ட நடத்தை

ஐந்து தொகுப்புப் பெயர்களும் இரண்டு npm கணக்குக் கைப்பிடிகளின் கீழ் வெளியிடப்பட்டன, ஆனால் அவற்றை ஒரே கிளஸ்டராகக் கருதுவதற்குப் போதுமான உள்கட்டமைப்பை அவை பகிர்ந்து கொள்கின்றன: அதாவது, ஒரே மாதிரியானவை. எக்டோ_தொகுதி வெளிப்படையான ஸ்கீமா, அதே ECT-472839 முதன்மை சிங்க் மார்க்கர், அதே வெப்ஹூக்.தளம் கலெக்டர் ஐடி மற்றும் C2 எண்ட்பாயிண்ட்கள் ஒரே 154.57.164.0/24` தொகுதி. விதை தொகுப்பு (`coral-wraith`)(எளிமையான மற்றும் தடையற்ற) மற்றும் தடைசெய்யப்படாத எக்டோ-குடும்பம் ஆகியவை தனித்தனி முயற்சிகளாகக் கருதப்படாமல், ஒரே கருவித்தொகுப்பின் மீதான மீள்செயல்பாடுகளாகவே வாசிக்கப்படுகின்றன.

பிற்கால பதிப்புகளில், அந்த தொகுப்புகள் தங்களை இவ்வாறு விவரிக்கின்றன: வெர்டாசியோ விநியோகச் சங்கிலி சோதனைக்கான CTF பேலோட். அந்த லேபிளை ஒரு கண்கூடாகத் தெரியும் உண்மையாக நாங்கள் வெளிப்படுத்துகிறோம், அதை நோக்கத்தைப் பற்றிய ஒரு கண்டுபிடிப்பாக மீண்டும் கூறவில்லை. அந்தக் குறியீடு என்ன செய்கிறது என்பது அது எவ்வாறு லேபிளிடப்பட்டுள்ளது என்பதைச் சாராமல் தெளிவானது: அது இன்ஸ்டன்ஸ் மெட்டாடேட்டா சேவையிலிருந்து IAM ரோல் சான்றுகளைப் படிக்கிறது, மூன்று AWS பிராந்தியங்களில் நிர்வகிக்கப்படும் இரகசியங்களைப் பட்டியலிடுகிறது, மேலும் முடிவுகளை ஒரு பொது ஐபி மற்றும் ஒரு மூன்றாம் தரப்பு வெப்ஹூக் சேகரிப்பாளருக்கு அனுப்புகிறது. உண்மையான லூப்பேக்-மட்டும் சோதனை அமைப்புக்கு பொது-ஐபி ஃபால்பேக் பட்டியல், IMDS சான்று வாசிப்புகள் அல்லது பிராந்தியங்களுக்கிடையேயான சீக்ரெட்ஸ் மேனேஜர் அழைப்புகள் தேவையில்லை. எக்ரெஸ் மற்றும் சான்று சென்றடைதல் ஆகியவை உண்மையானவை என்பதால், கட்டுப்படுத்தப்பட்ட பதிப்புகள் தீங்கிழைப்பவையாக வகைப்படுத்தப்பட்டன.

கண்டெய்னர்-மட்டுமே என்ற கட்டுப்பாடு, செயல்பாட்டு ரீதியாக மிகவும் குறிப்பிடத்தக்க அம்சமாகும். இது மடிக்கணினிகளிலும் பகுப்பாய்வு சோதனைக் களங்களிலும் அமைதியாக இருப்பதன் மூலம் ஒரு தவிர்ப்பு நடவடிக்கையாகவும், அதே சமயம் ஒரு உண்மையான IAM பங்கும் நேரடி இரகசியங்களும் இருப்பதற்கு அதிக வாய்ப்புள்ள இடங்களில் மட்டும் செயல்படும் ஒரு இலக்கு நிர்ணயிக்கும் நடவடிக்கையாகவும் உள்ளது. ஒரு பொதுவான சோதனைக் களத்தில் இந்தப் தொகுப்புகளை இயக்கும் பகுப்பாய்வாளர்கள் எதையும் கவனிக்க மாட்டார்கள்; இந்தச் செயல்பாடு, டாக்கர் பாணியிலான ஹோஸ்ட்பெயர் மற்றும் கண்டெய்னருக்குள் நிறுவப்பட்ட பாதையின் கீழ் மட்டுமே வெளிப்படுகிறது.

பாதுகாவலர்களுக்கான தாக்கம், போக்குகள் மற்றும் வழிகாட்டுதல்

இங்குள்ள பாதிப்பு என்பது, பில்ட் மற்றும் ரன்டைம் கண்டெய்னர்களுக்குள் கிளவுட்-கிரெடென்ஷியல் மற்றும் இரகசியங்கள் வெளிப்படுவதாகும். IMDS-இலிருந்து பெறப்பட்ட ஒரு IAM ரோல் கிரெடென்ஷியல், அந்த ரோல் கொண்டிருக்கும் அனுமதிகள் அனைத்தையும் கொண்டிருக்கும்; இரகசிய மேலாளர்: பட்டியல் இரகசியங்கள் (மற்றும் ஏதேனும் தொடர் நிகழ்வுகள்) GetSecretValueஇது சேமிக்கப்பட்ட பயன்பாட்டு இரகசியங்கள் வரை அதை விரிவுபடுத்துகிறது. சூழல்-மாறித் தொகுப்புகள் பெரும்பாலும் பதிவக டோக்கன்கள், தரவுத்தள URLகள் மற்றும் API விசைகளைக் கொண்டுள்ளன. ஒரு CI அல்லது கண்டெய்னர் சூழலில் — சரியாக இந்த கேட் தேர்ந்தெடுப்பது இதுதான் — இந்தத் தொகுப்புகளில் ஒன்றின் ஒற்றை இடைநிலை நிறுவல் கூட அந்தத் தகவல்களைக் கசியவிடப் போதுமானது.

நாம் தொடர்ந்து காணும் ஒரு வடிவத்திற்கு எக்டோபிளாசம் பொருந்துகிறது: அதாவது, நிறுவும் நேரத்தில் உருவாக்கப்படும் தரவுப் பொதிகள், உள்ளூர் கோப்புகளுக்குப் பதிலாக கிளவுட் மெட்டாடேட்டா மற்றும் நிர்வகிக்கப்படும் இரகசியங்களை அணுகுவதுடன், அதிக மதிப்புள்ள சூழல்களில் மட்டுமே செயல்படுமாறு தங்களைத் தாங்களே கட்டுப்படுத்திக் கொள்கின்றன. இதைத் தொடர்ந்து இரண்டு பாதுகாப்பு சார்ந்த அவதானிப்புகள் வருகின்றன.

  • வடிவத்தைக் கண்டறிய முடியும்ஒரு npm/PyPI நிறுவல் ஹூக், அதன் அழைப்பு வரைபடம் ஒரு கிளவுட் சீக்ரெட்ஸ் API-ஐயும் சென்றடைகிறது.AWS இரகசிய மேலாளர், gcloud இரகசியங்கள், அஸ் கீவால்ட்) அல்லது IMDS முகவரி மற்றும் ஒரு நெட்வொர்க் எக்ரெஸ் சிங்க் என்பது ஒரு குறுகிய, உயர்-சமிக்ஞை வடிவமாகும் — இது ஒரு முறையான வாழ்க்கைச் சுழற்சி ஸ்கிரிப்ட்டில் கிட்டத்தட்ட ஒருபோதும் நிகழ்வதில்லை. நிலையான ஓட்ட பகுப்பாய்வு எந்தவொரு குறிப்பிட்ட டொமைன் அல்லது ஐபி முகவரியையும் சாராமல் அதைக் கொடியிட முடியும்.
  • சுற்றுச்சூழல் கடினமாக்கல் அதன் வீரியத்தைக் குறைக்கிறது. 1 என்ற ஹாப் வரம்புடன் IMDSv2-ஐ அமல்படுத்துவது, கண்டெய்னர் பணிச்சுமைகள் இன்ஸ்டன்ஸ் மெட்டாடேட்டாவை அடைவதைத் தடுக்கிறது; IAM ரோல்களை குறைந்தபட்ச சிறப்புரிமைக்கு வரையறுப்பது, கசியும் எந்தவொரு நற்சான்றிதழின் பாதிப்பு வீச்சையும் கட்டுப்படுத்துகிறது; மற்றும் நிறுவுதல்களை இயக்குவது ஸ்கிரிப்ட்களை புறக்கணிக்கவும் CI-இல், தேவைப்படாத தொகுப்புகளுக்கு இன்ஸ்டால்-ஹூக் வெக்டர் முழுவதுமாக அகற்றப்படுகிறது.

பாதுகாப்பாளர்களுக்கான நடைமுறைச் சோதனைகள்: பில்ட்/சிஐ கண்டெய்னர்களில் இருந்து அனுமதிக்கப்படாத பொது ஐபி முகவரிகளுக்கு வரும் வெளிச்செல்லும் இணைப்புகள் குறித்து எச்சரிக்கை செய்தல். npm நிறுவுதொகுப்பு வாழ்க்கைச் சுழற்சி ஸ்கிரிப்டுகளிலிருந்து உருவாகும் IMDS அணுகலைக் கண்காணிக்கவும்; மேலும், கிளவுட் CLI-க்கு அனுப்பும் எந்தவொரு நிறுவல் ஹூக்கையும், அது நிரூபிக்கப்படும் வரை சந்தேகத்திற்குரியதாகக் கருதவும்.

இந்தக் கிளஸ்டர் தொடர்பான மேலும் இரண்டு குறிப்புகள். முதலாவதாக, செயல்படுத்தல் கண்டெய்னர்மயமாக்கப்பட்ட சூழல்களுக்கு மட்டுமே கட்டுப்படுத்தப்பட்டுள்ளதால், ஒரு பணிநிலையத்தில் சரிபார்க்கப்படும்போது செயலற்றதாகத் தோன்றும் ஒரு தொகுப்பு, உற்பத்திச் சூழலில் இன்னும் இயங்கிக்கொண்டிருக்கலாம் — சரிபார்ப்பானது, "நான் அதை நிறுவினேன், எதுவும் நடக்கவில்லை" என்பதைச் சார்ந்திருப்பதை விடுத்து, கண்டெய்னரின் ஹோஸ்ட்பெயர் மற்றும் பாதை நிபந்தனைகளை மீண்டும் உருவாக்க வேண்டும், அல்லது மூலக் குறியீட்டை நேரடியாகப் படிக்க வேண்டும். இரண்டாவதாக, ஒரு பீக்கான் சேகரிப்பாளராகப் பொதுக் கோரிக்கை-ஆய்வுச் சேவையைப் பயன்படுத்துவதால், வெளியேற்றப்பட்ட சில தரவுகள் சம்பவப் பதிலளிப்பிற்காக மீட்கப்படக்கூடும்: ஒரு நிறுவனம் தனது சார்புநிலைக் கோப்பில் இந்தத் தொகுப்புகளில் ஒன்றைக் கண்டறிந்தால், பேலோடின் சேகரிப்புத் தர்க்கத்திலிருந்து ஒரு வெற்றிகரமான பீக்கான் எதைக் கொண்டிருந்திருக்கும் என்பதைப் பற்றி அது பகுத்தறிய முடியும், மேலும் பாதிக்கப்பட்ட உருவாக்கம் அல்லது இயக்க நேரச் சூழலிலிருந்து அணுகக்கூடியதாக இருந்த IAM பங்கு நற்சான்றிதழ்கள், பதிவக டோக்கன்கள் மற்றும் நிர்வகிக்கப்பட்ட இரகசியங்கள் ஆகியவற்றை அது சுழற்சி முறையில் மாற்ற வேண்டும். சான்றிதழ் சுழற்சிஒரு நிறுவல் முடிந்தவுடன், தொகுப்பை அகற்றுவது அல்ல, மாறாக அதைச் சரிசெய்வதே நடைமுறைச் செயல் ஆகும்.

sca-tools-software-composition-analysis-tools
உங்கள் மென்பொருள் அபாயங்களுக்கு முன்னுரிமை அளித்து, சரிசெய்து, பாதுகாக்கவும்.
உங்கள் இலவச கணக்கைப் பெறுங்கள்.
கடன் அட்டை தேவையில்லை.

உங்கள் மென்பொருள் உருவாக்கம் மற்றும் விநியோகத்தைப் பாதுகாக்கவும்

Xygeni தயாரிப்பு தொகுப்புடன்