مقال: صنع مختبر اختراق لفحص أنظمة الأندرويد
كنا قد تحدثنا في درس سابق عن بداية الأندرويد وبنيته، في هذا المقال إن شاء الله سنتحدث عن الـSDK أو الـSoftware Development Kit وكيفية إنشاء محاكي للأندرويد على أجهزتنا.
محلوظة: خلال تحدثي في المقالات قد أقوم باستخدام نفس الأدوات على لينكس أو ويندوز. لكنك يمكنك استخدام الأدوات كما تحب سواء على لينكس أو ويندوز.
أولاً وقبل كل شيء لكي ينجح التثبيت سواء على لينكس أو ويندوز يجب أن يحتوي النظام الخاص بك على حزمة الـJDK (Java Development Kit) بإصدارها السابع على الأقل ويمكنك تحميلها بإصدارها الثامن من خلال الرابط التالي:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
دعنا الآن نقوم بشرح كيفية تثبيت الـJDK على اللينكس لأنه الأصعب أما بالنسبة للويندوز فهو كأي برنامج أخر:
أولاً: علينا التأكد من النسخة التي نملكها وذلك من خلال الأمر التالي:
كما نرى في الصورة السابقة فأنا أملك أخر نسخة للـJDK على النظام وفي هذه الحالة يمكنك أن تقوم بتثبيت الـSDK مباشرةً. ولكن فلنفترض أنني أملك نسخة سابقة للإصدار 1.7، في هذه الحالة سننتقل إلى الخطوة التالية وهي حذف النسخة القديمة من الـJDK:
ملحوظة: في الخطوة السابقة، سيظهر لك تنبيه يسألك إن كنت تريد حذف أي أدوات أو برامج تعتمد على الجافا فأنصحك ألا تقوم بحذفها لأنك إن كنت تستخدم كالي مثلاً فسيقوم بحذف العديد من الأدوات منها Burp Suite.
من خلال الأمر السابق سنقوم بحذف النسخة السابقة التي نملكها من الـJDK، بعد الانتهاء من الأمر السابق سنقوم بإنشاء مجلد جديد لتثبيت الـJDK داخله ويمكننا فعل ذلك من خلال الأمر التالي:
سنقوم الآن بتحميل الـJDK من خلال الرابط الموجود في الأعلى، لاحظ أنك يجب أن تقوم بتحميل النسخة المناسبة للنظام الخاص بك سواء كان 32Bit أو 64Bit.
قمنا في الصورة السابقة بفك الضغط عن حزمة الـJDK، والنتيجة كما موضحة في الصورة التالية:
بعد ذلك علينا أن نوضح للنظام المسار الذي قمنا بتثبيت الـJDK فيه وذلك من خلال تعديل الملف المسمى بـprofile ويمكننا فعل ذلك من خلال فتح الملف باستخدام أي محرر كما في الصورة التالية:
الخطوة التالية ستكون إضافة السطور المحددة في الصورة التالية في نهاية ملف الـprofile:
مع الانتباه إلى أنك يجب أن تقوم بتغيير رقم الإصدار الذي قمت بتحميله كما هو موضح في الصورة السابقة.
كل ما علينا فعله الآن هو كتابة الأوامر التالية من خلال التيرمنال:
وكخطوة أخيرة يجب علينا كتابة هذه الأوامر من خلال التيرمنال:
يمكنك الآن إعادة تشغيل النظام والتأكد من إصدار الـJDK من خلال الأمر التالي:
بهذا نكون انتهينا من تثبيت الـJDK، الخطوات أسهل عندما لا تأخذ من كل خطوة Screenshot 🙂
بالنسبة لمستخدمين الويندوز، فالأمر أسهل، كل ما عليك فعله هو الضغط على Next كما تفعل عند تثبيت أي برنامج أخر، ولكن مع ذلك هناك خطوة مهمة جدًا هنا وهي إضافة الـJDK إلى الـEnvironment Variables وذلك من خلال الضغط على My Computer واختيار Properties. بعد ذلك سنقوم بالضغط على Advanced system settings كما هو موضح في الصورة التالية:
بعد ذلك وكما نرى في الصورة التالية سنضغط على Advanced ونقوم باختيار Environment Variables:
ستظهر لنا النافذة التالية سنقوم من خلالها الضغط على New وذلك بعد الانتباه أنك ستقوم بإضافة مسار الجافا في الـSystem Variables وليس الـUser Variables:
والآن كخطوة أخيرة سنقوم بكتابة ما في الصورة التالية مع الانتباه إلى المسار الذي قمت بتثبيت الجافا فيه وأيضًا إصدار الجافا الذي تملكه:
دعنا الآن نقوم بتثبيت الـSDK الآن وهو ما يهمنا في هذا الموضوع أصلاً -_-
لدينا الآن خيارين أتاحتهم لنا جوجل، الأول أن نقوم بتحميل حزمة الـSDK فقط أو أن نقوم بتحميل الـAndroid Studio + الـSDK. مع العلم أن الـAndroid Studio هو بيئة التطوير الافتراضية الآن للأندرويد بدلاً من Eclipse. حسنٌ، بالنسبة لي فأنا سأختار الحزمة التي تحتوي على الـAndroid Studio بجانب الـSDK، أما بالنسبة لك فيمكنك اختيار ما تريد.
الخطوة الأولى ستكون بالذهاب إلى الرابط التالي وتحميل النسخة التي تناسبك سواء كانت SDK Only أو بالإضافة إلى الـAndroid Studio:
بالنسبة لي لقد قمت باختيار النسخة التالية:
android-studio-ide-141.1903250-linux.zip
وهي تحتوي على الـAndroid Studio بالإضافة إلى الـSDK. حسنٌ، دعنا الآن نرى كيف سنقوم بتثبيتها وهي عملية سهلة جدًا:
بعد فك الضغط سنجد أنه ظهر مجلد اسمه android-studio، سندخل إلى المسار الموضح في الصورة وبعدها نقوم بتشغيل السكربت المسمى بـstudio.sh وذلك من أجل بدأ عملية التثبيت:
لاحظ أن عملية التثبيت ستكون من خلال واجهة رسومية لذلك لا أرى أهمية لتوضيح كيفية التثبيت من خلال واجهة رسومية، لن يستغرق الأمر وقتًا طويلاً وذلك معتمد على سرعة الإنترنت عندك.
بعد انتهاء عملية التثبيت، يمكنك استخدام Android Studio من خلال نفس السكربت. حسنٌ، ما نريده الآن هو الوصول إلى الـSDK، المسار الافتراضي للـSDK على اللينكس هو:
root/Android/Sdk
الحمدلله، كل شيء معد الآن 🙂
كما ذكرت سابقًا، سنتحدث كثيرًا عن الأندرويد في الفترة القادمة وأمامك اختيارين للتتابع الدروس، الأول، هو أن تقوم بالتطبيق على هاتفك الخلوي وفي هذه الحالة يجب أن يكون rooted، ثانيًا، هو أن تقوم بالتطبيق على محاكي وهو ما أوصي به لكي لا تقوم بتخريب هاتفك الخلوي.
بعيدًا عن بيئة التطوير، لدينا ثلاثة أشياء سنهتم بها حاليًا وهم كالتالي:
SDK Manager: ومن خلاله نتحكم في الأدوات التي نريد تثبيتها.
AVD Manager: ومن خلاله سنقوم بإنشاء المحاكيات.
ADB: هو سطر أوامر متعدد الاستخدام وسنتحدث عنه كثيرًا في الفترة القادمة.
حسنٌ، دعنا الآن نستخدم الـSDK Manager في تحميل الأدوات والمحاكيات التي سنعمل عليها. يمكنك الوصول إليه من خلال تشغيل سكربت android الموجود في المسار التالي:
root/Android/Sdk/tools/android.sh
بالنسبة للأدوات فأهم ما نريده هو Android SDK Tools والـAndroid SDK Platform-tools، وبالنسبة للمحاكيات فيمكنك تحميل أي محاكي تريده، يمكنك في البداية أن تقوم بتحميل محاكي ذو إصدار قديم مثل Android 2.2 أو ما شابه. لتقوم بذلك يمكنك يجب أن تقوم بوضع علامة صح بجانب الأداة التي تريدها والمحاكي الذي تريده وبعدها الضغط على Install كما هو موضح في الصورة التالية:
دعنا الآن ننتقل إلى كيفية صنع AVD وهي اختصار لـAndroid Virtual Device، من خلالها سنقوم بصنع المحاكي الذي قمنا بتحميله. للوصول إلى الـAVD Manager يمكننا ذلك من خلال الـSDK Manager ومن قائمة Tools سنقوم باختيار Manage AVDs كما هو موضح في الصورة القادمة:
ملحوظة: إن لم يكن المحاكي الذي قمت بتحميل ملفاته يظهر في القائمة السابقة فعليك أن تقوم بالضغط على Create وستظهر لنا الصورة التالية:
أهم شيء في الصورة السابقة هو اختيار الـTarget الذي قمت بتحميل ملفاته، أما باقي الاختيارات الموضحة في الصورة السابقة فيمكنها أن تكون اختياريه ولكني أفضل أن تتركها على قيمها الافتراضية.
كما نرى المتاح لنا الآن تحميله هو Android2-2 وهو الذي قمت أنا بتحميله، يمكنك الآن الضغط على المحاكي الذي تريد تشغيله ومن القائمة الجانبية قم بالضغط على Start وبعدها ستظهر نافذة قم بالضغط على Launch ليظهر لك المحاكي كما في الصورة القادمة:
حسنٌ، حتى الآن انتهينا من الـSDK Manager والـAVD Manager، دعنا الآن نتحدث عن الـADB وكما ذكرت من قبل هو اختصار لـAndroid Debug Bridge وهو سطر أوامر متعدد الاستخدامات. يمكننا الوصول للـADB من خلال المسار التالي:
في الصورة السابقة قمت باستخدام الـADB من أجل إظهار الـDevices المرتبطة بالحاسوب الخاص بي وذلك من خلال الأمر devices، وكما نرى في الصورة السابقة يظهر لنا جهازين وهما المحاكي الذي قمت بتشغيله والجهاز الأخر هو هاتفي الشخصي الذي قمت بربطه بالحاسوب عن طريق الـUSB.
بما أن الـAndroid مبني على اللينكس، فالعديد من أوامر اللينكس تعمل عليه، دعنا نجرب الآن الحصول على Shell على الـEmulator للتجربة:
كما نرى في الصورة السابقة، لقد قمت باستخدام أمر ps ليعطينا قائمة بكل الـProcesses التي تعمل على النظام. إن لاحظنا فسنجد أن الصف الأول يحتوي على اسم المستخدم، وسنرى العديد من أسماء المستخدمين مثل root وsystem وradio وapp_. الأمر بديهي جدًا فالـProcesses التي تعمل بواسطة مستخدم root هي root processes والـSystem Processes يملكها الـSystem، أما بالنسبة للـradio فهي Processes عادةً ما تكون مرتبطة بالهاتف أو المذياع، وأخيرًا وليس أخرًا الـapp_ هي كل التطبيقات التي تم تثبيتها على الهاتف.
الجديد بالذكر هنا أن الملفات في نظام الأندرويد يتم حفظها في عدة أماكن ومنها مثلاً:
- كل الـBinaries والتي يتم استخدامها كأوامر يتم حفظها في المسار /system/bin والمسار /system/xbin.
- كل التطبيقات التي نقوم بتثبيتها سواء من الـPlay Store أو أي مصدر أخر سنجدها في هذا المسار /data/data.
- بينما الملف الأصلي الخاص بالتطبيقات ذو الامتداد apk فيتم حفظه في هذا المسار /data/app.
- بالنسبة للتطبيقات الغير مجانية التي يتم شرائها وتحميلها من الـPlay Store فيتم حفظها في هذا المسار /data/app-private.
الجدير بالذكر هنا أن ملف الـAPK وهو اختصار لـAndroid Package ما هو إلا ملف مضغوظ تم تغيير الامتداد الخاص به إلى APK، إن شاء الله في دروس قادمة سنتعلم كيفية عمل هندسة عكسية لملفات الـAPK.
لكي لا أطيل عليكم سأنهي المقال عند هذا الحد وإن شاء الله نلتقي في درس قادم مميز.
رووووووووووووعة شرح رائع
مشكوررر أخي نتظر مكن كيفيه تثبيت تطبيقات apk
والعمل عليها penetration testing
شكرا لك
معي عدة تساؤلات ,, منها :
عند تثبيتي للمحاكي الاحظ انه الجهاز بطيء جدأ رغم ان جميع الاعدادات متشابهة معك باستثناء اصدار النظام فهو 5.1.1 ؟
سؤال اخر , من اين استطيع الحصول على اداة ADB ، هل هي موجودة فقط في اللينكس ؟
1. هذا شيء طبيعي يا عزيزي. فحجم الـ5.1.1 سيكون كبير جدًا والمحاكي سيظل محاكي في النهاية ولا يمكنه العمل بنفس كفاءة الهاتف الحقيقي.
2. مرفقة مع الـSDK إن كنت تستخدم اللينكس، قم باستخدام أمر Locate لتحديد مكانها. عادةً ستجدها في نفس مسار الـSDK داخل مجلد اسمه platform-tools.
مشكور جدا علي هذا المجهود الرائع
انا لدي مشڱلھِ في نتصيب نظام الكالي
شكرا لكن كيف تعرف ip هذا الجهاز ؟؟؟
شكرا على الدروس