لمحة عن Packet Crafting
تقييم المستخدمين: / 10
عاديممتاز 
الكاتب ياسر   
الأحد, 14 نوفمبر 2010 20:55

تم التحدث على تقنيات  sniffing و كيفية استخدامها في اختبار الاخترق. اليوم سنتعرف على تقنية صناعة الحزم packet crafting بدلا من مراقبتها فقط. ببساطة شديدة packet crafting هو صناعة الحزم وصياغتها وهي عملية مفيدة جدا للتعرف على البرتكولات المختلفة وتحليلها ومعرفة مكونات وقواعد كل منها وأيضا تفيدنا في ااختبار الاختراق مثلا اختبار قواعد الجدران النارية والـ IDS/IPS وحتى في عمليات الهندسة العكسية reverse engineering وغيرها من الامور الأخرى.

مالذي يلزمنا لتعلم استخدام هذه التقنية ؟

في البداية يجب ان نفهم كيف تتم عملية انتقال الحزم من شبكة لشبكة اخرى.

 

OSI Layers:

  1. نحن نستخدم اجهزة للاتصال بالتأكيد وهذه الاجهزة هي التي تخرج منها الحزم على شكل اشارات كهربائية أو حتى في هيئة موجات كهرو مغناطيسية  في هذه المرحلة تكون البينات في طبقة physical layer.
  2. بعد ذلك علينا أن نتمهل للحظة ونفكر كيف تتعرف الأجهزة التي في الطبقة المادية او الفزيائية على بعض ؟ ولهذا نحتاج عنوان فزيائي كال MAC address وفي هذه المرحلة تكون الحزم في الطبقة الثانية Data link layer.
  3. بعد ان تتعرف network devices على المستوى الفزيائي من خلال العنواين الفزيائية في طبقة data link تكون الحزم في المرحلة والطبقة الثالثة network layer لها حيث تشارك عدة برتكولات في عملية توجيه الحزم للوجهة المطلوبة مثل برتكول IP-ICMP وغيرهم .
  4. بعد ذلك تكون الحزم في الطبقة الرابعة transport layer حيث يتم تنظيم نقل البينات من خلال عدة برتكولات اهمها برتكول TCP-UDP.
  5. في الطبقة الخامسة session layers هذه الطبقة تتحكم في جلسة الاتصال وتفصل بين جلسات الاتصال للتطبيقات المختلفة .
  6. الطبقة السادسة  presentation layer وهي الطبقة المسئولة عن ايصال البينات بهيئتها يعني مثلا لو ارسلت ملف mp3 يصل على هيئة mp3 ولو ملف تنفيذي يصل على انه ملف تنفيذي وهكذا.
  7. الطبقة السابعة والأخيرة application layer وهي الطبقة التي يكون لها احتكاك مباشر مع المستخدم طبعا هذا يوضح لنا أن أي تطبيق بيتصل عبر النت هو برتكول يعمل على الطبقة السابعة ومن الامثلة على هذه البرتكولات برتكول http-ftp-msn-skype-snmp.

كل الطبقات اللتي قمت بشرحها معا لنصف تدفق حزم البينات عبر الشبكة نسميها OSI model.

ماذكرته في الاعلى لايكفي في موضوع مثل الpacket crrafting  و لكنه يعطينا بداية جيدة لفهم عملية انتقال الحزم داخل الشبكة.أنصح المهتمين  بالقراءة عن الOSI modelبتفصيل اكثر عن الen/decapsulation والTcp/ip stack و  التركيب "anatomy" الخاص بالحزمة.

 

ادوات مستخدمة في عملية Packet Crafting:

Scapy

scapy برنامج تم كتابته باللغة الرائعة لغة python ومن قام بتجريب هذا البرنامج من قبل سوف يرى انه يستخدم الinterpreter  الخاص بالبايثون .
ببساطة scapy بيئة متكاملة لاختبار أمان البرتكولات المختلفة على الشبكة فبامكانك ارسال الحزم واستقبالها ايضا اوتنفيذ بعض الهجمات الشهيرة كاعتراض الحزم عن طريق تسميم الArp cash وغيرها من الهجمات الأخرى .
في الحقيقة كل هذه الوظائف جيدة لكنها ليست بالتاكيدالميزة الرئيسية لهذه الاداة ففي الحقيقة هناك الكثير من الاداوت التي تستطيع عمل ذلك ولكن المشكلة في هذه الأدوات انك تظل محدود بحدود تفكير المبرمج الذي برمج الاداة وهنا ياتي ذكر اداتنا scapy احد اقوى اربع ادوات عالميا للpacket crafting حيث تصبح حدود البرنامج هي حدود خيالك أنت نعم حيث تستطيع ان تعدل اي قيمة تريد او حتى تقوم باضافة برتكول جديد لقائمة البرتكولات المتوفرة في scapy .

