مؤتمر القبعة السوداء. كيفية عمل هاتف تجسس. الجزء 1الشيء التالي الذي نحتاج إلى تعديله هو البيان. هذا هو الشيء الذي يحدد الخدمات المشاركة في التطبيق ، وما هي أذوناتهم ، وما إلى ذلك.
لذلك ، سوف نبدأ بالكود نفسه ، وهو مع الكود الخاص بدليل smali. إذا نظرت إلى شجرة دليل Angry Birds ، سترى العديد من المجلدات التي تحتوي على مكونات مختلفة ، مرتبة في شكل أدلة فرعية.

لا أعرف حتى أيًا من هذه الأشياء أحتاجها حقًا وما الذي تفعله ، لكنني لا أحتاج إليها. الآن سأقوم بعمل تقني هائل من التعقيد - نسخ دليل droidwhisperer من هنا ، من دليل SearchableDictionary ، هنا ، إلى الدليل الفرعي com / burstly / example / android للدليل smali. هذا كل شيء ، وآمل أن تفهم ما هو الهدف.
لذلك ، تم إدراج نسخة من الكود الخاص بنا عند الضرورة ، ولكن هناك بعض الأشياء الأخرى التي يجب القيام بها. أعود مرة أخرى إلى قائمة الغش وأرى أنه من الضروري الآن إجراء تغييرات على البيان. بادئ ذي بدء ، عندما نتناول البيان ، نحتاج إلى معرفة اسم التطبيق - سأسلط الضوء عليه باللون الأحمر ، وسنحتاج إليه لاحقًا لأننا أدخلنا شيئًا في الكود الموجود.
لذلك ، يعد تحديث البيان ضروريًا لتضمين خدمة التجسس المدمجة وأذوناتها في التطبيق. يتكون من الخطوات التالية:
- تذكر اسم التطبيق الأصلي في وقت لاحق ،
- تعريف خدمة Droidwhisperer
- تعريف الأذونات المطلوبة ل Droidwhisperer للعمل.

لذا ، آخذ هذا البيان وأجره إلى دفتر ملاحظات. أول شيء أقوم به في التطبيق هو تحديد خدمتنا. للقيام بذلك ، أجد وظيفة onCreate في البيان في الإجراء الرئيسي للتطبيق الهدف. في حالة Angry Birds ، كان com / rovio / ka3d / App. بعد ذلك ، قمت بقص جزء الكود الذي تم تمييزه باللون الأصفر ووضعه على الفور بعد الاتصال بـ insk-super في onCreate.
وبالتالي ، ذكرنا في البيان أنه سيكون لدينا خدمة Droidwhisperer ، والتي يجب أن تبدأ فور توفرها. لهذا السبب كنا بحاجة إلى اسم التطبيق الأصلي com.rovio.ka3d.App ، نستخدمه لإدخال الاسم الجديد للتطبيق com.rovio.ka3d. خدمة.
بعد ذلك ، انسخ وألصق أذونات تطبيق التجسس الخاص بنا في المكان المناسب في البيان - هذه هي الخطوط المميزة باللون الأخضر.

