تقييم الموضوع :
  • 2 أصوات - بمعدل 5
  • 1
  • 2
  • 3
  • 4
  • 5
دورة تدريبية حول الهندسة العكسية لتطبيقات نظام iOS - الوحدة 1 |مترجمة
#1
دورة تدريبية مجانية مفتوحة المصدر حول الهندسة العكسية لتطبيقات نظام iOS ا| A completely free, open source and online course about Reverse Engineering iOS Applications
ملاحظة المترجم : السلام عليكم، هذه دورة قام بنشرها مهندس امني يعمل لدى جوجل قبل اقل من شهر وأحببت ان أترجمها لكم لكي تعم الفائدة، سأترجمها كلها بعون الله حسب توفر الوقت لدي)

مرحبًا بكم في دورتي الخاصة بالهندسة العكسية لتطبيقات نظام iOS. إذا كنت هنا فهذا يعني أنك تشاركني اهتمامي بأمان التطبيقات وثغراتها على iOS. أو ربما نقرت للتو على رابط خاطئ؟

جميع الثغرات الامنية التي ساشرحها لك هنا حقيقية، قد تم العثور عليها في التطبيقات المعدة للمستخدمين النهائيين من قِبل الباحثين الامنيين، بمن فيهم أنا، كجزء من برامج الـbug bounty أو مجرد إجراء أبحاث اعتيادية. أحد الأسباب التي تجعلك لا ترى في كثير من الأحيان المقالات التي تشرح هذه الأنواع من الثغرات الأمنية هي أن معظم الشركات تحظر نشر هذا المحتوى. لقد ساعدنا هذه الشركات من خلال الإبلاغ عن هذه المشكلات وتم مكافأتنا بمكافآت مالية مقابل ذلك، لكن لا أحد غير الباحث (الباحثين) وفريق مهندسي البرمجيات الخاصين بالشركة سيتعلمون من هذه التجارب. وهذا جزء من السبب في أنني قررت إنشاء هذه الدورة التدريبية، من خلال إنشاء تطبيق مزيف لنظام التشغيل iOS يحتوي على جميع الثغرات الامنية التي واجهتها من خلال بحثي الامني الخاص أو في المنشورات القليلة جدًا من باحثين امنيين آخرين. على الرغم من أن هناك بالفعل بعض المشاريع [^1] التي تهدف إلى تعليمك المشكلات الشائعة في تطبيقات iOS، إلا أنني شعرت أننا بحاجة إلى مشروع يظهر نوع الثغرات التي وجدناها على التطبيقات التي تم تنزيلها من App Store.

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

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

الوحدات
المتطلبات الأساسية
المقدمة
الوحدة 1 - إعداد البيئة
الوحدة 2 - فك تشفير تطبيقات iOS
الوحدة 3 - تحليل ستاتيكي - Static Analysis
الوحدة 4 - التحليل الديناميكي والقرصنة - Dynamic Analysis and Hacking
الوحدة 5 - الترقيع الثنائي - Binary Patching
افكار اخيرة
مصادر
[حقوق النشر 2019 إيفان رودريغيز <ios [at] ivrodriguez.com>]

[^ 1] أحب العمل الذي قام به prateekg147@ مع DIVA و OWASP مع iGoat. إنها أدوات رائعة للبدء في تعلم كيف تعمل التطبيقات من الداخل في نظام iOS وبعض الثغرات التي واجهها المطورين في الماضي ، لكنني أعتقد أن العديد من المشكلات التي تظهر هناك نظرية أو غير عملية ويمكن مقارنتها بـ "self-hack" . يشبه الامر النظر إلى الكود المصدري لصفحة ويب في متصفح الويب، فأنت ستفهم الكود الستاتيكي (HTML/Javascript) لموقع الويب ولكن أي تعديلات تجريها لن تؤثر على المستخدمين الآخرين. أردت إظهارالثغرات الامنية التي قد تلحق الضرر بالشركة التي أنشأت التطبيق أو المستخدمين النهائيين.