Basics commands

قم بتنفيذ الامر التالي لاستعراض قائمة commands المتوفرة في scapy:

lsc()


الأمر التالي يقوم باستعراض قائمة layers المتوفرة في scapy:

ls()



الامر التالي لاستعراض  values الخاصة بالبرتكول الذي نريده

ls(variable or protocol function)


ملاحظة :البرتكول الذي ستختاره لتستعرض قيمه يجب أن تكتب حروفه Capital.
أما لو كان متغير سبق وان قمت بتعريفه فتكتب حروفه small.

الأمر التالي يقوم بارسال الحزمة:

send()


الامر التالي يقوم بارسال الحزمة واستقبالها:

sr()


الأمر التالي يقوم باستعراض قيم متغير قمنا بتعريفه:

variable.show()

مثال:

ip.show()

ip=متغير قمنا بتعريف سابقا
طبعا هذه كانت بعض الاوامر الاساسية واترك لكم الباقي لتكتشفوه
الآن تعالوا لنقوم بعمل تطبيق سريع

ََمثال سريع
في هذه الفقرة سوف اعطي مثال بسيط لحزمة tcp/ip من نوع syn frame فتابع معي الصور التالية:
أولاسنقوم باستعراض ال valuesالخاصة ببرتكول IP و TCP من خلال الأمر التالي:

ls(IP)
ls(TCP)


انظر للصورة التالية:


الآن سوف أقوم بالتعديل على القيم الافتراضية لبرتكول الIP من خلال الأوامر التالية:

ip=IP(dst='192.168.1.254')

شرح الأمر:
اولا قمنا بتعريف قيمة متغير سميناه ip بحيث قيمة هذا المتغير =IP( )
بحيث كل مرة نستخدم فيها المتغير ip سوف نستدعي الIP( ) والقيم التي يحويها وقمنا بالتعديل عليها وعدلنا قيمة destnation ip  الى ip النظام الذي  نريد توجيه الحزمة اليه.
الآن سوف اقوم باستعراض التغيرات التي طرأت على القيم الخاصة بحزمة برتكول IP:

ip.show()

لتظهر لنا النتائج التالية:


بنفس الطريقة مع برتكول TCP
تابع الاوامر التالية:

tcp=TCP(dport=(80),flags="S")
tcp.show()


لاحظ قمنا بظبط الflags في الTCP()layer  بحيث تكون الحزمة من نوع syn حيث استخدمنا الرمز S لعمل ذلك وقمنا بظبط الdestnation port حيث قيمةdport=80.

الآن نستخدم الامر التالي لارسال الحزمة التي قمنا بانشائها:

send(ip/tcp)



طبعا يمكنك أن تستخدم الامر التالي لارسال واستقبال الحزمة بدلا من ان نرسلها فقط:

sr(ip/tcp)


يمكنك أيضا باستخدام الطريقة التالية أن ترسل العدد الذي تريده من الحزم وتستقبله:

sr((ip/tcp)*100)

لاحظ سوف يتم ارسال 100حزمة

هذا كان مثال بسيط وطبعا هو ليس شرح كافي لبرنامج مثل scapy فالغرض من المقال ليس شرح تطبيق معين انما الغرض اعطاء فكرة ولمحة سريعة عن الـpacket crafting وبالطبع كما قلت في بداية المقال اني اتوقع منك ان تقوم بعمل بحث خاص بعد أن قرات هذا المقال وتبدأ بتجاربك الخاصة.

 

عن الكاتب:


ياسر, طالب في كلية طب مهتم ومتعمق في اكثر من مجال علمي وبالاخص مجال الـ Hacking.

