بصمات انظمة التشغيل Os fingerprinting

الجزئ الاول 

  التعرف على نظام التشغيل الذي يعمل على جهاز الكمبيوتر المستهدف في عملية اختبار الاختراق مهم , لأنه  سيحدد لنا الثغرات التي يجب علينا استخدامها , سأحاول من خلال هذا الدرس ان اقدم رؤية عن ما يعرف ببصمات انظمة التشغيل  كلمة بصمة هنا تعني الكيفية التي يتخاطب بها النظام مع العالم الخارجي هل لو استطعنا تحليل حزم المعلومات الواردة من النظام  Incoming packets يمكننا ان نحدد هويته هل هو لينوكس , ويندوز , او ماك ؟

هناك الكثير من الادوات التي بامكانها تحديد هوية النظام … ما يهمني في هذا الدرس هو شرح كيفية عمل هذه الادوات, لانه من المهم ان تعرف كيفية استخدام الاداة مع طريقة عملها ما الذي تفعله بالضبط , حسنا توجد طريقتين للتعرف على نظام التشغيل كلاهما تعتمد على تحليل حزم البيانات و مقارنتها مع مجموعة من التواقيع signatures لانظمة التشغيل المختلفة الطريقة الاولى تعرف ب Active OS  Fingerprinting و  تعتمد على ارسال مجموعة من الحزم المخصصة و تحليل الرد, عيب هذه الطريقة هي التفاعل مع النظام والذي سيتسبب في تسجيل ما فعلناه في ملفات اللوغ  log files  الطريقة الثانية Passive  OS Fingerprinting و تعتمد على مراقبة النشاط الذي يحدث بيننا مع النظام من دون ارسال Packets مخصصة و لكن كيف ؟ تخيل معي انك تريد معرفة نظام التشغيل الذي يعمل على سيرفر موقع  facebook ستستخدم مراقب الحزم sniffer لالتقاط الحزم و بعدها ستلج الى موقع الفيسبوك بطريقة عادية جدا عن طريق المتصفح بواسطة بروتوكول Http  بعدها تعود الى sniffer  وتأخذ الحزم و تقوم بتحليلها لتستنتج هوية نظام التشغيل هنا تكون قد قمت بالعملية من دون ان ترسل حزم مفبركة الى سيرفر فيسبوك .

نظرة على TCP/IP

هل سبق وان سمعتم عن مجموعة TCP/IP او مجموعة البروتوكولات التي تقف عليها شبكة الانترنت كل نظام تشغيل عليه زرع ما يعرف ب TCP Stack  او كومة هذه البروتوكولات في نواته لكي يتمكن من التخطاب مع الانظمة الاخرى على الشبكة هذه المجموعة و كما هو واضح تحتوي على بروتوكولين اساسين هما IP لتوجيه البيانات  الى هدفها النهائي  و بروتوكول TCP المعروف بالعمود الفقري لشبكة الانترنت الذي يسمح لاي جهازين على الشبكة بالتخاطب بلغة مفهومة, TCP له الكثير من الخصائص منها على سبيل المثال التأكد من وصول البيانات الى وجهتها ولهذا يوصف بالموثوقية و لفهم هذين البروتوكولين سأعطي مثال عند محاولة ارسال ملف عبر الانترنت الى جهاز آخر فان بروتوكول TCPيقوم بتقسيمها الى قطع صغيرة و يضيف الى كل قطعة مجموعة من المعلومات تعرف Header تضمن ترتيب القطع segments عند محاولة الجهاز الآخر تجميعها و ترتيبها ويضيف كذلك معلومات اخرى مثل رقم port الذي سيستقبل هذا الملف في الجهاز ثم يقوم بتمرريرها الى بروتوكول IP الذي سيقودها لتصل الى وجهتها , لنلقي نظرة على header الذي يضيفه TCP على قطع البيانات الصغيرة :

ما ترونه في الصورة هو ما يضيفه بروتوكول  TCP الى البيانات قبل ان يسلمها لبروتوكول IPسأشرح الآن الحقول :

source &  destination: هذان الحقلان يمثلان رقمي بورت المصدر و بورت المستقبل و شيئ طبيعي عندما يتم الاتصال بين جهازين فانهما سيتحدثان عبر منفذين  و فائدة هذا لكي يستطيع الجهاز التعرف على خدمة التطبيق الذي سيستقبل البيانات ان كانت خدمة ftp , http او smtp

sequence number : هذا الرقم يمثل ترتيب اول بايت من المقطع الحالي في البيانات  و هو الذي يعتمد عليه الجهاز المستقبل لترتيب البيانات واعادتها الى حالتها الطبيعية

Acknowledgement Number : ويمثل الرقم التسلسلي التالي الذي يجب على الجهاز استقباله وهو الذي يحدد موثوقية البروتوكول في تسليم البيانات