بعد إجراء التغييرات ، نقوم بحفظ البيان ، والذي يتضمن بالفعل الأذونات التي نحتاجها ويتم تعريف الخدمة التي يجب أن تبدأ عند بدء تشغيل الهاتف ، لذلك هذا صحيح.
يحتاج Android إلى شيء معين يقوم بتشغيل التطبيقات ، لذا يجب أن يحتوي تطبيق Angry Birds على رمز يقوم بتشغيل خدمة التجسس الخاصة بي بمجرد بدء اللعبة الأصلية. انتقل الآن إلى دليل اللعبة وأجد مجلد ka3d هناك ، وافتحه وانسخ ملف التطبيق الموجود فيه إلى المفكرة. هذا رمز smali ، وهو إصدار من رمز المجمّع لـ Dalvik. نستخدم وظيفة onCreate الموجودة في Android. يمكنني استخدام دفتر البحث للعثور على موقع هذه الوظيفة. تحتاج هنا إلى القليل من المعرفة حول كيفية عمل نظام التشغيل Android - على سبيل المثال ، يتم استخدام وظيفة onCreate لاستدعاء الطبقات الفائقة ، أي لإنشاء أو إعادة تشغيل نشاط التطبيق. هذا هو المكان الذي أدخل فيه الكود الخاص بي ، والذي يجب أن يبدأ إطلاق خدمة تجسس. أعود إلى ورقة الغش الخاصة بي ، وانسخ الأسطر اللازمة من هناك وألصقها هنا.
كيف أعرف الرمز الذي يجب إدراجه هنا؟ لقد قمت بنسخه من التطبيق الأصلي الذي كتبته. قلت إن هناك وثائق ممتازة لـ smali ، لذلك لا تحتاج إلى الخوض في كل شيء للقيام بذلك.

في الآونة الأخيرة ، تم الإعلان عن بعض مجموعات "الاتصال" التي تتيح لك أتمتة استلام الكود الضروري. منذ بضعة أسابيع فقط ، تم إصدار مجموعات أدوات تطوير برامج Android ، مما يسمح لك بإنشاء أي خدمة وتنفيذها في تطبيق موجود. كل هذا يمكن القيام به يدويا.
لذلك ، بمجرد أن يتم استدعاء وظيفة onCreate ، فإنها تنشط خدمتنا. لا تنس أنه بعد هذا تحتاج إلى حفظ الملف المعدل. لذلك ، بعد أن أجرينا التدريب الفني المناسب ، نحتاج إلى تجميع تطبيقنا المعدل. لذلك أعود إلى Apk_tool وأجمع أجزاء من دليل Angry Birds في دليل birds.apk. لذلك ، قمنا بإعادة بناء التطبيق الأصلي ، وإجراء التغييرات اللازمة عليه ، ووضع التجميع الجديد في ملف يسمى birds.apk.
إذا حاولت تثبيت هذا التطبيق المعدل على هاتف Android الخاص بك الآن ، فسوف يعلمك أن هذا التطبيق غير موقع ، لذلك نحن بحاجة إلى تسجيله. للقيام بذلك ، أقوم بإنشاء شهادة رقمية موقعة ذاتيًا باستخدام المفتاح العمومي المقابل ، وحفظها في دليل العمل المحقن. هذا ملف يسمى المفاتيح.

هذه مجرد شهادة أنني أخلقها بنفسي. الآن سأعود وأخذ هذا الأمر القوي والعجيب من سريرى:
jarsigner -verbose -keystore keys birds.apk alias_name
من أجل عدم الخلط بين أي شيء ، أنا فقط قطعته ووضعه في المكان المناسب. لذلك سأقوم بتوقيع ملف birds.apk بمفتاحي الخاص ، إنه بسيط للغاية. ثم أعطي الأمر وأوقع جميع مكونات التطبيق باستخدام هذا المفتاح الرقمي. الآن يمكنني وضعه في AppStore ، على Google Play - في أي مكان.
كما قلت بالفعل ، لا يحتوي الهاتف على أي واجهة من شأنها أن تظهر للمستخدم الذي وقع على ما. بمجرد توقيع التطبيق ، يمكن تثبيته. لا أحد يستطيع معرفة من قام بالتوقيع على هذا الطلب ، وهذا شيء رائع.
لذا ، فإن الإصدار المعدل من Angry Birds يشبه تمامًا اللعبة الأصلية ويعمل بنفس الطريقة ، إلا أنه يحتوي على رمز التجسس الخاص بي. الآن تشاهد على الشاشة التوقيعات الرقمية التي قام بها Kevin McNami of Kindsite.
شيء آخر مثير للاهتمام أنني سوف تظهر لك ، والعودة قليلا. ننظر إلى التطبيق الأصلي - تم التوقيع عليه من قبل Rovio Mobile Ltd.. انظر تاريخ التوقيع - هذه الشهادة الرقمية صالحة حتى 26 أغسطس 2010 ، ولكن التطبيق مثبت على الهاتف دون سؤال. وبالتالي ، حتى إذا تحولت شهادتك الرقمية إلى نفايات ، فإنها لا تزال تمنحك الحق في تثبيت التطبيق ، أي أنه لا أحد يقوم بفحصها. أعتقد أن هذا أحد الأشياء التي تعتبر واحدة من العيوب الخطيرة في نموذج أمان Android.
الحقيقة هي أنه لا يوجد التحقق الصارم للشهادات الرقمية المستخدمة. يمكن حل هذه المشكلة عن طريق مطالبة أولئك الذين يرغبون في الحصول على شهادة رقمية للتسجيل. لذا ، عد إلى عرضنا. أريد أن أركز على التوقيعات الرقمية مرة أخرى.

