فك تشفير ملاحظات Apple المقفلة على iOS 16.x: سير العمل الجنائي الكامل (SQLite، CyberChef، Python) الذي يضم Hashcat

مقدمة

أثناء تحليلي لجهاز اختباري باستخدام أداة تجارية شهيرة للتحليل الجنائي للأجهزة المحمولة، صادفتُ شيئًا مثيرًا للاهتمام، وهو مذكرة أبل مقفلة ظهرت فقط على أنها "مخفية". أظهرت الأداة ملخص المذكرة (المسمى "لانس")، لكن المحتوى الفعلي كان مفقوداً. لم يكن هناك أي دليل على ما يكمن تحت القفل، مما جعلني أتساءل بشدة: هل يمكنني الكشف عن السر الموجود بالداخل؟ كنت بحاجة إلى سير عمل يساعدني في فك تشفير Apple Notes على نظام iOS 16.

كان الجهاز يعمل iOS 16.7.10وبعد أن بحثت في قاعدة بيانات NoteStore.sqlite، أدركت أن جميع أدلة التشفير كانت موجودة هناك - في انتظار فك تشفيرها. وبمساعدة أدوات مفتوحة المصدر، شرعتُ في استعادة كلمة المرور وفك تشفير محتويات المذكرة.            

يرشدك هذا المنشور إلى سير عمل الطب الشرعي الكامل حول كيفية فك تشفير Apple Notes على iOS 16:

  • 🔓 هاش كات لاختراق كلمات المرور
  • 🗄️ متصفح قاعدة البيانات ل SQLite لاستكشاف واستخراج معلمات التشفير
  • 🐍 نصوص بايثون النصية لاشتقاق المفتاح وفك تغليف مفتاح AES
  • 🔍 سايبر شيف لفك تشفير حمولة البروتوبوف النهائية وفك ضغطها وتحليلها

⚠️ ملاحظة مهمة: ينطبق سير العمل هذا بشكل خاص على Apple Notes المقفل على iOS 16.x. بدءاً من نظام التشغيل iOS 17، غيّرت Apple طريقة تخزين الملاحظات المشفرة - ويجلب نظام iOS 18 المزيد من التغييرات.

دعنا نتعمق في الأمر ونكشف عن الرسالة الخفية داخل مذكرة Apple المقفلة.

التعمق في NoteStore.sqlite

في هذه المرحلة، عرفت أن محتويات المذكرة المشفرة كانت مخزنة في NoteStore.sqlite، وتحديدًا في جدول ZICNOTEDATA. غالبًا ما تقوم شركة Apple gzips بيانات البروتوبوف الخاص بالملاحظة، ولكن في حالة الملاحظات المقفلة، فإن BLOB بأكمله يكون أولاً مشفر-مما يعني أن محاولة فك الضغط المباشر لن تسفر عن نص قابل للقراءة. ستحتاج إلى مفتاح فك التشفير الصحيح قبل أن يحدث أي نوع من فك الضغط أو تحليل البروتوبوف.
فك تشفير Apple Notes iOS 16 باستخدام متصفح SQLite DB Browser
BLOB مشفر في حقل ZDATA للملاحظة المقفلة (متصفح قاعدة البيانات لـ SQLite)

في لقطة الشاشة، يمكنك رؤية القيم السداسية العشرية الخام ل ZDATA. يتم تشويش هذه البيانات بشكل فعال بواسطة تشفير AESمع حفظ البيانات الوصفية الهامة - مثل الأملاح وأعداد التكرار - في أجزاء أخرى من قاعدة البيانات. من الفاحص الجنائي من المنظور، فإن إدراكك أن الملاحظة مشفرة بالكامل هو إشارتك للتعمق أكثر في جدول ZICCLOUDSYNCINGOBJECT لمعرفة المعلمات اللازمة ل الكراك رمز المرور و فتح القفل الملاحظة 🔓.

لماذا يتم تشفير ملاحظات أبل المقفلة على نظام التشغيل iOS 16؟

