في هذا المقال سوف نتعرف على طريقة عمل البرمجيه Hammertoss , ونوضح مفهوم C&C server مع اعطاء مثال عملي باستخدام لغة البرمجه بايثون .

هامرتوس هي برمجيه روسيه من ضمن أذكي البرمجيات الخبيثه التي قد تراها بسبب الطريقه اللي يعمل بها فهو علي عكس معظم البرمجيات اللي تستخدم C&C server فهي لا تتصل بـسيرفر بها بشكل مباشر ولكن تستخدم عده مواقع معروفه مثل Github وTwitter للتواصل مع مطورين البرمجيه وبهذه الطريقه تتخطى كل الحمايات ويصعب تعقبها  !

ولعدم الغوض في تفاصيل البرمجيه ,هذا فيديو لشركه FireEye تشرح الطريقه التي تعمل بها البرمجيه من هنا

الأن كما أتضح من الفيديو فأول ما تقوم به البرمجيه هو البحث في تويتر عن تغريده وضعها أصحاب البرمجيه والتي تحتوي علي علي رابط وهاش تاج كجزء من التشفيره ولكن ألم تسأل نفسك كيف يبحث في تويتر ؟

الأجابه  وهي أنك لكي ترى تغريدات شخصا ما لا يلزم أن تكون قد قمت بتسجيل الدخول الي حسابك وهذا ما أعتمدت عليه البرمجيه !

ولكن ليس فقط التغريدات بل معلوماتك أيضا فقد قمت مثلا ببرمجه سكربت من قبل لجلب معلومات أي مستخدم تويتر تستطيع أن تراه من هنا وللقرائه أكثر عن هذه البرمجيه من هنا

 

المثال السابق كان فقط لأيضاح كيف تقوم البرمجيات بأستخدام المواقع الشهيره كسيرفر C&C , والأن وبشكل سريع ماهو C&C Server ؟

C&C هو أختصار Command and Control وهو يكون كالوسيط مابين المخترق والجهاز المخترق ويستخدم في الغالب في الـBotnets فهو يكون السيرفر الذي ينفذ المخترق الأوامر من عليه

الأن سأقوم بشرح أستخدام موقع معروف أخر لتكتمل الفكره وهو موقع Cl1p

هذا الموقع يسمح لك أن تألف أي كلمه مميزه وتستخدمها في في رابط خاص به وعندك دخولك عليه تستطيع أن تكتب أي شئ وتقوم بحفظه وتبعث هذا الرابط لأي أحد أخر فعندما يفتحه يري ما كتبته في اللينك ثم يمسح مما يعني أن تستطيع أن تستخدمه نفس الكلمه مره أخري و هكذا.

الأن سأوضح كيف من الممكن أستخدام هذا الموقع كا C&C Server بلغه البايثون ( أصدار 3 )

أول شئ سأقوم بعمل داله وظيفتها توليد أسم عشوائي ليتم أستخدامه في الرابط وسيكون طول الكلمه 30 رمز

للأيضاح فقد قمت أولا بعمل متغير فارغ ومن ثم قمت بعمل حلقه أو Loop عن طريق For تقوم بأختيار رمز واحد عشوائيا من كل الحروف الأبجديه والأرقام ومن ثم تضيفه للمتغير حتي يصبح طوله 30 رمز وتنتهي

الأن نبدأ بفرز الموقع لنري كيف نستحدمه ولنفرض مثلا أن الكلمه العشوائيه هي Isecur1ty 😀 فيكون الرابط https://cl1p.net/Isecur1ty وعندما تفتحه تري الأتي :

من الواضح ان هذه فورم بسيطه تقوم بعمل بعمل طلب من نوع POST وترسله الي نفس الرابط وهذا ما يتضح عند النظر في الكود المصدري للصفحه

الأن النص الذي نكتبه يكون في الصندوق النصي النصي المسمي Content والذي محتواه يرسل في الطلب ولنقوم بأرسال طلب بنفس الطريقه في لغه البايثون سنستخدم مكتبه requests فيكون الكود الأتي :

