التعرف على sniffing socket المهمة في الشبكات في بايثون Python الدرس |23| - Programmer Tech

Programmer Tech

موقع تعليم مجاني يهتم بتعلم البرمجة و علوم الكمبيوتر, أمن المعلومات, القرصنة الأخلاقية, سكربتات

إعلان اعلى المقالة

الأحد، 3 مايو 2020

التعرف على sniffing socket المهمة في الشبكات في بايثون Python الدرس |23|


مقدمة الدرس

سنستخدم في هذا الدرس الـ sniffing, لكن الافضل نستخدم socket افضل من scapy في الويندوز, لكن توجد مشاكل بتنزيل سكابي على اصدارات ويندوز المختلفة, سكابي تكون افضل على لينكس linux, سوف نستخدم في هذا الدرس socket و struct.

لعمل sniffing يجب اولاً أن نستخدم الشل بصلاحيات adminstrator.

import socket
import struct
#ethnet header 0:14 !6s6s2s
#ipheader 14:34    !12s4s4s
#tcpheader 34:54   !HH16s
s = socket.socket(socket.AF_INET,socket.SOCK_RAW,socket.IPPROTO_IP)
s.bind(("127.0.0.1",0))
s.setsockopt(socket.IPPROTO_IP,socket.IP_HDRINCL,1)
s.ioctl(socket.SIO_RCVALL,socket.RCVALL_ON)
while True:
   data = s.recvfrom(10000)
   #ethernet header
   ethernetheader = data[0][0:14]
   eth_hdr = struct.unpack("!6s6s2s",ethernetheader)
   print(eth_hdr[0])
   print(eth_hdr[1])
   print(eth_hdr[2])
   #ipheader
   ipheader = data[0][14:34]
   print(ipheader)
   #tcpheader
   tcpheader = data[0][34:54]
   #tcp_h = struct.unpack("!HH16s",tcpheader)
   print(tcpheader)


شرح السكربت

عملنا import للمكتبات socket و struct و أنشأنا جلسة s = socket.socket و كتبنا له الاذرفملي AF_INET يعني IPV4 و SOCK_RAW تعني عمل sniff للـ raw و socket.IPPROTO_IP اخترنا له الايبي بروتوكول.

و بعدها عملنا bind على local host لدينا و البورت حددناه 0 و setsockopt نحدد له الأيبي بروتوكول لدينا و اعطينا قيمة IP_HDRINCL القيمة 1 و هذه الخطوات هي خطوات اساسية مهمة في الويندوز و لا يجب الأستغناء عنها.

و الميثود ioctl يجب ايضا ان تكون مفعله في و يندوز من اجل عمل استقبال rcv للبيانات و ممكن ان تكون off لكن نحن هنا وضعناها on و بعدها خزننا كل هذا في data و صورة الداتا تكون 10000.

معنى التعليقات الذي في الأعلى

ethnet header 0:14 !6s6s2s
الـ ethnet header يأخذ بايتس من 0 حتى 14 و الفورمات له هي !6s6s2s تعني 6+6+2 تساوي 14 اي من 0 حتى 14 و علامة التعجب تكلمنا عنها بدروس سابقة انها تستخدم مع الشبكات.

ipheader 14:34    !12s4s4s
يعني ipheader يأخذ من 14 حتى  34 و باقي الشرح نفس سابقتها.

tcpheader 34:54   !HH16s
الـ tcpheader يأخذ من 34 حتى 54 و الفورمات لها !HH16 و كل حرف H يأخذ 2 بايتس.

http://www.mediafire.com/file/uw45pxk1prwpxxl/sniff.py/file 



قناتنا التلغرام
https://t.me/Programmer_Tech
المدونة
https://www.programmer-tech.com
صفحة الفيسبوك
https://www.facebook.com/ProgrammerTech.net
قناة اليوتيوب 1:
https://www.youtube.com/ahmadkaissar
قناة اليوتيوب 2:
https://www.youtube.com/MuhammadAlush0997

ليست هناك تعليقات:

إرسال تعليق

facebook

تسميات

تواصل معنا

Translate

أخر الافكار

من انا

authorمبرمجين ويب و محبين للتقنية و الشبكات و امن المعلومات و سوف نقدم لكم الافضل إن شاء الله
أعرف المزيد ←

نموذج الاتصال

الاسم

بريد إلكتروني *

رسالة *

اقسام