المتطلبات الأساسية
تهدف هذه الدورة إلى مساعدة أي شخص يرغب في البدء بالتعلم عن الهندسية العكسية لتطبيقات iOS، وفهم أساسيات runtime manipulation و binary patching. نظرًا لأن الجمهور المستهدف هو المبتدئين، وربما يكون هناك اصحاب خبرة متوسطة في المجال كباحثين امنيين/ مطورين/ مهندسين/ إلخ ، لا توجد متطلبات مسبقة إلزامية، ومع ذلك، توجد قائمة بالمفاهيم والأدوات الموصى بها التي قد تساعدك في التنقل خلال هذه الدورة التدريبية بشكل أسهل:
  • كمبيوتر، سيكون الامر مثالي لو تم استخدام ماك. (تم إنشاء جميع المواد التي تمت تغطيتها في هذه الدورة التدريبية باستخدام نظام Mac، ولكن جميع الأدوات المستخدمة تقريبًا تحتوي على إصدار Windows أو بديل، باستثناء Xcode)
  • iPhone / iPad / iPod معمول له jailbreak على نظام التشغيل iOS 10 وما فوق.
  • كابل Lightning cable لتوصيل iDevice بالكمبيوتر.
  • Xcode وأدوات المطور.
  • المعرفة الأساسية بـ SSH
  • المعرفة الأساسية بـ SCP
  • ARM disassembler مثل IDA أو Hopper أو Ghidra. (النسخة التجريبية من برنامج Hopper كافية ، ولا حاجة إلى إنفاق الأموال إذا كنت لا ترغب في ذلك. أو استخدام Ghidra، وهي اداة مجانية ومفتوحة المصدر.)
  • فهم أساسيات لغات البرمجة Objective-C و Swift
  • فهم أساسيات لجافا سكريبت.
  • فهم أساسيات HTML.
  • فهم أساسيات هجمات Man-in-the-Middle.
  • الفضول والإثارة ؟
لا تقلق إذا لم تسمع أبدًا ببعض هذه الأشياء ، فسأعطيك إرشادات خطوة بخطوة في كل فصل يوضح بالضبط ماذا نفعل ولماذا.

المقدمة

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

في هذه المرحلة من حياتي المهنية كنت أعمل على تطوير التطبيقات لنظام التشغيل iOS لأكثر من 6 سنوات، ساعدني ذلك في دخول مجال أمان التطبيقات بفهم قوي إلى حد ما لكيف تعمل تطبيقات iOS من الداخل، لقد كانت "مجرد" مسألة تعلم كيف يتم عمل ذلك من اجل حماية تطبيقاتي. لكن لكي أتعلم كيف أحميهم ، كان علي أن أتعلم كيف أكسرهم أولاً!

هذه الدورة هي طريقتي للمشاركة مع مجتمع الهندسة العكسية في كل ما تعلمته في السنوات القليلة الماضية بعد القيام بهذا البحث بدوام كامل. الغرض منه هو مساعدة عشاق الأمن الجدد على استكشاف العالم المثير للهندسة العكسية لتطبيقات iOS ونأمل أن يساعدوا مطوري iOS على إنشاء تطبيقات أفضل وأكثر أمانًا.

ما لن يتم تغطيته في هذه الدورة
  • كيفية عمل jailbreak لجهازك.
  • تطوير ثغرات (لنظام تشغيل) iOS.
  • التعديل على الاجهزة المعمول لها jailbreak.
  • القرصنة للـ API .
  • فهم متعمق لاسمبلي ARM .
أردت فقط وضع التوقعات الصحيحة، هذه الدورة التدريبية مخصصة لكل شخص جديد بالنسبة لأمان تطبيق iOS والهندسة العكسية لبرامج ARM.
إذا كنت لا تزال مهتمًا، فقم بالانضمام إلي لكي نتعلم كيفية الهندسة العكسية لتطبيقات iOS
ملاحظة: لا تقلق إذا لم يكن لديك جهاز معمول له jailbreak، فستحتاج هكذا جهاز فقط في الوحدة 2. يمكنك تخطي هذه الوحدة وتعود إليها بمجرد ان تقع يديك على جهاز معمول له jailbreak.

الوحدة 1 - إعداد البيئة

في هذه الوحدة، ستتعرف على كيفية إعداد جهازك (أجهزتك) باستخدام جميع الأدوات التي ستحتاج إليها لفك تشفير التطبيقات ونقلها إلى جهاز الكمبيوتر الخاص بك وإجراء تحليل ستاتيكي وديناميكي عليها. أفترض أن لديك بالفعل جهاز معمول له jailbreak. إذا لم يكن لديك جهاز، يمكنك الانتقال إلى الوحدة 3.
ملاحظة: إذا كنت بحاجة إلى مساعدة في عمل jailbreak لجهازك، فهناك العديد من المصادر عبر الإنترنت. أحد مواقعي المفضلة هو iDownloadblog.