التعليقات (9)Add Comment
عبدالمهيمن الآغا
...
أرسلت بواسطة: عبدالمهيمن الآغا في November 14, 2010
شكراً أخ ياسر, موضوع جميل يعطي فكرة سريعة عن مجال Packet Crafting.. مكتبة Scapy من أقوى المكتبات لهذا الغرض ورغم وجود أدوات وبرامج تمكننا من تنفيذ نفس العمليات لكن شخصياً أجد إستخدام لغة برمجة تفسيرية مثل بايثون أو روبي لكتابة السكريبتات أفضل ويوفر تحكم أكبر.

مبرمجي روبي يمكنهم الإطلاع على PacketFu (مكتبة أكثر من رائعة يمكننا عمل الكثير بها) و Scruby أيضاً.
Hit-Man
شكر
أرسلت بواسطة: Hit-Man في November 15, 2010
السلام عليكم
شكرا لك أخي ياسر.. حقيقة الموضوع جاء بالوقت المناسب أخي شكرا لك
و عيد مبارك سعيد
majed_19845
majed_19845
أرسلت بواسطة: majed_19845 في November 15, 2010
شكرا لك أخي ياسر على هذه اللمحة حول موضوع ال packet crafting
وموضوعك هذا يمهدني إلى عملية فحص الأنظمة بشكل يدوي ( بدون مثلا ال nmap )
شكرا لك مرة أخرى

تحياتي
Anonymous
مشكورين جميعا اخواني^_^
أرسلت بواسطة: Elnimr Elmasry في November 15, 2010
رد>>عبد المهيمن الآغا
نعم اخي عبد المهيمن بالطبع يوجد اداوت كثيرة لصناعة الحزم كnemesis مثلا ولكن كما ذكرت كتابة سكربتات يوفر تحكم اكبر بكثير.
شكرا لك على المرور وعلى الرد البناء
__________
رد>>Hit-Man
العفو اخي والحمد لله انه بالوقت المناسب ^_^
____________
رد>>majed_19845
اهلا بك اخي ماجد والعفو وان شاء الله المقال افادك.
Ahmed B.J
...
أرسلت بواسطة: Ahmed B.J في November 16, 2010
جزاك الله خير, اخي ياسر. موضوع جميل واعجبني.
لكن لكوني مبتدأ كان هنالك طلاسم بالنسبة لي :$
فـ سؤالي هو: ماذا يتوجب علي ان احيط به لأفهم كل
حرف كتبته هنا؟
والشكر لكـ مقدماً :)
Anonymous
كل عام وأنتم بخيروعيدكم عيد سعيد ومبارك عليكم وعلينا ان شاء الله
أرسلت بواسطة: Elnimr Elmasry في November 16, 2010
رد>>Ahmed B.j
اهلا وسهلا اخي احمدد
بالنسبة لمتطلبات فهم المقال فانا ذكرتها في فقرة الOSI اتمنى تلقي نظرة مرة اخرى وستجد المتطلبات اللازمة لفهم الpacket crafting .
تستطيع البحث في جوجل وستجد كثير من النتائج المفيدة لك.
بالتوفيق وكل عام وانتم بخير وعيد سعيد ان شاء الله
أسامة الشهابي
جارري التجربه
أرسلت بواسطة: أسامة الشهابي في November 24, 2010
جزاك الله خيراًاخي ياسر عى هذا الموضوع الجميل وعرضت scapy كل مااحتاج معرفته عن تنسيق الطبقات ويمكننا عمل الكثير بها

اخي الكريم احمدتعقيباً على موضوعك اود ان اخبرك بان هنالك كتاب يتحدث عن كيفية عمل الحزم بشكل اوسع وهذا اسم الكتاب code hacking: a developer's guide to network security
http://www.amazon.com/Code-Hacking-Developers-Security-Networking/dp/1584503149
بالتوفيق...
Ahmed B.J
رد..
أرسلت بواسطة: Ahmed B.J في December 07, 2010
يآسر & أسامة جزاكم الله خيرا.. ما قصرتوا
وعذرا ع التأخير بالرد ..~< بسبب فترةالاختبارات.ً
..~< وها انا بدأت بالقرآءة :)
القعقاع
...
أرسلت بواسطة: القعقاع في July 02, 2011
جزاك الله خير, اخي ياسر. موضوع جميل واعجبني.

أضف تعليق
يجب عليك الاشتراك بالموقع لتتمكن من كتابة التعليقات, الاشتراك مجاني ويستغرق بضع ثوان فقط!
اذا كنت مشترك مسبقا في الموقع فضلاً قم بتسجيل الدخول.

busy
 

SecurityTargets