Hacker Geek OS Fingerprinting مع TTL و TCP Window Sizes
هل تعلم أنه يمكنك معرفة أي نظام تشغيل يعمل عبر الشبكة فقط من خلال النظر إلى الطريقة التي يتصل بها على الشبكة؟ دعونا نلقي نظرة على كيفية اكتشاف نظام التشغيل الذي تعمل عليه أجهزتنا.
لماذا ستفعل هذا?
يمكن أن يكون تحديد نظام التشغيل الذي يعمل عليه الجهاز أو الجهاز مفيدًا لأسباب عديدة. أولاً ، دعنا نلقي نظرة على المنظور اليومي ، تخيل أنك تريد التبديل إلى مزود خدمة إنترنت جديد يقدم خدمة إنترنت لم يتم تسجيلها مقابل 50 دولارًا شهريًا حتى تتمكن من تجربة الخدمة التي يقدمها. باستخدام بصمة نظام التشغيل سوف تكتشف قريبًا أن لديها أجهزة توجيه قمامة وتقدم خدمة PPPoE المقدمة على مجموعة من أجهزة Windows Server 2003. لا يبدو مثل هذه صفقة جيدة بعد الآن ، هاه?
استخدام آخر لهذا ، وإن لم يكن أخلاقيا ، هو حقيقة أن ثغرات أمنية محددة لنظام التشغيل. على سبيل المثال ، يمكنك إجراء فحص منفذ وإيجاد المنفذ 53 مفتوحًا وتشغيل الجهاز إصدارًا قديمًا وغير قابل للكسر من Bind ، فلديك فرصة واحدة لاستغلال فتحة الأمان نظرًا لأن أي محاولة فاشلة قد تؤدي إلى تعطل البرنامج الخفي.
كيف تعمل بصمة نظام التشغيل?
عند القيام بتحليل سلبي لحركة المرور الحالية أو حتى النظر إلى حزم الحزم القديمة ، فإن أحد أسهل الطرق وأكثرها فاعلية لإجراء عملية البصمات على نظام التشغيل هو بمجرد النظر إلى حجم إطار TCP و Time To Live (TTL) في رأس IP الخاص بالأول حزمة في جلسة TCP.
فيما يلي القيم الخاصة بأنظمة التشغيل الأكثر شيوعًا:
نظام التشغيل | وقت للعيش | حجم نافذة TCP |
Linux (Kernel 2.4 و 2.6) | 64 | 5840 |
جوجل لينكس | 64 | 5720 |
فري | 64 | 65535 |
ويندوز إكس بي | 128 | 65535 |
نظام التشغيل Windows Vista و 7 (Server 2008) | 128 | 8192 |
iOS 12.4 (أجهزة توجيه Cisco) | 255 | 4128 |
السبب الرئيسي لوجود قيم مختلفة لأنظمة التشغيل يرجع إلى حقيقة أن RFC الخاص بـ TCP / IP لا ينص على القيم الافتراضية. من الأمور المهمة الأخرى التي يجب تذكرها هي أن قيمة TTL لن تتطابق دائمًا مع قيمة واحدة في الجدول ، حتى إذا كان جهازك يشغل أحد أنظمة التشغيل المدرجة ، فإنك تشاهد عند إرسال حزمة IP عبر الشبكة إلى نظام تشغيل الجهاز المرسل لتعيين TTL إلى TTL الافتراضي لنظام التشغيل هذا ، ولكن عندما تنتقل الحزمة إلى الموجهات يتم خفض TTL بمقدار 1. لذلك ، إذا رأيت TTL 117 ، فيمكن توقع أن تكون حزمة تم إرسالها مع TTL من 128 و اجتاز 11 راوترًا قبل التقاطها.
يعد استخدام tshark.exe أسهل طريقة لمشاهدة القيم ، وذلك بمجرد حصولك على التقاط الحزمة ، تأكد من تثبيت Wireshark ، ثم انتقل إلى:
C: \ ملفات البرنامج \
اضغط مع الاستمرار على زر shift وانقر بزر الماوس الأيمن على مجلد wireshark وحدد نافذة الأوامر المفتوحة هنا من قائمة السياق
الآن اكتب:
tshark -r "C: \ Users \ Taylor Gibb \ Desktop \ blah.pcap" "tcp.flags.syn eq 1" -T fields -e ip.src -e ip.ttl -e tcp.window_size
تأكد من استبدال "C: \ Users \ Taylor Gibb \ Desktop \ blah.pcap" بالمسار المطلق لالتقاط الحزمة. بمجرد أن تصل إلى إدخال ، سيظهر لك كل حزم SYN من الالتقاط الخاص بك تنسيق تنسيق أسهل للقراءة
الآن هذا هو التقاط عشوائي للحزم قمت به من خلال الاتصال بموقع "كيفي-جيك" ، من بين جميع الأحاديث الأخرى التي يقوم بها نظام ويندوز يمكنني أن أخبركم بها شيئين بالتأكيد:
- شبكتي المحلية هي 192.168.0.0/24
- أنا على صندوق ويندوز 7
إذا نظرت إلى السطر الأول من الجدول سترى أنني لست مستلقياً ، عنوان IP الخاص بي هو 192.168.0.84 أن TTL الخاص بي هو 128 وأن حجم إطار TCP الخاص بي هو 8192 ، والذي يتوافق مع قيم Windows 7.
والشيء التالي الذي أراه هو عنوان 74.125.233.24 مع TTL من 44 وحجم إطار TCP من 5720 ، إذا نظرت إلى طاولتي لا يوجد نظام تشغيل مع TTL من 44 ، ومع ذلك فإنه يقول أن لينكس أن خوادم جوجل تشغيل لديك TCP حجم الإطار 5720. بعد القيام بحث سريع على شبكة الإنترنت من عنوان IP سترى أنه في الواقع خادم جوجل.
ماذا آخر استخدام tshark.exe ل ، تخبرنا في التعليقات.