تقوم Apple Notes بتأمين الملاحظات المؤمنة باستخدام مزيج من PBKDF2 (اشتقاق المفتاح) و AES (التشفير). عندما يتم تمكين كلمة مرور على ملاحظة، تقوم Apple بتخزين البيانات الوصفية التشفيرية الرئيسية في قاعدة البيانات - مثل:

  • عدد مرات التشفير zcryptoiterationcount
  • زCRYPTOSALT
  • مفتاح zcryptowrapped

تضمن هذه القيم أن الشخص الذي لديه رمز المرور الصحيح هو فقط من يمكنه فك تشفير محتوى الملاحظة.

نهج الطب الشرعي

من وجهة نظر الطب الشرعي، تتضمن خطواتك عادةً ما يلي:

  1. تحديد إدخالات الملاحظات المقفلة ذات الصلة في ZICNOTEDATA و ZICCLOUDSYNCINGOBJECT.
  2. مقتطفات تفاصيل التشفير - مثل عدد مرات التكرار، والملح، والمفتاح الملفوف.
  3. الكراك كلمة مرور المستخدم مع هاش كات (أو أداة أخرى لاستعادة كلمات المرور مثل John the Ripper أو Passware).
  4. اشتقاق المفاتيح النهائية في بايثون أو سايبر شيف و فك التشفير المذكرة الخاصة بـ BLOB
  5. إزالة الضغط بيانات البروتوبوف المفتوحة (مع سايبر شيف أو بايثون) للكشف عن النص العادي النهائي.

اختراق كلمة مرور Apple Note المقفلة باستخدام Hashcat

كان هدفي هو محاكاة سيناريو جنائي واقعي: كان لديّ جهاز Apple Note مقفل وكنت بحاجة إلى استعادة رمز المرور الخاص به لفك تشفير المحتوى. هنا حيث هاش كات في اللعب. بالاستفادة من وضع تجزئة Apple Secure Notes (المعرف 16200)، حاول Hashcat تجربة كلمات المرور بشكل منهجي حتى يعثر على كلمة المرور الصحيحة.

استخراج الأعمدة المطلوبة

بدأت بفتح NoteStore.sqlite في متصفح قاعدة البيانات واستهداف الصفوف ذات ZISPASSWASSWORDPROTECTED = 1 في جدول ZICCLOUDSYNCINGOBJECT. ثم استعلمت عن الأعمدة التالية:

  • Z_PK - المعرف الفريد للمذكرة.
  • ZCRYPTOSALT - قيمة الملح لـ PBKDF2.
  • ZCRYPTOWRAPPEDKEY - المفتاح المغلف الذي سيتم فك تغليفه لاحقًا.
استعلام SQLite للمعلمات المطلوبة ل Hashcat

تم إنشاء ملف الإدخال Hashcat بواسطة برنامج نصي صغير من Python Notes_to_hashcat.pyوالتي نسقت هذه القيم في سطر واحد يمكن ل Hashcat تحليلها، بما في ذلك عدد التكرارات (من ZCRYPTOITERATIONCOUNT).

يقوم notes_to_hashcat.py بجمع المعلمات المطلوبة لاختراق كلمة مرور Apple Note المقفلة على iOS 16
الإخراج من notes_to_hashcat.py

تشغيل Hashcat لفك تشفير كلمة مرور Apple Note المقفلة

بعد أن أصبح ملف إدخال Hashcat جاهزًا والقاموس في متناول اليد، قمت بتشغيل الأمر التالي:

hashcat -m 16200 -a 0
هنا:
  • -م 16200 يحدد وضع Apple Secure Notes الآمن.
  • -أ 0 يضبط Hashcat على وضع الهجوم المباشر (القاموسي).
  • يمكن أن يكون القاموس شيئاً مثل روك يو.تكس أو قائمة مخصصة مشتقة من القطع الأثرية للأجهزة.
استخدام Hashcat لفك تشفير كلمة مرور Apple Notes المقفلة
هاش كات تكشف عن كلمة المرور المخترقة: royalewithcheese

نجح Hashcat في تحديد كلمة المرور الصحيحة: royalewithcheese. في التحقيق الفعلي، قد يكون قاموسك أكبر بكثير، ولكن هذه النتيجة أكدت أن Hashcat يمكنه التعامل مع الرفع الثقيل.