window : وتمثل عدد البايتات الاعلى  و التي يحبذ الجهاز استقبالها و هذه اشارة الى ان الجهاز المرسل يمكنه ان يرسل كحد اعلى قيمة window كحد اعلى قبل ان يستلم اي تأكيد عن وصولها

flags :  اعلام التحكم وظيفتها التحكم في الاتصال فعلى سبيل المثال يمكن ذكر علم SYN و الذي يستخدم لبداية الاتصال هناك ايضا علم ACK  والذي تكمن فائدته في تأكيد استلام الحزمة Packet , هذه الاعلام عبارة عن مجموعة من البتات فاذا كان بت العلم يساوي 1 فمعنى ذلك ان العلم مرفوع

Data offset : وتمثل حجم ال header اي كل ما في الصورة اعلاه

Options : هذا الحقل مفيد في بعض الاضافات التي يمكننا استخدامها على سبيل المثال يمكن استخدامه للتلاعب بwindow size الذي رأينا و اشياء اخرى

هذا الدرس ليس عن بروتوكول TCP و لا حتى IP لكن من الضروري ان نلقي نظرة عليهما و للمزيد من التفاصيل حول بروتوكول TCP يمكن زيارة صفحة ويكيبيديا التالية :

TCP-Wikipedia

الآن و قد رأينا ما يقوم TCP باضافته لنلقي نظرة على ما يضيفه IP  او ما يعرف ب IP header هذه العملية تقع بعد ان يتم استلام مقطع TCP اي في طبقة الشبكة و التي يعمل بها بروتوكول IP:

لنرى الحقول :

version : اصدار البروتوكول هل هو IPv4 او IPv6

IHL: و تعني Internet Header Lenght وهي حجم ال Header

Type of Service : هذا الحقل يستخدم لتحديد نوعية الخدمة التي يجب اتخاذها مع الحزمة

Total Lengh : يمثل حجم كل شيئ بما في ذلك البيانات كما ترونها في اسفل الصورة

Identification : هذا الحقل يستخدم في عملية تعرف بfragmentaion و هي تقسيم الحزمة الى قطع صغيرة اثناء مرورها على الروترات لسبب ان buffers تختلف بين الروترات المختلفة

Flags : يستخدم هذا الحقل للتحكم ب fragmentation ففيه يتم تحديد ان كان هناك المزيد من fragments او ان هذه fragment هي الاخيرة

TTL : من اهم الحقول و هو يحدد مدة حياة الحزمة في الشبكة يعرف ب Time To Live الحجم الاقصى له هو 255 ويتم تحديد قيمته من المرسل بعد خروج الحزمة من الجهاز فان اي router تصله ينقص القيمة ب 1 فاذا وصلت الى 0 يتم تدميرها  و هذا لكي لا تظل الحزمة تدور في الشبكة

Source & Destination : تمثل عناوين الجهاز المرسل و الجهاز المستقبل

للمزيد عن بروتوكول IP:

IP-Wikipedia

الآن انتهينا من شرح اهم مافي TCP و  IP بقي شيئ اخير وهو عملية يقوم بها اي جهازين عند بداية الاتصال تعرف ب  three way handshake او المصافحة الثلاثية و ذلك قبل بدأ ارسال البيانات , اي جهاز يريد ارسال او الاتصال بجهاز آخر عبر بروتوكول TCP عليه اولا ان يرسل حزمة تدعى SYN اي رفع علم SYN فيها بعد ان تصل الى المستقبل عليه ان يجيب ب SYN-ACK  اذا كان يريد فتح الاتصال واخيرا يقوم الجهاز الاول بارسال ACK ثم يبدأ في ارسال البيانات حتى ينتهي  كما هو موضح في الصورة :

الى هنا ينتهي الجزئ الاول ترقبوا الجزئ الثاني قريبا ان شاء الله …

مع تحياتي.

2 تعليقان

Filed under Uncategorized

2 responses to “بصمات انظمة التشغيل Os fingerprinting

  1. meriem

    السلام عليكم و رحمة الله و بركاته

    اخي الكريم رغم اننا قد تطرقنا في دراستنا الجامعية الى شرح بعض المصطلحات التي قمت بشرحها هنا في هذا الدرس الا انني وجدت شرحك قد تميز بالبساطة و سهولة الفهم
    اتمنى ان شاء الله ان اطبق ما فهمته في حياتي العملية
    مع خالص تحياتي

  2. michael corleone

    شكرا اخي العزيز جزاك الله كل خير درس في غاية الروعه والى الامام

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

شعار ووردبريس.كوم

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   /  تغيير )

Google photo

أنت تعلق بإستخدام حساب Google. تسجيل خروج   /  تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   /  تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   /  تغيير )

Connecting to %s