يجب أن تكون جميع الطلبات موقعة. يظل أي توقيع قديم صالحًا إذا كان موقّعًا ذاتيًا. يتم التحقق من التوقيع فقط عند تثبيت التطبيق. وهذا يعني أنه يمكنني تغيير أي ملف .apk مثبت بالفعل على الهاتف ، ولن يتفاعل النظام مع هذا بأي طريقة. هذا هو الضعف كبيرة جدا. إذا كنت ترغب في تغيير ملف .apk على هاتفك ، فيجب أن يكون لديك حق الوصول لتغيير الأدلة التي يتم تخزين هذه الملفات فيها ، لكن لن يكون من الصعب الحصول على حقوق الجذر لفعل أي شيء بالهاتف.
الشيء الثاني الذي يزعجني هو أنه لا توجد واجهة مستخدم توضح من قام بالتوقيع على التطبيق. على سبيل المثال ، عند تثبيت التطبيق ، يجب أن يظهر نقش تم توقيعه بواسطة Kevin McNami of Kindsite. لاحظ أن التوقيع يجب أن يتطابق مع تطبيق موجود تم نقله أو تحديثه ، لذلك لا يمكنني استبدال الإصدار الحالي من Angry Birds إذا لم أقم بتغيير اسم برنامج التجسس الخاص بي. ولكن بمجرد أن فعلت هذا ، لم تنشأ مشاكل. يدعي مطورو Android أن الشهادة لا تحتاج إلى توقيع من قبل مركز معتمد ، وأن تطبيقات Android تستخدم في الغالب التوقيعات الموقعة ذاتيا.
قبل أن أبدأ بالإجابة على الأسئلة ، أريد أن أقول أن هناك صناعة كاملة من برامج التجسس للهواتف. وهي مصممة لمراقبة أحبائك أو أطفالك ، أو شركاء العمل.