اشتقاق مفتاح التشفير الرئيسي (KEK) لفك تشفير Apple Notes

مع وجود كلمة المرور في متناول اليد، كانت الخطوة التالية هي اشتقاق مفتاح التشفير الرئيسي (KEK)والذي يُستخدم لتغليف مفتاح AES النهائي الذي يشفر محتوى الملاحظة. لاشتقاق KEK، كنت بحاجة إلى القيم التالية من جدول ZICCLOUDSYNCINGOBJECT:

  • عبارة المرور (كلمة المرور المخترقة)
  • عدد مرات التكرار (zcryptoiterationcount)
  • الملح (ZCRYPTOSALT)

على سبيل المثال، باستخدام متصفح قاعدة البيانات (DB Browser)، قمت بالاستعلام عن:

حدد ZCRYPTOITERATIONCOUNT, ZCRYPTOSALT من ZICCLOUDSYNCINGOBJECT حيث Z_PK = ;
الاستعلام من NoteStore.sqlite عن الملح وعدد التكرارات اللازمة للحصول على KEK اللازم لفك تشفير ملاحظات Apple المقفلة
عدد التكرارات | 20000 | الملح: d1afa96252252a15d8d58827bcb21940de1

بعد ذلك، فتحتُ CyberChef - وهي أداتي المفضلة 🛠️ - وسحبتُ عملية "اشتقاق مفتاح PBKDF2". ضبط دالة التجزئة على SHA-256 وإدخال كلمة المرور والملح وعدد مرات التكرار، أنتج CyberChef 16 بايت KEK:

يُستخدم CyberChef لاشتقاق KEK من معلمات PBKDF2 لفك تشفير Apple Note.
KEK: a1dac1516302e1d3d73ad4fd4b6f8fef

لأتمتة هذه العملية، أنشأتُ نصًا برمجيًا من بايثون يسمى get_key.pyالذي يقبل مسار قاعدة البيانات ومذكرة PK وكلمة المرور كوسائط. يؤدي تشغيله إلى إرجاع KEK بالسداسي السداسي.

python get_kek.py NoteStore.sqlite

النتيجة:
ملحوظة PK=16: KEK (سداسي عشري) = a1dac151616302e1d3d3d73ad4fd4fd4b6f8fef

فك تشفير مفتاح AES لفك تشفير ملاحظات Apple المقفلة على نظام iOS 16

كانت الخطوة التالية هي فك غلاف المفتاح المستخدم لتشفير محتوى الملاحظة. يتم تخزين المفتاح المغلف في عمود ZCRYPTOWRAPPEDKEY في ZICCLOUDSYNCINGOBJECT. على سبيل المثال، استعلمت عن::

حدد zcryptowrappedkey من ziccloudsyncingobject حيث z_pk = 16;
استعلام SQLite عن المفتاح غير المغلف المطلوب لفك تشفير ملاحظات الاستئناف على iOS16
مفتاح ملفوف 78c2b79c3e357117c95feb882009e14be9e5f88598ea6db0

خيارات إلغاء التغليف

الخيار 1: فك تشفير مفتاح AES لفك تشفير ملاحظات Apple المقفلة على نظام iOS 16 باستخدام CyberChef

عطلت أي عمليات سابقة، وبحثت عن "AES Key Unwrap" وسحبته إلى نافذة الوصفة. بلصق مفتاح KEK والمفتاح الملفوف، أخرج CyberChef مفتاح AES غير الملفوف.

يُستخدم CyberChef لاشتقاق KEK وفك تشفير AES لفك تشفير Apple Notes على نظام iOS 16
مفتاح غير مغلف 4b1f0c718aa05a0d097d7bf4865c89d1

الخيار 2: أتمتة AES Key Unwrap باستخدام unrap.py

قمت أيضًا بتطوير برنامج نص برمجي من بايثون يسمى فك الغلاف.py الذي يأخذ مسار قاعدة البيانات و KEK (بالصيغة السداسية) كوسيطات. يؤدي تشغيل هذا البرنامج النصي إلى فك تغليف المفتاح وطباعته بتنسيق سداسي عشري. في حالتي، كان المفتاح غير المغلف هو:

python unwrap.py NoteStore.sqlite
نص Python البرمجي Python uncrap.py يعرض مفتاح AES المشفر لـ Apple Notes المقفل
مفتاح غير مغلف 4b1f0c718aa05a0d097d7bf4865c89d1

هذا هو مفتاح AES النهائي الذي سيُستخدم لفك تشفير محتوى نوتة Apple المؤمّنة.

فك تشفير ملفات Apple Notes BLOBs باستخدام AES-GCM على نظام التشغيل iOS 16

الآن وبعد أن حصلت على المفتاح غير المغلف، حان الوقت لفك تشفير Apple Notes BLOB المخزن في بيانات ZICNOTEDATA الجدول. تستخدم أبل AES في وضع GCM لحماية محتويات الملاحظات المقفلة، مما يعني أنني كنت بحاجة إلى أربعة عناصر أساسية للمتابعة:

  • 🔑 مفتاح AES غير ملفوف AES

  • 🔁 متجه التهيئة (IV) من ناقل التهيئة zcryptoinitializationvector

  • 🏷 علامة مصادقة GCM من ZCRYPTOTAG

  • 💾 BLOB مشفر BLOB من ZDATA

📤 استخراج علامة IV وعلامة GCM من NoteStore.sqlite

لتحديد موقع رابعاً و علامة GCMقمت بفتح بيانات ZICNOTEDATA في متصفح قاعدة البيانات ل SQLite. يتم تخزين هذه الحقول كقيم ثنائية ويمكن العثور عليها إما في بيانات ZICNOTEDATA أو زيككلينجيت الجداول. كلاهما يخزن البيانات تحت نفس أسماء الأعمدة.

  • رابعاً: 5c0c0bde9b6801747ddad1115a422d05

  • علامة GCM: b9087ba19e3c7deff2cb4b9b51e6aafa

كانت BLOB المشفرة نفسها مرئية أيضًا في ZDATA العمود. نسخت القيم الثلاث بصيغة سداسية عشرية، استعدادًا لخطوة فك التشفير النهائية.

متجه التهيئة 5c0c0bde9b6801747ddad1115a422d05
متصفح قاعدة البيانات يعرض علامة GCM المستخدمة لفك تشفير AES-GCM
الوسم GCM: b9087ba19e3c3c7deff2cb4b9b9b51e6aafa
متصفح قاعدة البيانات مع إبراز بيانات Apple Note BLOB المشفرة
BLOB المشفر

🧪 فك تشفير المذكرة باستخدام CyberChef

مع وجود كل شيء في متناول اليد، التفت إلى سايبر شيف. جعلت هذه الأداة من السهل دمج جميع المعلمات والكشف عن المحتوى الأصلي. إليك ما فعلته:

  1. أضفتُ "فك تشفير AES" العملية.

  2. لقد ألصقتُ مفتاح AES غير مغلف في حقل المفتاح.

  3. لقد ضبطت الوضع إلى GCM.

  4. لقد أدخلت علامة IV وGCM في مجالات تخصصهم.

  5. وأخيراً، قمتُ بنسخ BLOB مشفر في نافذة الإدخال.

بمجرد أن ضربت خبزقام CyberChef بفك تشفير BLOB وكشف عن ملف مضغوط - وهو بالضبط ما كنت أتوقعه. كان هذا يعني أن طبقة التشفير قد أزيلت بالكامل، ويمكنني الانتقال إلى فك ضغط البيانات.
وصفة CyberChef لفك تشفير Apple Notes BLOB باستخدام وضع AES-GCM
ملف GZIP مفكوك التشفير

فك ضغط المذكرة النهائية وتحليلها (فك تشفير البروتوبوف من Apple Notes)

بعد فك تشفير BLOB المشفّر ب AES، قمتُ بحفظ الإخراج في ملف باسم فك تشفير_بلوب.بن وفتحه في HxD. توقيع الملف 0x1F8B08 تم التأكد من أنه ملف مضغوط GZIP-تستخدم Apple هذا لضغط بيانات البروتوبوف.