على حاسوبك
  • قم بتنزيل أحدث إصدار من iTunnel: سيسمح لك iTunnel بالوصول إلى SSH عبر USB.
  • قم بتنزيل أحدث إصدار من Clutch: سيتيح لك Clutch فك تشفير تطبيقات iOS على نظام التشغيل iOS <10.0.
  • قم بتنزيل أحدث إصدار من Cydia Impactor: سوف يسمح لك Impactor بتثبيت تطبيقات iOS على جهازك وتكون تطبيقات موقعه باستخدام شهادة حساب المطور.
  • قم بتنزيل وتثبيت Hopper : Hopper هي أداة هندسية عكسية تتيح لك عمل disassemble و decompile وكذلك تنقيح تطبيقات ARM، وهي تدعم معماريات أخرى ولكن في هذه الدورة سأركز فقط علىالبرامج المستندة على معمارية ARM. النسخة التجريبية كافية.
  • قم بتنزيل أحدث إصدار من (bfinject)"bfinject.tar": سيسمح لك bfinject باستخدام "Cycript"و "Clutch" على iOS>= 11.0.
  • تنزيل أحدث إصدار من Cycript: سيتيح لك Cycript تعديل سلوك التطبيقات في وقت التشغيل (runtime) عبر وحدة تحكم تفاعلية.
  • قم بتنزيل أحدث إصدار من Frida: سوف تسمح لك Frida بكتابة سكربتات لتغيير سلوك التطبيقات في وقت التشغيل(runtime).
    • لتنصيب Frida
sudo pip install frida-tools
  • قم بتنزيل أحدث إصدار من Bettercap: سوف يسمح لك Bettercap بتنفيذ هجمات MitM عن بُعد على جهاز.
  • قم بتنزيل أحدث إصدار من class-dump-z: تتيح لك class-dump-z عمل dump للـ Objc classes. هناك نسخة خاصة بـ Swift لكنك لن تحتاج إليها لأن تطبيقي مبرمج بلغة Objc.
  • قم بتنزيل أحدث إصدار من Ghidra : Ghidra هي أداة هندسية عكسية أخرى، والتي سوف تتيح لك القيام ببعض المهام نفسها التي تتيحها اداة Hopper.
على جهازك مع إصدار iOS < 11.0
  • افتح Cydia وابحث عن cycript وقم بتثبيته.
  • افتح Cydia وابحث عن Apple File Conduit 2 وقم بتثبيته.
  • افتح Cydia وابحث frida وقم بتثبيته:
    • اضغط على علامة تبويب Sources tab.
    • إضافة مصدر: https://build.frida.re
    • يمكنك الآن الانتقال إلى علامة التبويب "بحث" والبحث عن frida.
(اختياري) على جهازك مع إصدار iOS <11.0

في بعض الحالات، قد لا تأتي أداة عمل الـ jailbreak لـ iOS <11.0 مع عميل SSH، قد تضطر إلى تثبيته بنفسك. لاختبار ما إذا كان جهازك يحتوي بالفعل على SSH شغال:
  • قم بتوصيل جهازك إلى جهاز الكمبيوتر الخاص بك.
  • على جهاز الكمبيوتر الخاص بك ، افتح الطرفية"terminal" وقم بتشغيل iTunnel باستخدام المعاملات التالية:
itnl --lport 2222 --i
    • lport: مصطلح يعني (منفذ محلي) Local port وهو المنفذ الذي سيستمع إليه iTunnel محليًا. هذا يمكن أن يكون أي منفذ تريده.
    • iport: مصطلح يعني منفذ iPhone وهو المنفذ الذي ستستخدمه iTunnel لإعادة توجيه جميع الحزم المرسلة إلى lport. يجب أن يكون هذا هو 22 ، نظرًا لأن هذا هو المنفذ الافتراضي لـ SSH.
في نافذة طرفية(terminal) مختلفة ادخل لجهازك عن طريق SSH :
ssh -p 2222 root@localhost
    • p: مصطلح يعني المنفذ، هذا هو المنفذ الذي يستمع إليه iTunnel.
    • إذا كان جهازك يطلب كلمة مرور حساب root إذاً فهو بالفعل لدية SSH شغال، فيمكنك تخطي هذه الخطوة.