سابقا ، كانت تستخدم لرصد الأزواج غير المخلصين ، ولكن الآن قد تغير الغرض منها. على سبيل المثال ، يمكنك مراقبة أطفالك لضمان سلامتهم ، وهذا قانوني تمامًا. لكنني أعتقد أن هواتف التجسس أكثر ملاءمة للاستخدام في نظام BYOD. يمكنك إعطاء وحدة التجسس أي وظيفة وإدخالها في أي تطبيق ، ولن يعرف المستخدم أي شيء عنها. هذا مثالي لأغراض التجسس الصناعي ، لذلك توسع هذه الأجهزة نطاق التهديدات الأمنية المستمرة.
لذلك ، هذا جهاز شبكة يعمل بكامل طاقته ، وإذا قمت بالاتصال بشبكة Wi-Fi في العمل ، فيمكنني تثبيت برنامج في هذا الهاتف يقوم بمسح الشبكات بحثًا عن نقاط الضعف. في الوقت نفسه ، سيتم تحديثه إذا لزم الأمر وإرسال المعلومات المسروقة إلى موقع القيادة والتحكم. أي أن الهاتف المحمول المصاب هو منصة موسعة للتهديدات الأمنية المستمرة ذات قدرات الهجوم الضخمة. على سبيل المثال ، شخص ما يسير داخل المبنى بهاتف واحد ، ويفحص الشبكات ، ثم يهاجمها من الداخل. بالطبع ، يحمي الأشخاص اتصالهم بالإنترنت من خلال جدران الحماية وجدران الحماية المماثلة ، لكن هذا الجهاز يتصل بالشبكات مباشرةً عبر الهواء ، ويتصل هاتف تجسس بالشبكة في أي مكان توجد به نقطة وصول ، ولن يساعد جدار الحماية هنا. في الواقع ، تدخل الهواتف الشبكة عبر الباب الخلفي. هاتف التجسس رائع ، لكن لدينا هنا طروادة عن بُعد ، وأعتقد أنه خطير جدًا.
أعتقد أنني قلت كل شيء أردت التحدث عنه ، والآن أنا مستعد للإجابة على أي أسئلة.
لذا ، فإن السؤال الأول هو ما إذا كان هذا التطبيق بعينه يحاول إخفاء وجوده. الجواب لا ، هذا ليس كذلك ، لأنه إذا نظرت إلى الخدمات التي تعمل على الهاتف ، فسترى هناك. أعتقد أنه يمكن إجراء عملية خفية ، ولكن في هذه الحالة تم إنشاء "هاتف تجسس" لدينا فقط لإظهار مفهوم التهديد.
هل يمكن اكتشاف تطبيقنا بواسطة برنامج مكافحة فيروسات؟ لا ، لا تحسب برامج مكافحة الفيروسات وحدة التجسس هذه ، لأنها لا تعرف شيئًا عنها. سيكون من الممكن زيادة الخلط بين الشفرة ثم إدخالها في التطبيق ، ويمكن أتمتة هذه العملية.
ما الذي يمكن معارضة تطبيق التجسس هذا؟ يمكنك استخدام برنامج مكافحة فيروسات يكتشف التطبيقات الضارة المعروفة في أي حال ، لكننا ركزنا على حركة المرور المرسلة إلى موقع القيادة والتحكم. ربما ، سيكون من الممكن أتمتة عملية التعتيم على الشفرة ، ولكن من الصعب للغاية تغيير بروتوكول الاتصال مع خادم القيادة والتحكم أثناء الطيران ، ستحتاج إلى تغيير الخادم نفسه وتغيير العملاء وكل ذلك. لذلك ، نوصي بدمج كل من طرق الحماية: مكافحة الفيروسات ضد التطبيقات الضارة المعروفة ومراقبة حركة مرور الشبكة المرسلة بواسطة جهاز التجسس إلى موقع القيادة والتحكم.

