
مفهوم مكتبة Scapy في لغة بايثون
مكتبة (scapy) هي مكتبة رائعة و قوية في إجراء عمليات السنيفنغ sniffing على حزم الشبكات و التعديل عليها. درسنا اليوم عن الـ sniffing لكن يتركز على مكتبة scapy و تحدثت سابقاً بأن هذه المكتبة افضل بيئة للعمل عليها هي لينكس.
لضمان عدم حدوث أي مشاكل نهائياً و إنها مكتبة قوية في مجالها و هي تتعامل مع حزم الشبكات في الدرجة الأولى حيث يمكنها إعادة صياغة و فك الشيفرات لمجموعة كبيرة من الحزم للبروتوكولات المختلفة ثم تقوم بإلتقاط هذه الحزم و إعادة إرسالها إلى الشبكة.
يمكن لمكتبة سكابي scapy مسح الشبكة و تتبع مسار الشبكة و فحص الوحدات في الشبكة و الهجمات.
- يمكن لمكتبة سكابي scapy أن تقوم بما يقارب 80% من عمل أداة nmap و tcpdump و العديد من العمليات.
- يمكن لمكتبة سكابي حقن الإطار 802.11 و فك تشفير voip على القنوات المشفرة WEP.
كيفية تثبيت مكتبة سكابي scapy
1- يجب أن يكون لدينا python3 و نستخدم الأمر التالي.
sudo apt-get install python3-pip
بهذا الأمر سوف يُخبرنا أنها مثبتة لأن البايثون3 مثبتة من الأساس في لينكس.
2- نستخدم الأمر التالي لتنزيل scapy.
pip install scapy-python3
بهذه الخطوة سوف يبدأ بتنزيل المكتبة لكن سيطال الأمر قليلاً حتى يتم الاتصال connection.
نقوم بفتح الشل python3 بصلاحيات الروت و نكتب
>>> from scapy.all import * >>> def pk_print(pkt): pkt.show() >>> sniff(iface="eth0" ,prn=pk_print,filter="tcp",store=0)
في البداية إستدعينا كل* مكتبة scapy عبر الأمر scapy.all و سوف ينتظر قليلاً حتى يستدعيها و بعده بدأنا بكتابة دالة لإستقبال البيانات بشكل دائم من pkt و طبعها, و بعدها كتبنا show.pkt يعني إعرض لنا الـ pkt. الـ iface هي الإنترفيس لدينا و أتينا بها من الأمر ifconfig.
و prn هي إسم الدالة و filter هي البيانات التي نُريد إستخراجها من عملية sniffing, و عند حدوث أي إتصال tcp سوف يبدأ السكربت بالعمل مثلاً نفتح تيرمنال جديدة و نعمل فحص عن طريق أداة nmap لموقع ما و نرى بأن السكربت بدأ يعمل بشكل طبيعي, و نستطيع تبديل الإتصال إلى icmp ايضاً لرصد إتصالات ICMP مثلاً عمل ping لموقع ما.
مكتبة scapy افضل بيئة لها لينكس و مكتبة socket الويندوز.