اشکال اساسی یک مشکل بهینه سازی است که در طول کامپایل FTL JIT رخ می دهد. هر دو اکسپلویت نیز چارچوب بهره برداری یکسانی دارند که مجموعه ای از ابزارها را برای اجرای کد دلخواه در اختیار مهاجمان قرار می دهد (مثلاً بارگذار و تجزیه کننده سفارشی MachO، دور زدن قفس PAC و JIT).
چندین تفاوت حداقلی بین این دو اکسپلویت وجود دارد که عبارتند از:
- حالت شکست. اگر در حین بهره برداری مشکلی پیش بیاید، اکسپلویت از سوراخ آبی، اطلاعات را به C2 برمی گرداند و سعی می کند مرورگر را با خطای خارج از حافظه خراب کند. اگر اکسپلویت Intellexa با شکست مواجه شود، اطلاعات را پس نمیفرستد و فقط کاربر را به یک وبسایت قانونی هدایت میکند.
- جمع آوری داده های اضافی از دستگاه هدف. بهره برداری از سوراخ آبیاری دارای یک عملکرد اضافی به نام dacsiloscope با استفاده از خواندن/نوشتن اولیه برای جمع آوری اطلاعات بیشتر در مورد دستگاه مورد نظر است. این اطلاعات بعداً برای تصمیم گیری در مورد اجرای یا عدم اجرای محموله دزد کوکی استفاده می شود. برای مثال، اگر دستگاه PAC نداشته باشد – که ممکن است برای آیفون 8 دارای iOS 16.X باشد – محموله دزد کوکی به سادگی اجرا نمی شود.
دزد کوکی
اکسپلویت iOS همان چارچوب دزد کوکی را بارگیری کرد که TAG در مارس 2021 مشاهده کرد، زمانی که یک مهاجم تحت حمایت دولت روسیه از CVE-2021-1879 برای به دست آوردن کوکی های احراز هویت از وب سایت های برجسته مانند LinkedIn، Gmail و Facebook سوء استفاده کرد. در آن کمپین، مهاجمان از پیامرسانی لینکدین برای هدف قرار دادن مقامات دولتی کشورهای اروپای غربی با ارسال لینکهای مخرب استفاده کردند.
در کمپینهای حفره آب، جریان در نسخههای iOS قدیمیتر از 16.6 همان است که در تجزیه و تحلیل علت ریشه برای CVE-2021-1879 توضیح داده شده است. برای هر وب سایت هدف:
- یک وب سوکت w متصل به یک آدرس IP تحت کنترل مهاجم ایجاد کنید.
- با عبور از مجموعه ای از اشاره گرها، m_universalAccess را در داخل کلاس SecurityOrigin روی 1 تنظیم کنید.
- یک شی URL جدید با اشاره به دامنه مورد نظر ایجاد کنید.
- همه نشانیهای اینترنتی سند websocket w را با URLهای u بازنویسی کنید.
- فیلد m_url از websocket w را با URL u بازنویسی کنید.
- ارسال را در وب سوکت راه اندازی کنید.
- در پایان وبسوکت، مهاجم درخواستهایی را دریافت میکند که به وبسایتهای مورد نظر تحویل داده میشوند، از جمله کوکیهای احراز هویت برای وبسایتهای هدف.
- m_universalAccess را به حالت اولیه بازگردانید.
ماژول دزد کوکی، مجموعه وبسایتهای کدگذاری شده زیر را هدف قرار میدهد:
[“webmail.mfa.gov.mn/owa/auth”, “accounts.google.com”, “login.microsoftonline.com”, “mail.google.com/mail/mu/0”, “www.linkedin.com”, “linkedin.com”, “www.office.com”, “login.live.com”, “outlook.live.com”, “login.yahoo.com”, “mail.yahoo.com”, “facebook.com”, “github.com”, “icloud.com”]
در نسخههای جدیدتر iOS، محموله WebCore::NetworkStorageSession::getAllCookies() را فراخوانی میکند تا همه کوکیها را قبل از استخراج دوباره به C2 جمعآوری کند.
کمپین گوگل کروم
در پایان ژوئیه 2024، یک سوراخ آبی جدید در mfa.gov ظاهر شد[.]وب سایت mn که در آن track-adv[.]com مجددا برای ارائه یک زنجیره بهره برداری گوگل کروم به کاربران اندروید استفاده شد. از یک نمای اجمالی سطح بالا، حمله و هدف نهایی اساساً مشابه iOS یکی هستند – با استفاده از آسیبپذیریهای روز n به منظور سرقت کوکیهای اعتبار – با برخی تفاوتها در بخش فنی. در این مورد، حمله به یک آسیبپذیری اضافی برای فرار از سندباکس نیاز داشت تا از انزوای سایت کروم خارج شود.
- به جای یک iframe ساده که مستقیماً به HTML اضافه شده است، مهاجمان اکنون از یک قطعه جاوا اسکریپت مبهم برای تزریق iframe مخرب با اشاره به https://track-adv استفاده می کنند.[.]com/analytics.php?personalization_id=
. - قبل از ارسال هر مرحله، کلیدهای کریپتو با استفاده از تبادل کلید ECDH مناسب تولید و مبادله می شوند. کمپین های قبلی یک کلید رمزگشایی ثابت از C2 دریافت کردند.
- در هر دو کمپین، حمله از indexedDB برای ذخیره اطلاعات وضعیت در سمت مشتری استفاده می کند. در اکسپلویت iOS پایگاه داده منهای و در اکسپلویت کروم پایگاه داده ردیاب نامگذاری شد.
- یک شناسه منحصر به فرد با استفاده از همان قالب (به عنوان مثال، 2msa5mmjhqxpdsyb5vlcnd2t) تولید شد و به عنوان پارامتر tt= در تمام مراحل ارسال شد.