سأجيب على سؤال عما يعنيه شرط تزامن التوقيعات الرقمية عند نقل التطبيق أو تحديثه. إذا كانت هذه هي المرة الأولى التي تقوم فيها بتثبيت التطبيق على هاتفك ، فلن تواجهك أي مشاكل. ولكن إذا كان الهاتف يحتوي بالفعل على التطبيق الأصلي وترغب في استبداله بنسخة جديدة بتوقيع رقمي مختلف أو بتطبيق معدل يحمل نفس الاسم ، فلن تنجح ، لأن الهاتف سوف يكون قادرًا على مقارنة التوقيع الأصلي في التطبيق بإصداره المعدل والملاحظة أنهم لا يتطابقون. في هذه الحالة ، تحايلت على الحماية بمجرد استبدال اسم التطبيق الأصلي باسم مختلف.
يمكن لخادم الأوامر والتحكم التفاعل مع جميع وظائف Android واستخدام API الخاص به. يمكنك الحصول على وصول عن بُعد ، وتحميل الملفات على هاتفك ، والتخلص منها عمومًا وفقًا لتقديرك ، لأن Android يوفر فرصًا كبيرة للوصول المفتوح إلى هاتفك عبر الشبكة. أعتقد أن الوظيفة نفسها متوفرة أيضًا على نظام التشغيل iOS ، فقط مطورو نظام التشغيل هذا أكثر جدية في التحقق من أمان التطبيقات الجديدة. على سبيل المثال ، يجب أن تحصل على شهادة منهم تثبت من شخصيتك كمطور للتطبيق ، وسيتم التحقق من التطبيق نفسه قبل وصوله إلى متجر التطبيقات الخاص بهم ، في حين أن Google سوف تتحقق من التطبيق بعد نشره في سوق Play.
لا أعرف تفاصيل متجر تطبيقات Google Play ، لكنني أعتقد أنه إذا كان للمطور سمعة سيئة أو تعرض التطبيق للخطر ، فلن يظهر في المتجر. ومع ذلك ، هناك العديد من متاجر تطبيقات الأجهزة المحمولة عبر الإنترنت حيث يمكن للمهاجم استضافة تطبيق ضار. هذا نوع من هجمات التصيد الاحتيالي عندما نجبر المستخدم على تنزيل هذا التطبيق من أي مكان عن طريق تمرير الروابط إليه.
الحقيقة هي أن جميع الوظائف في تطبيق التجسس لدينا تبدو كالمعتاد ، وليس هناك شيء غير قانوني أن هذا التطبيق سيحاول القيام به. عند التثبيت ، يتطلب الأمر منحها نفس أذونات التطبيقات القانونية. شيء آخر هو كيف سيتم استخدام هذه الوظائف في وقت لاحق. بالطبع ، إذا أبلغ أحدهم أن droidwhisperer فيروس ، فلن يسمح أي برنامج مكافحة فيروسات مثبت على الهاتف بتثبيت تطبيق يحتوي عليه.
كما قلت من قبل ، يمكن تنزيل برامج التجسس من مواقع الجهات الخارجية. في هذه الحالة ، يكمن هجوم التصيد الاحتيالي في إخبارك بإرشادات التثبيت التفصيلية وعرض تنزيل هذه اللعبة مجانًا ، لأنها لعبة رائعة ، ولا يلزمك دفعها عن طريق تنزيل النسخة الأصلية في متجر Google. عادة ما يتم إغراء المستخدم بهذا العرض.
ألاحظ أننا لم نبدأ في اختراق الشبكات المحمية بالتشفير ، ولكننا ببساطة متصلاً بأي شبكة متاحة. شكرا لاهتمامكم!
شكرا لك على البقاء معنا. هل تحب مقالاتنا؟ تريد أن ترى المزيد من المواد المثيرة للاهتمام؟ ادعمنا عن طريق تقديم طلب أو التوصية به لأصدقائك ،
خصم 30٪ لمستخدمي Habr على تناظرية فريدة من خوادم الدخول التي اخترعناها لك: الحقيقة الكاملة حول VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1 جيجابت في الثانية من 20 $ أو كيفية تقسيم الخادم؟ (تتوفر خيارات مع RAID1 و RAID10 ، ما يصل إلى 24 مركزًا وما يصل إلى 40 جيجابايت من ذاكرة DDR4).
VPS (KVM) E5-2650 v4 (6 مراكز) 10GB DDR4 240GB SSD 1 جيجابت في الثانية حتى يناير مجانًا عند الدفع لمدة ستة أشهر ، يمكنك طلب
هنا .
ديل R730xd 2 مرات أرخص؟ لدينا فقط
2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD بسرعة 1 جيجابت في الثانية 100 TV من 249 دولارًا في هولندا والولايات المتحدة الأمريكية! اقرأ عن
كيفية بناء البنية التحتية فئة باستخدام خوادم V4 R730xd E5-2650d تكلف 9000 يورو عن بنس واحد؟