فبعد تنفيذ الكود نفتح الرابط فنجد النتيجه :

كما نري فقد تم عرض النص مما يعني أن الكود أشتغل 😀

والأن لنكتب كود أخر ليجلب النص من الصفحه وسأستخدم فيه مكتبه re مع مكتبه requests

فتكون النتيجه :

الأن لنصعب الأمر قليلا :]

الأن سأقوم بتقسيم النص الي عده أجزاء فيكون كل جزء منهم عباره عن كلمه وكل كلمه نضعها في رابط وحدها ونقوم بترميزها علي شكل Base64 حتي نتفادي الأخطاء التي التي قد تحدث عند أرسال نص وبه فصله أو ما شابه

ولعمل هذا سنقوم بعمل دالتين داله خاصه بالأرسال وداله للأستقبال ولكن كيف سنقوم بربط الكلمات ببعضها وكل كلمه في رابط بمفردها ؟

الحل بسيط وهو أن نأتي بالكلمه العشوائيه التي سنستخدمها في الرابط ونقوم بأضافه رقم عليها مع كل كلمه في رابط فمثلا النص “Test1 Test2 Test3” يقسم كالأتي

فتكون الدوال بالشكل الأتي :

فلنبسط الأمور قليلا

داله rand شرحت من قبل

داله send اول شئ قمت به هو تقسيم النص الي كلمات في المتغير msgs وبعدها المتغير word وهو الكلمه العشوائيه التي سنستخدمها ومن ثم يوجد المتغير n والذي سنستخدمه في العد وسأخبركم لماذا بعد قليل والأن قمت بعمل حلقه تأخذ كل كلمه فتضيف للمتغير word المتغير n ومن ثم تضيف المتغير word بعد الاضافه للرابط في المتغير link ومن ثم الأن نرسل طلب كما شرحنا من قبل ولكن هذه المره نقوم بترميز الكلمه التي سنرسلها بترميز base64 ونضيف 1 الي المتغير n وفي النهايه بعد أنتهاء الحلقه نقوم بطباعه المتغير n علي أنه هو المفتاح وستعرفون لماذا في داله الأستقبال

الأن داله receive قمنا فيها بأخذ متغيرين وهما word و key فالمتغير الأول سيكون الكلمه التي أستخدمت في الرابط والمتغير الثاني key سيعرفنا عدد الروابط 😀 وبعدها نقوم بتجهيز الريجيكس الذي سنستخرج به النص ( للفهم أكثر أقرأ عن الـRegluar expressions ) والأن نقوم بعمل حلقه ومداها المتغير key ومن ثم نقم بنفس الخطوات كما شرحنا من قبل حتي نقوم في النهايه بطباعه النص كلمه كلمه وكل كلمه منفصله عن الأخري بمسافه

هذا كان شرح بسيط للأمر والسكربت يحتاج الكثير من التطوير ولكنك الأن تستطيع أن تخزن رساله سريه مثلا علي الموقع ومن ثم لا يستطيع أحد ومعه السكربت أن يقرأها الا لو معه الكلمه والمفتاح ^_^

ولقد قمت بتطوير هذا السكربت فجعلته سكربت لأرسال واستقبال الرسائل بسريه تستطيع أن تري الكود الكامل من هنا

والأن كما تري فقد يقوم الهاكر بأستغلال الموقع عبر أرسال أوامر عليه ويقوم الجهاز المخترق بقرائتها وتنفيذها ولكن قد يخطر علي بالك كيف سيعرف الجهاز المخترق بالكلمه والمفتاح حتي يقرأها ؟

بالنسبه للكلمه قد تكون كلمه محدده وليست كلمه عشوائيه ويقوم الجهاز المخترق بتفقد الرابط كل فتره زمنيه حتي يقوم الهاكر بكتابه أمر فيه وبالنسبه للمفتاح فمن الممكن أن يقوم الهاكر بأستخدام مفتاح ثابت دائما 😀

,والي هنا انتهي من المقال  أرجوا أن تكون قد نال أعجابكم

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn