لمدة, الpacket, crafting
لمحة عن الpacket crafting
في بداية دخولي لعالم الهاكينج قرأت كتاب عربي بسيط عن اختراق الشبكات الأساليب التي يشرحها الكتاب جدا بدائية بصراحة لو قابلت مؤلف هذا الكتاب او تسنت لي مراسلته كنت سأسأله هل هذا فعلا كتاب يتحدث عن اختراق الشبكات فعلا وتأمينها لكن كان لفت نظري عدة أشياء تكلم عنها الكتاب الكتاب تكلم عن عدة اداوات لعمل sniffing وبعض المعلومات البسيطة جدا جدا عن حزم البينات في هذا الوقت كنت اتسائل عن ماهية هذه الحزم مكوناتها انواعها الضوابط التي تنظمها هل يمكننا صناعة مثل هذه الحزم واذا يمكن هل هذا يعني اننا يمكن ان نصنع حزم مزيفة ولنفرض اننا نجحنا في تزييف حزم هل هذا قد يساعدنا بالفعل في اختراق نظام معين.
في هذه اللحظة بدأت أشعر أن هناك باب جديد سوف ينفتح لي في هذا العالم وأن كثير من الأشياء المثيرة تنتظرني .
عموما يكفي ثرثرة ولندخل في صلب الموضوع لنتعرف على تقنية صناعة الحزم packet crafting بدل من مراقبتها فقط ^_^.
______________
مقدمة:
في هذه الفقرة سوف نتكلم "ندردش ^_^"في بعض الأشياء الاساسية قبل أن ندخل للتطبيق باستخدام اداوت لصناعة الحزم.

الآن عزيزي القارئ مارأيك في أن نقوم بوصف كيفية انتقال الحزم من شبكة لشبكة اخرى.
نحن نستخدم اجهزة للاتصال بالتاكيد وهذه الاجهزة هي التي تخرج منها الحزم على شكل اشارات كهربائية أو حتى في هيئة موجات كهرو مغناطيسية في هذه المرحلة تكون البينات في طبقة الphysical layer.
بعد ذلك علينا أن نتمهل للحظة ونفكر كيف تتعرف الأجهزة التي في الطبقة المادية او الفزيائية على بعض ؟ ولهذا نحتاج عنوان فزيائي كالMAC address وفي هذه المرحلة تكون الحزم في الطبقة الثانية Data link layer.
بعد ان تتعرف الnetwork devices على المستوى الفزيائي من خلال العنواين الفزيائية في طبقة الdata link تكون الحزم في المرحلة والطبقة الثالثة network layer لها حيث تشارك عدة برتكولات في عملية توجيه الحزم للوجهة المطلوبة زي برتكول الIP-ICMP وغيرهم .
بعد ذلك تكون الحزم في الطبقة الرابعة transport layer حيث يتم تنظيم نقل البينات من خلال عدة برتكولات اهمها برتكول TCP-UDP.
في الطبقة الخامسة الsession layers هذه الطبقة تتحكم في جلسة الاتصال وتفصل بين جلسات الاتصال للتطبيقات المختلفة .
الطبقة السادسة الpresentation layer وهي الطبقة المسئولة عن ايصال البينات بهيئتها يعني مثلا لو ارسلت ملف mp3 يصل على هيئة mp3 ولو ملف تنفيذي يصل على انه ملف تنفيذي وهكذا.
الطبقة السابعة والأخيرة application layer وهي الطبقة التي يكون لها احتكاك مباشر مع المستخدم طبعا هذا يوضح لنا أن أي تطبيق بيتصل عبر النت هو برتكول يعمل على الطبقة السابعة ومن الامثلة على هذه البرتكولات برتكول http-ftp-msn-skype-snmp.
:. طبعا كل الطبقات اللتي قمت بشرحها معا لنصف تدفق حزم البينات عبر الشبكة نسميها OSI model.
"معلش في ناس مدايقة انا عارف لان الكلام اللي بقوله بدائي جدا بس زي مااحنا عارفين مش كل اللي بيقرا المواضيع دي محترفين ولاكلهم مختصيين زي مثلا انا لامتخصص ولافني^_^".
طبعا لماذا قمت بهذه الدردشة البسيطة معكم لأن ببساطة الpacket crafting يعتمد عليها بشكل اساسي يعني الحزم الاعدادات اللتي تكون فيها تكون وفقا لهذا النموذج نموذج OSI.
______________________
Packet crafting
ماهو الpacket crafting؟؟
ببساطة شديدة هو صناعة الحزم وصياغتها .
مالفائدة من الpacket crafting؟
الحقيقة صناعة الحزم مفيدة جدا في التعرف على البرتكولات المختلفة وتحليلها ومعرفة مكونات وقواعد كل منها وأيضا تفيدنا في الpen test مثلا كاختبار قواعد الجدران النارية والIDS/IPS وايضا في الforensicsوحتى في عمليات الreverse engineeringوغيرها من الامور وماذكر على سبيل المثال وليس الحصر.
مالذي يلزمنا لتعلم استخدام هذه التقنية ؟
طبعا انا ماذكرته في المقدمة كما قلت لايكفي طبعا في موضوع مثل الpacket crrafting وإن تكلمنا بصراحة فسأقول لك المفترض اني أكتب عن الOSI modelبتفصيل اكثر عن الen/decapsulation والTcp/ip stack واقوم بشرح التركيب "anatomy" الخاص بالحزمةطبعا كل هذا المفروض كان يوضع بالمقدمة ولكن البركة فيكم ان شاء الله وجوجل مايقصر المهم ركزوا اعزائي في العناوين اللي ذكرتها الآن والتي كان المفروض اتكلم عنها لاني طبعا المفروض انكم تبحثون عنها في عراب الشبكة العنكبوتية جوجل ^_^.
_______________________
اداوت وتطبيقات
Scapy
نظرة سريعة :
scapy برنامج تم كتابته باللغة الرائعة لغة python ومن قام بتجريب هذا البرنامج من قبل سوف يرى انه يستخدم الinterpreter الخاص بالبايثون .
ببساطة scapy بيئة متكاملة لاختبار أمان البرتكولات المختلفة على الشبكة فبامكانك ارسال الحزم واستقبالها ايضا اوتنفيذ بعض الهجمات الشهيرة كاعتراض الحزم عن طريق تسميم الArp cash وغيرها من الهجمات الأخرى .
في الحقيقة كل هذه الوظائف جيدة لكنها ليست بالتاكيدالميزة الرئيسية لهذه الاداة ففي الحقيقة هناك الكثير من الاداوت التي تستطيع عمل ذلك ولكن المشكلة في هذه الأدوات انك تظل محدود بحدود تفكير المبرمج الذي برمج الاداة وهنا ياتي ذكر اداتنا scapy احد اقوى اربع ادوات عالميا للpacket crafting حيث تصبح حدود البرنامج هي حدود خيالك أنت نعم حيث تستطيع ان تعدل اي قيمة تريد او حتى تقوم باضافة برتكول جديدلقائمة البرتكولات المتوفرة في scapy عمومايبدوا أن المقال سيتحول إلى موضوع انشاء عن scapy ^_^ وليس نظرة سريعة ههههه طيب طيب يلا استعدوا للتطبيق.
Basics commands
قم بتنفيذ الامر التالي لاستعراض قائمة الcommands المتوفرة في scapy:
الأمر التالي يقوم باستعراض قائمة الlayers المتوفرة في scapy:
الامر التالي لاستعراض الرvaluesالخاصة بالبرتكول الذي نريده
كود PHP:
ls(variable or protocol function)
ملاحظة :البرتكول الذي ستختاره لتستعرض قيمه يجب أن تكتب حروفه Capital
أما لو كان متغير سبق وان قمت بتعريفه فتكتب حروفه small
عموما لاتقلق سوف نقوم لاحقا بتطبيق عملي لهذه الاوامر مماسيوضح الامور اكثر
الأمر التالي يقوم بارسال الحزمة:
الامر التالي يقوم بارسال الحزمة واستقبالها:
الأمر التالي يقوم باستعراض قيم متغير قمنا بتعريفه:
كود PHP:
ip=متغير قمنا بتعريف سابقا
طبعا هذه كانت بعض الاوامر الاساسية واترك لكم الباقي لتكتشفوه
الآن تعالوا لنقوم بعمل تطبيق سريع
quick demo
في هذه الفقرة سوف اعطي مثال بسيط لحزمة tcp/ip من نوع syn frame فتابع معي الصور التالية:
أولاسنقوم باستعراض ال valuesالخاصة ببرتكول الIPوالTCP من خلال الأمر التالي:
الآن سوف أقوم بالتعديل على القيم الافتراضية لبرتكول الIP من خلال الأوامر التالية:
كود PHP:
ip=IP(dst='192.168.1.254')
شرح الأمر:
اولا قمنا بتعريف قيمة متغير سميناه ip بحيث قيمة هذا المتغير =IP( )
بحيث كل مرة نستخدم فيها المتغير ip سوف نستدعي الIP( ) والقيم التي يحويها وقمنا بالتعديل عليها
وعدلنا قيمة الdestnation ip الى الip المنظام الذي نريد توجيه الحزمة اليه.والآن سوف اقوم باستعراض التغيرات التي طرأت على القيم الخاصة بحزمة برتكول IP:
بنفس الطريقة مع برتكول TCP
تابع الاوامر التالية:
كود PHP:
tcp=TCP(dport=(80),flags="S")
لاحظ قمنا بظبط الflags في الTCP()layer بحيث تكون الحزمة من نوع syn حيث استخدمنا الرمز S لعمل ذلك وقمنا بظبط الdestnation port حيث قيمة الdport=80.
الآن نستخدم الامر التالي لارسال الحزمة التي قمنا بانشائها:
طبعا يمكنك أن تستخدم الامر التالي لارسال واستقبال الحزمة بدلا من ان نرسلها فقط:
يمكنك أيضا باستخدام الطريقة التالية أن ترسل العدد الذي تريده من الحزم وتستقبله:
كود PHP:
sr((ip/tcp)*100)
 |
|
 |
|
لاحظ سوف يتم ارسال 100حزمة |
|
 |
|
 |
هذا كان مثال بسيط وطبعا هو ليس شرح كافي لبرنامج مثل scapy فالغرض من المقال ليس شرح
تطبيق معين انما الغرض اعطاء فكرة ولمحة سريعة عن الpacket crafting وبالطبع كما قلت في بداية المقال اني اتوقع منك ان تقوم بعمل بحث خاص بعد أن قرات هذا المقال وتبدأ بتجاربك الخاصة^_^.
___________________
أخيرا:
اتمنى هذه اللمحة ان تكون كافية لبداية صحيحة لتنطلق بنفسك في حال انك لم تلقي نظرة من قبل
على الpacket crafting واتمنى ايضا المقال نال اعجابكم وان شاء الله سيكون لنا حديث اخر
عن امور وتطبيقات متقدمة للpacket crafting فقط ابقوا اعينكم مفتوحة سلام مؤقتا
glpm uk hgpacket crafting gl]m