x32x01
أدارة أكتب كود
- بواسطة x32x01 ||
إيه اللي محتاج افهمه علشان اقدر ابدأ اعمل Pentest للـ Android Application ؟
بدايةً الأزمة اللي يمكن بتواجه أي حد بيحاول يبدأ في المجال ده، ابدأ منين؟
وللآسف لأن المجال ده فعليًا مفيهوش Resources كتير بتتكلم عن Vulnerabilites أو Attacks معينة بشكل أكبر فـ الناس بتعجز؛ العجز ده ليه حل هنتكلم عنه في الجزء التالت من البوست، بس خلينا نرتب الأمور ونفهم بعض الامور المهمة تدريجيًا.
بعض النقط عايزين نفهمها :
اولًا: التخصص ده لسه جديد والتركيز على الـ Application Level Security في الـ Android مكنش موجود بهذا الشكل، كان التركيز أكتر في الـ Android على الـ OS Level Security، فَـ لسه الموضوع بيشد حيله دلوقتي بسبب الـ Bug Hunting بالذات.
ثانيًا: الـ Attack Surface بتاع الـ Android Applications على عكس الـ Web Applications بيكون صغير إلى حدًا ما فالشغل فيه مبيكونش كتير.
بس ما المقصود بالـ Attack Surface؟ هو أي حاجة إنت بتقدر تبعتلها Payload وتوصل عن طريقها في النهاية إنك تنفذ Attack عن طريق Vulnerability في الحاجة دي، وعلشان الأمر يكون واضح تعالى ناخد أشهر مثال والأكثر تأثرًا ألا وهو الـ Deep-Link، عارف اللينك اللي إنت بتدوس عليه ويقوم محولك على الأبلكيشن؟ ده اسمه الـ Deep-Link، أول ما بتدوس عليه الأبلكيشن بيستقبله وبيحاول ياخد الداتا اللي في اللينك ده ويبدأ يتعامل معاها، وهنا بقى ده Attack Surface لأن الـ Attacker يقدر يبعت Deep-Link للـ Victim ويحط فيه أي داتا، ولو الـ Deep-link Handler ده فيه Vulnerability هتقدر تنفذ الـ Attack بتاعك. وخد بالك النقطة دي بالذات عايزة تفتيح دماغ، كل ما شغلت دماغك وعرفت ازاي ممكن توصل للـ Victim أي: توسع الـ Attack Surface كل ما زادت فرصة إنك تلاقي ثغرات، وهتشوف في الـ Write-ups اللي هحطها ازاي في اماكن الـ Attack Surface Exteneded فيها وإنت مش واخد بالك.
وللأسباب دي كل ما الأبلكيشن اللي انت شغال عليه كان أكبر كل ما فرصة إنك تلاقي شغل فيه أكتر؛ فـ علشان كده بقول لناس كتير كمثال: اشتغل على فيس بوك، ولا تشتغل على أبلكيشن صغير لسه طالع. ولكن للقاعدة استثناء، ممكن تلاقي أبلكيشن صغير فيه ثغرات واضحة وضوح الشمس، ابلكيشن عبارة عن ثغرة
كله تمام، ابدأ ازاي بقى؟ محتاج افهم إيه علشان احط رجلي على أول الطريق؟ ٣ حاجات اساسية:
1 - App Structure: تفهم الأبلكيشن بيتكون من إيه وازاي الـ components بتتواصل مع بعض وازاي بتقدر كـ Attacker تبعتلهم Payloads
2 - Static Analysis: تمشي ايدك شوية في السورس كود وتتعلم تـdecompile وتتحرك وسط الكود حتى لو مش متخصص في الـ Java أوي مش مشكلة، عندك GPT-4 ارميله أي حاجة مش فاهمها في الكود يفهمهالك.
3 - Dynamic Analysis: تتعلم تستعمل Tool زي Frida والـ Concepts المهمة اللي وراها زي الـ Hooking والـ Intercepting والخ..
ألاه! وبعدين، بعد ما فهمت كل ده، اطلع ثغرات ازاي مش فاهم؟! والجزء ده أنا بحب اسميه: هو أنا مفروض افكر ازاي؟
جيت إنت بعد ما اتفرجت على الكورس وفهمت الشغل اللي فيه، أو شوفت محتواه من مكان تاني جيت على طول قولتلي: طيب وبعد ما اتعلمت كل ده أنا مش عارف اطلع ثغرات! هنا بقى اقولك تعالالي خلينا نتكلم كلمتين كده لأن في حاجة عندك محتاجة تتغير ومش هتعطلك في الاندرويد بس، لأ دي هتعطلك وهتعجزك في حاجات كتير تاني قدام في الـ Info-Sec بشكل عام. خلينا نتناول أمر الـ Hacking مبدأيًا ونختصره بشكل بسيط: زي ما قولتلك فوق في حاجة اسمها Attack Surface في الاندرويد هي عبارة عن أي Component منهم: Activity, Provider, Service, Receiver, WebView, etc.. تقدر تبعتله داتا زي ما ضربت مثال فوق؛ الداتا بتاعتك بتوصل ال Component وساعتها بنسميها Payload؛ فكرة الراجل الهكر بتيجي هنا.
الراجل الهكر بقى بيمسك الـ Component اللي بيقدر يوصله ده ويروح يشوفه بيـHandle ازاي الـPayload اللي بتوصله لعل وعسى يلاقي طريقة يخلي الـ Payload دي تعمل حاجة غير متوقعة بنسميها Bug؛ وفي حالات الرجالة الهكرز بيدوروا على الـ Bug اللي نقدر نسميها Security Vulnerability وتضر الداتا بتاعت المستخدم ذات نفسه. ده الرجل الهكر ببساطة؛ أنا عايزك بقى تبقى راجل هكر! ايوة عايز إيه يعني؟ عايزك يا استاذنا بالحاجات اللي انت اتعلمتها دي تقعد تدرس كل Payload ممكن تبعتها لأي Component في الأبلكيشن اللي معاك، وتشوف ممكن توصل بالـ Payload دي لإيه.
قبل ما انهي الحتة دي هبسطلك المثال أكتر: إنت عندك باب شقة عايز تفتحه هتلاقي نفسك ممكن تحط أي حاجة (Payload) في كالون الباب (Attack Surface) فـ لما اديك إبرة واسيبك مع الباب لا تيأس على طول وتقولي لأ مفيش طريقة ومش عارف اعمل حاجة؛ روح اسأل عن كالون الباب ده أكتر في جوجل أو GPT-4 واسأل كمان عن الباب كله واعرف بيشتغل ازاي، وشوف بنفسك ازاي الإبرة دي ممكن -تهكر- الكالون وتفتح الباب! بس مش دايمًا بردو محتاج تقعد تدرس الحاجة من أول وجديد لوحدك لأن في ناس عدت على نفس الموقف واكتشفت طرق ممكن تفتح بيها الكالون فـ بتكون فرصة كويسة تتعلم منهم، وفي ناس تانية اخدت بالها من Attack Surface تاني في الباب غير الكالون كمان، تفكير out-of-the-box حاول تخلي ده الطبيعي بالنسبالك! أنا عايزك تتفكر في الكلمتين دول لأن حتى الناس دي لو مش موجودة يكون عندك مقدرة إنك تبني بنفسك أسس لاختراق الابواب ودي حتة الـ Mindset اللي بتفرق بين شخص لآخر وسهلة تتعلمها وتغير من الـ Mindset بتاعك؛ اوعى حد يخدعك يقولك متقدرش تغير الـMindset بتاعتك ودي حاجة مولود بيها وبلا بلا بلا، قوله سيد عبدالحفيظ قالي تقدر بس إنت تستوعب إيه الغلط اللي انت بتعمله.
مواكبة آخر تطورات المجال؛ الناس اللي اشتغلوا قبلك في الباب وصلوا لإيه واشتغلوا ازاي؟
1 - https://blog.oversecured.com/
2 - https://dphoeniixx.medium.com/
3 - https://infosecwriteups.com/tagged/android
4 - https://hackerone.com/reports/1065500
تحذير هام: بعد ما اشتغلت على تيك توك عرفت فيما بعد إن الشغل عليهم هما أو انستجرام حرام نظرًا لكثرة المحتوى المخالف للشريعة عندهم واللي هو أساس شغلهم أصلًا على عكس منصات أخرى؛ فرجاءً توخى الحذر ومتشتغلش عليهم واستفيد بس من الرايت اب ده، لأنه غني بالـ techniques المختلفة.
لسه في تاني وإن شاء الله فى ثريد كتير اضيف فيه أهم الـBlogs والـ Write-Ups؛ بس تقدر تدور بنفسكوا هنا فى أكتب كود بردو ونبهني لو لقيت حاجة كويسة اضيفها للبوست ده أو عايز تزود حاجة قولى عليها هنا تحت فى الكومنتات
بدايةً الأزمة اللي يمكن بتواجه أي حد بيحاول يبدأ في المجال ده، ابدأ منين؟
وللآسف لأن المجال ده فعليًا مفيهوش Resources كتير بتتكلم عن Vulnerabilites أو Attacks معينة بشكل أكبر فـ الناس بتعجز؛ العجز ده ليه حل هنتكلم عنه في الجزء التالت من البوست، بس خلينا نرتب الأمور ونفهم بعض الامور المهمة تدريجيًا.
بعض النقط عايزين نفهمها :
اولًا: التخصص ده لسه جديد والتركيز على الـ Application Level Security في الـ Android مكنش موجود بهذا الشكل، كان التركيز أكتر في الـ Android على الـ OS Level Security، فَـ لسه الموضوع بيشد حيله دلوقتي بسبب الـ Bug Hunting بالذات.
ثانيًا: الـ Attack Surface بتاع الـ Android Applications على عكس الـ Web Applications بيكون صغير إلى حدًا ما فالشغل فيه مبيكونش كتير.
بس ما المقصود بالـ Attack Surface؟ هو أي حاجة إنت بتقدر تبعتلها Payload وتوصل عن طريقها في النهاية إنك تنفذ Attack عن طريق Vulnerability في الحاجة دي، وعلشان الأمر يكون واضح تعالى ناخد أشهر مثال والأكثر تأثرًا ألا وهو الـ Deep-Link، عارف اللينك اللي إنت بتدوس عليه ويقوم محولك على الأبلكيشن؟ ده اسمه الـ Deep-Link، أول ما بتدوس عليه الأبلكيشن بيستقبله وبيحاول ياخد الداتا اللي في اللينك ده ويبدأ يتعامل معاها، وهنا بقى ده Attack Surface لأن الـ Attacker يقدر يبعت Deep-Link للـ Victim ويحط فيه أي داتا، ولو الـ Deep-link Handler ده فيه Vulnerability هتقدر تنفذ الـ Attack بتاعك. وخد بالك النقطة دي بالذات عايزة تفتيح دماغ، كل ما شغلت دماغك وعرفت ازاي ممكن توصل للـ Victim أي: توسع الـ Attack Surface كل ما زادت فرصة إنك تلاقي ثغرات، وهتشوف في الـ Write-ups اللي هحطها ازاي في اماكن الـ Attack Surface Exteneded فيها وإنت مش واخد بالك.
وللأسباب دي كل ما الأبلكيشن اللي انت شغال عليه كان أكبر كل ما فرصة إنك تلاقي شغل فيه أكتر؛ فـ علشان كده بقول لناس كتير كمثال: اشتغل على فيس بوك، ولا تشتغل على أبلكيشن صغير لسه طالع. ولكن للقاعدة استثناء، ممكن تلاقي أبلكيشن صغير فيه ثغرات واضحة وضوح الشمس، ابلكيشن عبارة عن ثغرة
كله تمام، ابدأ ازاي بقى؟ محتاج افهم إيه علشان احط رجلي على أول الطريق؟ ٣ حاجات اساسية:
1 - App Structure: تفهم الأبلكيشن بيتكون من إيه وازاي الـ components بتتواصل مع بعض وازاي بتقدر كـ Attacker تبعتلهم Payloads
2 - Static Analysis: تمشي ايدك شوية في السورس كود وتتعلم تـdecompile وتتحرك وسط الكود حتى لو مش متخصص في الـ Java أوي مش مشكلة، عندك GPT-4 ارميله أي حاجة مش فاهمها في الكود يفهمهالك.
3 - Dynamic Analysis: تتعلم تستعمل Tool زي Frida والـ Concepts المهمة اللي وراها زي الـ Hooking والـ Intercepting والخ..
Course Android App Hacking - Black Belt Edition Udemy
الكورس ده من أفضل الكورسات اللي لقيته مجمع كل الاشياء الأساسية المهمة اللي بكلمك عليها، زي الـ App Structure والـ Static Analysis والـ Dynamic Analysis، بيفهمك كل اللي محتاجه علشان تبدأ في الاندرويد وإنت على أرض صلبة، الكورس ممكن يكون طويل شوية، فـ حاول تعدي الحاجات اللي انت حاسس نفسك فاهمها ومتأكد منها زي الـ Setup أو الـ Man in the Middle (SSL Pinning Stuff)؛ أو مش ضرورية وممكن ترجعلها في وقت تاني لو احتجتها زي الـ Smali اللي ممكن تحتاجها لو عايز تـ Patch الـ APK. أي حد معاه Copuon ياريت يحطه في الكومنتات، أما لو مش قادر على تمن الكورس، أو حابب تشوف مصادر تانية، ممكن تخش تشوف العناوين بتاعت الفيديوهات وتتعلمها بشكل منفرد.ألاه! وبعدين، بعد ما فهمت كل ده، اطلع ثغرات ازاي مش فاهم؟! والجزء ده أنا بحب اسميه: هو أنا مفروض افكر ازاي؟
جيت إنت بعد ما اتفرجت على الكورس وفهمت الشغل اللي فيه، أو شوفت محتواه من مكان تاني جيت على طول قولتلي: طيب وبعد ما اتعلمت كل ده أنا مش عارف اطلع ثغرات! هنا بقى اقولك تعالالي خلينا نتكلم كلمتين كده لأن في حاجة عندك محتاجة تتغير ومش هتعطلك في الاندرويد بس، لأ دي هتعطلك وهتعجزك في حاجات كتير تاني قدام في الـ Info-Sec بشكل عام. خلينا نتناول أمر الـ Hacking مبدأيًا ونختصره بشكل بسيط: زي ما قولتلك فوق في حاجة اسمها Attack Surface في الاندرويد هي عبارة عن أي Component منهم: Activity, Provider, Service, Receiver, WebView, etc.. تقدر تبعتله داتا زي ما ضربت مثال فوق؛ الداتا بتاعتك بتوصل ال Component وساعتها بنسميها Payload؛ فكرة الراجل الهكر بتيجي هنا.
الراجل الهكر بقى بيمسك الـ Component اللي بيقدر يوصله ده ويروح يشوفه بيـHandle ازاي الـPayload اللي بتوصله لعل وعسى يلاقي طريقة يخلي الـ Payload دي تعمل حاجة غير متوقعة بنسميها Bug؛ وفي حالات الرجالة الهكرز بيدوروا على الـ Bug اللي نقدر نسميها Security Vulnerability وتضر الداتا بتاعت المستخدم ذات نفسه. ده الرجل الهكر ببساطة؛ أنا عايزك بقى تبقى راجل هكر! ايوة عايز إيه يعني؟ عايزك يا استاذنا بالحاجات اللي انت اتعلمتها دي تقعد تدرس كل Payload ممكن تبعتها لأي Component في الأبلكيشن اللي معاك، وتشوف ممكن توصل بالـ Payload دي لإيه.
قبل ما انهي الحتة دي هبسطلك المثال أكتر: إنت عندك باب شقة عايز تفتحه هتلاقي نفسك ممكن تحط أي حاجة (Payload) في كالون الباب (Attack Surface) فـ لما اديك إبرة واسيبك مع الباب لا تيأس على طول وتقولي لأ مفيش طريقة ومش عارف اعمل حاجة؛ روح اسأل عن كالون الباب ده أكتر في جوجل أو GPT-4 واسأل كمان عن الباب كله واعرف بيشتغل ازاي، وشوف بنفسك ازاي الإبرة دي ممكن -تهكر- الكالون وتفتح الباب! بس مش دايمًا بردو محتاج تقعد تدرس الحاجة من أول وجديد لوحدك لأن في ناس عدت على نفس الموقف واكتشفت طرق ممكن تفتح بيها الكالون فـ بتكون فرصة كويسة تتعلم منهم، وفي ناس تانية اخدت بالها من Attack Surface تاني في الباب غير الكالون كمان، تفكير out-of-the-box حاول تخلي ده الطبيعي بالنسبالك! أنا عايزك تتفكر في الكلمتين دول لأن حتى الناس دي لو مش موجودة يكون عندك مقدرة إنك تبني بنفسك أسس لاختراق الابواب ودي حتة الـ Mindset اللي بتفرق بين شخص لآخر وسهلة تتعلمها وتغير من الـ Mindset بتاعك؛ اوعى حد يخدعك يقولك متقدرش تغير الـMindset بتاعتك ودي حاجة مولود بيها وبلا بلا بلا، قوله سيد عبدالحفيظ قالي تقدر بس إنت تستوعب إيه الغلط اللي انت بتعمله.
مواكبة آخر تطورات المجال؛ الناس اللي اشتغلوا قبلك في الباب وصلوا لإيه واشتغلوا ازاي؟
1 - https://blog.oversecured.com/
2 - https://dphoeniixx.medium.com/
3 - https://infosecwriteups.com/tagged/android
4 - https://hackerone.com/reports/1065500
تحذير هام: بعد ما اشتغلت على تيك توك عرفت فيما بعد إن الشغل عليهم هما أو انستجرام حرام نظرًا لكثرة المحتوى المخالف للشريعة عندهم واللي هو أساس شغلهم أصلًا على عكس منصات أخرى؛ فرجاءً توخى الحذر ومتشتغلش عليهم واستفيد بس من الرايت اب ده، لأنه غني بالـ techniques المختلفة.
لسه في تاني وإن شاء الله فى ثريد كتير اضيف فيه أهم الـBlogs والـ Write-Ups؛ بس تقدر تدور بنفسكوا هنا فى أكتب كود بردو ونبهني لو لقيت حاجة كويسة اضيفها للبوست ده أو عايز تزود حاجة قولى عليها هنا تحت فى الكومنتات