لاستخراج النص العادي، أعدتُ فتح CyberChef وأضفتُ غونزيب إلى سير العمل. على الفور، بدأت السلاسل المألوفة في الظهور في الإخراج.

CyberChef يعرض بيانات بروتوبوف من Apple Notes بعد استخراج GZIP
فك ضغط البروتوبوف في CyberChef

بمجرد فك الضغط، قمت بتطبيق فك تشفير بروتوبوف في CyberChef. كانت النتيجة عرضًا منظمًا يشبه JSON، مع مفاتيح وقيم تمثل محتويات مذكرة Apple المقفلة.

عرض CyberChef لهيكل بروتوبوف Apple Notes مفكوك الشفرة بتنسيق يشبه JSON
فك تشفير بروتبوف في CyberChef

لتسهيل القراءة، استخدمت أيضًا نصًا برمجيًا من Python يستفيد من باك بوكس بروتوبوف لتحليل ملف البروتوبوف وطباعة المخرجات بتنسيق نظيف ومقروء بشريًا.

موجه الأوامر يعرض محتوى مذكرة Apple المحللة باستخدام برنامج Backboxprotobobuf Python النصي
نتائج منسقة بشكل جيد ومطبوعة على الشاشة

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

لقطة شاشة باستخدام UFADE لمحتوى Apple Note المقفل

🔚 الخاتمة

تهانينا 🎉 - لقد أكملت للتو سير عمل الطب الشرعي الكامل لـ فك تشفير ملاحظات Apple Notes المقفلة على iOS 16. لقد استخرجت معلمات التشفير من قاعدة بيانات SQLite، وفككت كلمة المرور باستخدام هاش كاتاشتقاق مفتاح AES وفك غلافه باستخدام بايثونوأخيرًا فك تشفير البروتوبوف وتحليله باستخدام سايبر شيف. كل خطوة تقربك من كشف محتويات المذكرة المخفية.

تثبت هذه الجولة التدريبية العملية مدى قوة أدوات مفتوحة المصدر في الطب الشرعي الرقمي. فهي تساعد المحققين في الكشف عن ملاحظات Apple المشفرة التي قد تفوت الأدوات التجارية - خاصةً على الأجهزة التي تعمل iOS 16 أو أقدم.

🕵️ المكافأة: تلميح كلمة المرور

إليك لمسة إضافية - لقد وجدتُ تلميح كلمة المرور في زيككلينجيت الجدول:

ربع باوندر

وبما أن الجهاز ينتمي إلى شخص يدعى "فنسنت"، لم يكن من الصعب تخمين كلمة المرور: رويالويتشيز - إشارة إلى بولب فيكشن. في الحالات الحقيقية، يمكن لتلميحات كلمات المرور مثل هذه أن تسرّع من سير العمل عندما تقترن بعملية اختراق استراتيجية.

📱 شيء آخر... حول نظامي iOS 17 و iOS 18

ينطبق هذا الدليل تحديداً على كيفية فك تشفير ملاحظات Apple Notes على نظام التشغيل iOS 16 والإصدارات الأقدم. بدءًا من دائرة الرقابة الداخلية 17، أدخلت Apple تغييرات كبيرة على عملية تشفير Notes. قد تواجه حقول اشتقاق مفاتيح مفقودة أو هياكل تشفير مختلفة أو ملاحظات لم تعد تُشفّر باستخدام نفس الطرق.

إذا كنت تستكشف كيفية فك تشفير Apple Notes على iOS 17 أو iOS 18، أود أن أتعاون معك. شاركنا نتائجك - دعنا نحل التشفير الجديد معاً.

شكراً على القراءة! هل لديك أسئلة أو أفكار؟ ضعها في التعليقات أدناه أو تواصل معنا مباشرةً. دعونا نستمر في دفع حدود اكتشاف الطب الشرعي. 🔍

فيسبوك
تويتر
البريد الإلكتروني
طباعة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

اشترك لتبقى على اطلاع دائم بالمستجدات!

لا تفوّت أي منشور - احصل على إشعار كلما نشرنا مقالاً جديداً في المدونة أو دليلاً جنائياً أو شاركنا تحديثات مهمة.

آخر مشاركة