على جهازك مع إصدار iOS> = 11.0
  • قم بتوصيل جهازك إلى جهاز الكمبيوتر الخاص بك.
  • على جهاز الكمبيوتر الخاص بك، افتح نافذة طرفية وقم بتشغيل iTunnel باستخدام المعاملات التالية:
itnl --lport 2222 --iport 22
    • lport: مصطلح يعني (منفذ محلي) Local port وهو المنفذ الذي سيستمع إليه iTunnel محليًا. هذا يمكن أن يكون أي منفذ تريده.
    • iport: مصطلح يعني منفذ iPhone وهو المنفذ الذي ستستخدمه iTunnel لإعادة توجيه جميع الحزم المرسلة إلى lport. يجب أن يكون هذا هو 22 ، نظرًا لأن هذا هو المنفذ الافتراضي لـ SSH.
في نافذة طرفية(terminal) مختلفة ادخل لجهازك عن طريق SSH :
ssh -p 2222 root@localhost
    • p: مصطلح يعني المنفذ، هذا هو المنفذ الذي يستمع إليه iTunnel.
    • إذا كان جهازك يطلب كلمة مرور حساب root فكلمة السر هي "alpine" ولكني انصح بتغييرها
  • قم بإنشاء مجلد jb على دليل الجذر او root directory الخاص بك:
    • ملاحظة: إذا كنت تستخدم LiberiOS، فهناك بالفعل مجلد باسم (jb/)، فقط قم بتغيير المسار.
cd / && mkdir jb
  • قم بإنشاء مجلد bfinject داخل jb/ وقم بتغيير المسار:
mkdir /jb/bfinject && cd /jb/bfinject
  • في نافذة طرفية مختلفة، انسخ أرشيف bfinject.tar إلى الجهاز:
scp -P 2222 ~/Downloads/bfinject.tar root@localhost:/jb/bfinject
    • P: مصطلح يعني المنفذ ويجب أن يكون نفس المنفذ الذي يستمع إليه iTunnel. لاحظ: هذا P بحرف كبير.
    • سيطلب منك الجهاز كلمة مرور حساب الـ root .
  • استخراج محتويات ملف tar. :
tar xvf bfinject.tar


الاستنتاجات
الآن يجب أن يكون لديك جهاز جاهز لبدء الهندسة العكسية. الامر المفرح، ستحتاج إلى تنفيذ كل هذه الخطوات مرة واحدة فقط لكل جهاز، حتى عندما تفقد حالة الـjailbreak إذا نفدت بطارية الجهاز أو عاود التشغيل لأي سبب [^ 1]. لا تقلق إذا كنت لا تعرف بعض هذه الأدوات، في الوحدات التالية سوف أشرح الغرض منها وكيفية استخدامها.

(^1)
في حالة الـjailbreak سواء tether او semi-tether، في كل مرة تقوم فيها بإعادة تشغيل جهازك، ستحتاج إلى إعادة عمل الـ jailbreak لأن الثغرة المستخدمة في الـ jailbreak لا تستمر بالعمل بعد إعادة التشغيل.



لا تنسوني ووالدي من دعائكم
-----------------
المصدر
https://github.com/ivRodriguezCA/RE-iOS-Apps
سبحان الله وبحمده، سبحان الله العظيم
أعضاء أعجبوا بهذه المشاركة : M!X0R , macheta , night , HiddenJoker , esc0rtd3w , [email protected] , TeRcO , I TariQ , MountLegacy , ام عائشة , Rashid.bh , 0b3l1sk
#2
I heard before on this site that hosts members of the reverse engineering professional and this curiosity let me to register in this site, although Im discovered the Exploit PSX All versions and work Jailbreak CFW/OFW session that I created I converted the browser to the English language so I understand your subject and I am very proud of the existence of such professional minds

I wish I could find an understandable course IOS

THX
أعضاء أعجبوا بهذه المشاركة :
#3
esc0rtd3w Your English is so bad that I didn't understand most of what you said@
إقتباس :
I converted the browser to the English language so I understand your subject
I translated this course from English so there is no need to translate it again into English
 
إقتباس :
I wish I could find an understandable course IOS
Here is the original source in English

https://github.com/ivRodriguezCA/RE-iOS-Apps

 
سبحان الله وبحمده، سبحان الله العظيم
أعضاء أعجبوا بهذه المشاركة :
#4
بارك الله فيك اخي الحبيب جاري النشر علي الفيس بوك
وَقُل رَّبِّ زِدْنِي عِلْمًا (114) -طه
أعضاء أعجبوا بهذه المشاركة :


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم