Wireshark (اعتراض حزم الشبكة). أفضل أدوات اختبار القلم: المتشممون والعمل مع الحزم المشممة الجاهزة

24.06.2020

سيكون برنامج Wireshark مساعدًا ممتازًا لأولئك المستخدمين الذين يحتاجون إلى إجراء تحليل مفصل لحزم الشبكة - حركة مرور شبكة الكمبيوتر. يتفاعل المتشمم بسهولة مع البروتوكولات الشائعة مثل netbios، fddi، nntp، icq، x25، dns، irc، nfs، http، tcp، ipv6واشياء أخرى عديدة. أثناء التحليل، يسمح لك بفصل حزمة الشبكة إلى المكونات المناسبة، وفقًا لبروتوكول محدد، وعرض معلومات قابلة للقراءة في شكل رقمي على الشاشة.
يدعم عددًا كبيرًا من التنسيقات المختلفة للمعلومات المرسلة والمستقبلة، وهو قادر على فتح الملفات التي تستخدمها الأدوات المساعدة الأخرى. مبدأ التشغيل هو أن بطاقة الشبكة تدخل في وضع البث وتبدأ في اعتراض حزم الشبكة الموجودة في منطقة الرؤية الخاصة بها. يمكن أن يعمل كبرنامج لاعتراض حزم wifi.

كيفية استخدام واير شارك

يقوم البرنامج بدراسة محتويات حزم المعلومات التي تمر عبر الشبكة. لتشغيل نتائج المتشمم واستخدامها، لا تحتاج إلى أي معرفة محددة، ما عليك سوى فتحه في قائمة "ابدأ" أو النقر على الأيقونة الموجودة على سطح المكتب (لا يختلف تشغيله عن أي برنامج Windows آخر) . تتيح الوظيفة الخاصة للأداة المساعدة التقاط حزم المعلومات وفك تشفير محتوياتها بعناية وإعادتها إلى المستخدم لتحليلها.

بعد تشغيل Wireshark، ستظهر لك القائمة الرئيسية للبرنامج على الشاشة، والتي تقع في أعلى النافذة. يتم استخدامه للتحكم في الأداة المساعدة. إذا كنت بحاجة إلى تحميل الملفات التي تخزن بيانات حول الحزم التي تم التقاطها في الجلسات السابقة، بالإضافة إلى حفظ البيانات حول الحزم الأخرى التي تم التقاطها في جلسة جديدة، فستحتاج إلى علامة التبويب "ملف" للقيام بذلك.

لتشغيل وظيفة التقاط حزم الشبكة، يجب على المستخدم النقر على أيقونة "التقاط"، ثم العثور على قسم قائمة خاص يسمى "الواجهات"، والذي يمكنك من خلاله فتح نافذة "Wireshark Capture Interfaces" منفصلة، ​​حيث يجب أن تكون جميع واجهات الشبكة المتاحة سيتم عرضها، والتي سيتم من خلالها التقاط حزم البيانات اللازمة. في حالة تمكن البرنامج (sniffer) من اكتشاف واجهة واحدة مناسبة فقط، فإنه سيعرض جميع المعلومات المهمة عنها على الشاشة.

تعتبر نتائج عمل الأداة دليلاً مباشراً على أنه حتى لو لم يشارك المستخدمون بشكل مستقل (في وقت معين) في نقل أي بيانات، فإن تبادل المعلومات على الشبكة لا يتوقف. بعد كل شيء، مبدأ تشغيل الشبكة المحلية هو أنه من أجل إبقائها في وضع التشغيل، يقوم كل عنصر من عناصرها (الكمبيوتر والمحول والأجهزة الأخرى) بتبادل معلومات الخدمة بشكل مستمر مع بعضها البعض، لذلك تم تصميم أدوات الشبكة هذه للاعتراض مثل هذه الحزم.

هناك أيضًا نسخة لأنظمة Linux.

تجدر الإشارة إلى ذلك يعد برنامج الشم مفيدًا للغاية لمسؤولي الشبكاتوخدمات أمان الكمبيوتر، لأن الأداة المساعدة تسمح لك بتحديد عقد الشبكة التي يحتمل أن تكون غير محمية - وهي المناطق المحتملة التي يمكن أن يتعرض للهجوم من قبل المتسللين.

بالإضافة إلى غرضه المباشر، يمكن استخدام Wireshark كأداة لمراقبة حركة مرور الشبكة وتحليلها بشكل أكبر من أجل تنظيم هجوم على المناطق غير المحمية في الشبكة، لأنه يمكن استخدام حركة المرور التي تم اعتراضها لتحقيق أهداف مختلفة.


المتشمم ليس ضارًا دائمًا. في الواقع، غالبًا ما يستخدم هذا النوع من البرامج لتحليل حركة مرور الشبكة من أجل اكتشاف الحالات الشاذة والقضاء عليها وضمان التشغيل السلس. ومع ذلك، يمكن استخدام المتشمم بقصد خبيث. يقوم المتشممون بتحليل كل ما يمر عبرهم، بما في ذلك كلمات المرور وبيانات الاعتماد غير المشفرة، حتى يتمكن المتسللون الذين لديهم إمكانية الوصول إلى المتشمم من الحصول على المعلومات الشخصية للمستخدمين. بالإضافة إلى ذلك، يمكن تثبيت برنامج الشم على أي جهاز كمبيوتر متصل بالشبكة المحلية، دون الحاجة إلى تثبيته على الجهاز نفسه - بمعنى آخر، لا يمكن اكتشافه خلال وقت الاتصال بأكمله.

من أين يأتي المتشممون؟

يستخدم المتسللون المتسللين لسرقة البيانات القيمة من خلال مراقبة نشاط الشبكة وجمع المعلومات الشخصية عن المستخدمين. عادةً ما يهتم المهاجمون أكثر بكلمات مرور المستخدم وبيانات الاعتماد للوصول إلى الخدمات المصرفية عبر الإنترنت وحسابات المتاجر عبر الإنترنت. في أغلب الأحيان، يقوم المتسللون بتثبيت المتشممين في الأماكن التي يتم فيها توزيع اتصالات Wi-Fi غير الآمنة، على سبيل المثال، في المقاهي والفنادق والمطارات. يمكن للمتشممين أن يتنكروا كجهاز متصل بالشبكة فيما يسمى بهجوم الانتحال لسرقة البيانات القيمة.

كيفية التعرف على الشم؟

من الصعب للغاية التعرف على المتطفلين غير المصرح لهم افتراضيًا، حيث يمكن تثبيتهم في أي مكان تقريبًا، مما يشكل تهديدًا خطيرًا للغاية لأمن الشبكة. غالبًا ما لا يكون لدى المستخدمين العاديين فرصة للتعرف على أن المتسلل يتتبع حركة مرور الشبكة الخاصة بهم. من الممكن نظريًا تثبيت برنامج مكافحة التجسس الخاص بك والذي من شأنه مراقبة كل حركة مرور DNS بحثًا عن وجود متسللين آخرين، ولكن بالنسبة للمستخدم العادي، يكون من الأسهل كثيرًا تثبيت برنامج مكافحة التجسس أو حل مكافحة الفيروسات الذي يتضمن حماية نشاط الشبكة لإيقافه أي تدخل غير مصرح به أو إخفاء أنشطة الشبكة الخاصة بك.

كيفية إزالة الشم

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

كيفية تجنب الوقوع ضحية للشم
  • تشفير جميع المعلومات التي ترسلها وتستقبلها
  • قم بمسح شبكتك المحلية بحثًا عن نقاط الضعف
  • استخدم فقط شبكات Wi-Fi التي تم التحقق منها والآمنة
احم نفسك من المتشممون

أول شيء يمكن للمستخدم القيام به لحماية نفسه من المتطفلين هو استخدام برنامج مكافحة فيروسات عالي الجودة، مثل برنامج مكافحة الفيروسات Avast المجاني، القادر على فحص الشبكة بالكامل بحثًا عن مشكلات الأمان. هناك طريقة إضافية وفعالة للغاية لحماية المعلومات من التجسس وهي تشفير جميع البيانات المرسلة والمستلمة عبر الإنترنت، بما في ذلك رسائل البريد الإلكتروني. بريد. يتيح لك Avast SecureLine تشفير جميع عمليات تبادل البيانات وتنفيذ الإجراءات عبر الإنترنت بشكل آمن بنسبة 100%.

لنظام التشغيل Win2000 - Windows 10 (2019) (الخادم، x86، x64). احدث اصدار: 4.4.17 بناء 424. 24 أبريل 2019.

ما هو شم المنفذ التسلسليهو برنامج يراقب نقل البيانات بواسطة برنامج آخر، كما لو أنه "يضع نفسه" بين الواجهة التسلسلية والبرنامج قيد الدراسة. يسمح لك جهاز اعتراض بيانات المنفذ التسلسلي بدراسة ميزات التشغيل لبرنامجك أو لبرنامج آخر يعمل في Windows. إذا تم تطوير البرنامج الذي تدرسه بواسطتك، فإن اعتراض بيانات المنفذ التسلسلي يتحول إلى مصحح أخطاء واجهة RS232، مما سيسمح لك بتتبع الأخطاء التي تحدث أثناء تبادل البيانات. يُطلق على وضع مراقبة بيانات المنفذ التسلسلي في برنامجنا اسم "المراقب" ويتم استدعاؤه من قائمة "الوضع" في نافذة البرنامج الرئيسية.

يجب أن يتم التبديل إلى وضع شم بيانات المنفذ التسلسلي قبلإطلاق البرنامج قيد الدراسة. إذا لم تقم بذلك، فلن يتمكن متشمم المنفذ التسلسلي بعد ذلك من الوصول إلى المنفذ التسلسلي، وبالتالي لن يتمكن من أداء وظائفه.

في وضع اعتراض بيانات المنفذ التسلسلي، يقوم البرنامج بمراقبة كل حركة المرور، المرسلة والمستقبلة. يمكن إبراز البيانات المرسلة على شاشة البرنامج. يمكن تمكين هذه الميزة في الخيارات الموجودة في علامة التبويب "أخرى / نوع البيانات".

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

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

من السهل جدًا أن يتحول برنامجنا إلى مراقب بيانات قوي وقابل للتخصيص بدرجة كبيرة. للقيام بذلك، فقط قم بتنزيل البرنامج وتثبيته. ثم قم بتشغيل البرنامج. حدد وضع "المراقب" في القائمة الرئيسية "الوضع". ثم حدد منفذًا تسلسليًا من القائمة وانقر فوق الزر "فتح". ولا تنس أنه يجب أن يتم ذلك قبل إطلاق البرنامج قيد الدراسة. وكل شيء بين يديك - أداة عالمية لحل مجموعة واسعة من المشاكل.

بالمقارنة مع برامج مراقبة المنافذ التسلسلية الأخرى، تتمتع شاشة مراقبة المنافذ التسلسلية المتقدمة بالعديد من الميزات الفريدة:

  • يوفر معترض بيانات المنفذ التسلسلي القدرة على التشغيل على عائلة أنظمة تشغيل Windows بأكملها، بدءًا من Windows 2000 وحتى Windows 2000. ويندوز 10x64;
  • يسمح لك جهاز اعتراض بيانات المنفذ التسلسلي بمراقبة نقل البيانات على جميع المنافذ التسلسلية المثبتة في النظام. يمكن أن يتراوح رقم المنفذ التسلسلي من 1 إلى 255؛
  • يمنحك برنامج رصد المنفذ التسلسلي القدرة على مراقبة حركة المرور التي يتم إرسالها أثناء اتصال الطلب الهاتفي.

يتم تنفيذ كافة إمكانيات اعتراض بيانات المنفذ التسلسلي في برنامج مراقبة المنفذ التسلسلي المتقدم الخاص بنا. قم بتنزيل الإصدار التجريبي الآن - إنه سريع ومجاني!

تم تطوير محللي حزم الشبكة، أو المتشممون، في الأصل كوسيلة لحل مشكلات الشبكة. إنهم قادرون على اعتراض وتفسير وتخزين الحزم المرسلة عبر الشبكة لتحليلها لاحقًا. فمن ناحية، يسمح ذلك لمسؤولي النظام ومهندسي الدعم الفني بمراقبة كيفية نقل البيانات عبر الشبكة وتشخيص المشكلات التي تنشأ وإصلاحها. وبهذا المعنى، تعد أدوات التعرف على الحزم أداة قوية لتشخيص مشكلات الشبكة. من ناحية أخرى، مثل العديد من الأدوات القوية الأخرى، التي كانت مخصصة أصلا للإدارة، مع مرور الوقت، بدأ المتشممون في استخدام أغراض مختلفة تماما. في الواقع، يعد وجود أداة الشم في أيدي المهاجم أداة خطيرة إلى حد ما ويمكن استخدامها للحصول على كلمات المرور والمعلومات السرية الأخرى. ومع ذلك، لا ينبغي للمرء أن يعتقد أن المتشممون هم نوع من الأدوات السحرية التي يمكن لأي متسلل من خلالها بسهولة عرض المعلومات السرية المنقولة عبر الشبكة. وقبل أن نثبت أن الخطر الذي يشكله المتشممون ليس كبيرا كما يتم تقديمه في كثير من الأحيان، دعونا نفكر بمزيد من التفصيل في مبادئ عملها.

مبادئ تشغيل أجهزة شم الحزم

علاوة على ذلك، سننظر في هذه المقالة فقط في برامج المتشممين المصممة لشبكات Ethernet. المتشمم هو برنامج يعمل على مستوى محول الشبكة (بطاقة واجهة الشبكة) NIC (طبقة الارتباط) ويعترض كل حركة المرور سرًا. نظرًا لأن المتشممين يعملون في طبقة ارتباط البيانات لنموذج OSI، فلا يتعين عليهم اللعب وفقًا لقواعد البروتوكولات ذات المستوى الأعلى. يتجاوز المتشممون آليات التصفية (العناوين، والمنافذ، وما إلى ذلك) التي تستخدمها برامج تشغيل Ethernet ومكدس TCP/IP لتفسير البيانات. يلتقط متشممو الحزم من السلك كل ما يمر عبره. يمكن للمتشممين تخزين الإطارات بتنسيق ثنائي وفك تشفيرها لاحقًا للكشف عن معلومات ذات مستوى أعلى مخبأة بداخلها (الشكل 1).

لكي يتمكن المتشمم من التقاط كافة الحزم التي تمر عبر محول الشبكة، يجب أن يدعم برنامج تشغيل محول الشبكة الوضع المختلط. في وضع تشغيل محول الشبكة هذا يكون المتشمم قادرًا على اعتراض جميع الحزم. يتم تنشيط وضع تشغيل محول الشبكة هذا تلقائيًا عند تشغيل جهاز الشم أو ضبطه يدويًا بواسطة إعدادات جهاز الشم المقابلة.

يتم تمرير كل حركة المرور التي تم اعتراضها إلى وحدة فك تشفير الحزم، التي تحدد الحزم وتقسمها إلى مستويات التسلسل الهرمي المناسبة. اعتمادًا على قدرات متشمم معين، يمكن بعد ذلك تحليل معلومات الحزمة المقدمة وتصفيتها بشكل أكبر.

قيود استخدام المتشممون

كان الخطر الأكبر هو المتشممون في تلك الأيام عندما تم نقل المعلومات عبر الشبكة بنص واضح (بدون تشفير)، وتم بناء الشبكات المحلية على أساس المكثفات (المحاور). ومع ذلك، فقد ولت تلك الأيام إلى الأبد، وفي الوقت الحاضر، فإن استخدام المتشممين للوصول إلى المعلومات السرية ليس بالمهمة السهلة بأي حال من الأحوال.

والحقيقة هي أنه عند بناء شبكات محلية تعتمد على المحاور، هناك وسيلة نقل بيانات مشتركة معينة (كابل الشبكة) وجميع عقد الشبكة تتبادل الحزم، وتتنافس على الوصول إلى هذه الوسيلة (الشكل 2)، والحزمة المرسلة بواسطة شبكة واحدة يتم إرسال العقدة إلى جميع منافذ المركز ويتم الاستماع إلى هذه الحزمة من قبل جميع العقد الأخرى على الشبكة، ولكن العقدة التي يتم توجيهها إليها هي فقط التي تستقبلها. علاوة على ذلك، إذا تم تثبيت أداة شم الحزم على إحدى عقد الشبكة، فيمكنها اعتراض جميع حزم الشبكة المتعلقة بجزء معين من الشبكة (الشبكة التي يشكلها المحور).

تعد المحولات أجهزة أكثر ذكاءً من محاور البث وتعزل حركة مرور الشبكة. يعرف المحول عناوين الأجهزة المتصلة بكل منفذ وينقل الحزم بين المنافذ الضرورية فقط. يتيح لك ذلك إلغاء تحميل المنافذ الأخرى دون الحاجة إلى إعادة توجيه كل حزمة إليها، كما يفعل المحور. وبالتالي، يتم إرسال الحزمة المرسلة بواسطة عقدة شبكة معينة فقط إلى منفذ التبديل الذي يتصل به مستلم الحزمة، وجميع عقد الشبكة الأخرى غير قادرة على اكتشاف هذه الحزمة (الشكل 3).

لذلك، إذا تم بناء الشبكة على أساس التبديل، فإن جهاز الشم المثبت على أحد أجهزة كمبيوتر الشبكة قادر على اعتراض تلك الحزم التي يتم تبادلها بين هذا الكمبيوتر وعقد الشبكة الأخرى فقط. نتيجة لذلك، من أجل أن تكون قادرا على اعتراض الحزم التي يتبادلها الكمبيوتر أو الخادم الذي يهم المهاجم مع عقد الشبكة الأخرى، من الضروري تثبيت جهاز شم على هذا الكمبيوتر (الخادم)، وهو في الواقع ليس بهذه البساطة. ومع ذلك، يجب أن تضع في اعتبارك أن بعض برامج استشعار الحزم يتم تشغيلها من سطر الأوامر وقد لا تحتوي على واجهة رسومية. من حيث المبدأ، يمكن تثبيت هذه المتشممين وتشغيلهم عن بعد ودون أن يلاحظها أحد من قبل المستخدم.

بالإضافة إلى ذلك، يجب عليك أيضًا أن تضع في اعتبارك أنه بينما تقوم المحولات بعزل حركة مرور الشبكة، فإن جميع المحولات المُدارة تحتوي على وظيفة إعادة توجيه المنفذ أو عكس المنفذ. أي أنه يمكن تكوين منفذ التبديل بطريقة تتكرر عليه جميع الحزم التي تصل إلى منافذ التبديل الأخرى. إذا كان في هذه الحالة جهاز كمبيوتر مزود بأداة شم الحزم متصلاً بمثل هذا المنفذ، فيمكنه اعتراض جميع الحزم المتبادلة بين أجهزة الكمبيوتر الموجودة على مقطع شبكة معين. ومع ذلك، كقاعدة عامة، تكون القدرة على تكوين المحول متاحة فقط لمسؤول الشبكة. وهذا لا يعني بالطبع أنه لا يمكن أن يكون مهاجمًا، ولكن لدى مسؤول الشبكة العديد من الطرق الأخرى للتحكم في جميع مستخدمي الشبكة المحلية، ومن غير المحتمل أن يقوم بمراقبتك بهذه الطريقة المتطورة.

سبب آخر يجعل المتشممين لم يعودوا خطيرين كما كانوا من قبل هو أن معظم البيانات الحساسة يتم نقلها الآن بشكل مشفر. تختفي الخدمات المفتوحة وغير المشفرة بسرعة من الإنترنت. على سبيل المثال، عند زيارة مواقع الويب، يتم استخدام بروتوكول SSL (طبقة المقابس الآمنة) بشكل متزايد؛ يتم استخدام SFTP (Secure FTP) بدلاً من FTP المفتوح، ويتم استخدام الشبكات الخاصة الافتراضية (VPN) بشكل متزايد للخدمات الأخرى التي لا تستخدم التشفير افتراضيًا.

لذا، يجب على أولئك الذين يشعرون بالقلق إزاء احتمالية الاستخدام الضار لمتشممي الحزم أن يضعوا ما يلي في الاعتبار. أولاً، لكي يشكل تهديدًا خطيرًا على شبكتك، يجب أن يكون المتشممون موجودين داخل الشبكة نفسها. ثانيًا، معايير التشفير الحالية تجعل من الصعب للغاية اعتراض المعلومات الحساسة. لذلك، في الوقت الحاضر، تفقد أدوات شم الحزم أهميتها تدريجياً كأدوات للقرصنة، لكنها في الوقت نفسه تظل أداة فعالة وقوية لتشخيص الشبكات. علاوة على ذلك، يمكن استخدام المتشممين بنجاح ليس فقط لتشخيص مشكلات الشبكة وتحديد موقعها، ولكن أيضًا لمراجعة أمان الشبكة. على وجه الخصوص، يتيح لك استخدام محللي الحزم اكتشاف حركة المرور غير المصرح بها، واكتشاف البرامج غير المصرح بها وتحديدها، وتحديد البروتوكولات غير المستخدمة لإزالتها من الشبكة، وإنشاء حركة مرور لاختبار الاختراق (اختبار الاختراق) من أجل التحقق من نظام الأمان، والعمل مع أنظمة كشف التسلل (نظام كشف التسلل (IDS).

نظرة عامة على أدوات شم حزم البرامج

يمكن تقسيم جميع برامج المتشممين إلى فئتين: المتشممون الذين يدعمون التشغيل من سطر الأوامر، والمتشممون الذين لديهم واجهة رسومية. ولكننا نلاحظ أن هناك متشممات تجمع بين هاتين الإمكانيتين. بالإضافة إلى ذلك، تختلف برامج التجسس عن بعضها البعض في البروتوكولات التي تدعمها، وعمق تحليل الحزم المعترضة، والقدرة على تكوين المرشحات، وإمكانية التوافق مع البرامج الأخرى.

عادةً ما تتكون نافذة أي أداة شم ذات واجهة رسومية من ثلاث مناطق. يعرض الأول منهم البيانات الموجزة للحزم التي تم اعتراضها. عادةً ما تعرض هذه المنطقة الحد الأدنى من الحقول، وهي: وقت اعتراض الحزمة؛ عناوين IP الخاصة بمرسل الحزمة ومستلمها؛ عناوين MAC للمرسل والمستلم، وعناوين منفذ المصدر والوجهة؛ نوع البروتوكول (الشبكة أو النقل أو طبقة التطبيق)؛ بعض المعلومات الموجزة حول البيانات التي تم اعتراضها. تعرض المنطقة الثانية معلومات إحصائية حول الحزمة الفردية المحددة، وأخيرًا تعرض المنطقة الثالثة الحزمة في شكل حرف سداسي عشري أو ASCII.

تسمح لك جميع أدوات شم الحزم تقريبًا بتحليل الحزم التي تم فك تشفيرها (وهذا هو السبب في أن أدوات شم الحزم تسمى أيضًا محللي الحزم أو محللي البروتوكول). يقوم المتشمم بتوزيع الحزم التي تم اعتراضها عبر الطبقات والبروتوكولات. بعض متشممي الحزم قادرون على التعرف على البروتوكول وعرض المعلومات الملتقطة. عادةً ما يتم عرض هذا النوع من المعلومات في المنطقة الثانية من نافذة الشم. على سبيل المثال، يمكن لأي متشمم التعرف على بروتوكول TCP، ويمكن للمتشممين المتقدمين تحديد التطبيق الذي أنشأ حركة المرور هذه. يتعرف معظم محللي البروتوكولات على أكثر من 500 بروتوكول مختلف ويمكنهم وصفها وفك تشفيرها بالاسم. كلما زادت المعلومات التي يستطيع المتشمم فك تشفيرها وعرضها على الشاشة، قلت الحاجة إلى فك التشفير يدويًا.

إحدى المشكلات التي قد يواجهها متشممو الحزم هي عدم القدرة على تعريف البروتوكول بشكل صحيح باستخدام منفذ آخر غير المنفذ الافتراضي. على سبيل المثال، لتحسين الأمان، قد يتم تكوين بعض التطبيقات المعروفة لاستخدام منافذ أخرى غير المنافذ الافتراضية. لذلك، بدلاً من المنفذ التقليدي 80، المخصص لخادم الويب، يمكن إعادة تكوين هذا الخادم قسراً إلى المنفذ 8088 أو أي منفذ آخر. بعض محللي الحزم في هذه الحالة غير قادرين على تحديد البروتوكول بشكل صحيح وعرض المعلومات فقط حول بروتوكول المستوى الأدنى (TCP أو UDP).

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

ميزة أخرى مميزة لمعظم برامج محلل الحزم هي القدرة على تكوين عوامل التصفية قبل التقاط حركة المرور وبعدها. تحدد المرشحات حزمًا معينة من حركة المرور العامة وفقًا لمعيار معين، مما يسمح لك بالتخلص من المعلومات غير الضرورية عند تحليل حركة المرور.

في هذه المقالة سننظر في إنشاء أداة شم بسيطة لنظام التشغيل Windows.
أي شخص مهتم، مرحبا بكم في القط.

مقدمة

هدف:اكتب برنامجًا يلتقط حركة مرور الشبكة (Ethernet، WiFi) المنقولة عبر بروتوكول IP.
مرافق:فيجوال ستوديو 2005 أو أعلى.
النهج الموضح هنا لا ينتمي إلى المؤلف شخصيًا ويتم استخدامه بنجاح في العديد من البرامج التجارية، وكذلك المجانية تمامًا (مرحبًا، GPL).
هذا العمل مخصص في المقام الأول للمبتدئين في برمجة الشبكات، والذين لديهم على الأقل المعرفة الأساسية في مجال المقابس بشكل عام، ومآخذ Windows بشكل خاص. سأكتب هنا غالبًا أشياء معروفة، لأن مجال الموضوع محدد، إذا فاتني شيء ما، سيكون رأسي في حالة من الفوضى.

اتمنى انك تجده مثيرا للإهتمام.

النظرية (القراءة ليست مطلوبة، ولكن يوصى بها)

في الوقت الحالي، تعتمد الغالبية العظمى من شبكات المعلومات الحديثة على أساس مكدس بروتوكول TCP/IP. مكدس بروتوكول TCP/IP (بروتوكول التحكم في الإرسال/بروتوكول الإنترنت) هو اسم جماعي لبروتوكولات الشبكة ذات المستويات المختلفة المستخدمة في الشبكات. في هذه المقالة، سنكون مهتمين بشكل أساسي ببروتوكول IP - وهو بروتوكول شبكة موجه يستخدم للتسليم غير المضمون للبيانات المقسمة إلى ما يسمى بالحزم (المصطلح الأكثر صحة هو مخطط البيانات) من عقدة شبكة إلى أخرى.
من الأمور ذات الأهمية الخاصة بالنسبة لنا حزم IP المصممة لنقل المعلومات. يعد هذا مستوى مرتفعًا إلى حد ما من نموذج بيانات شبكة OSI، حيث يمكنك عزل نفسك عن الجهاز ووسيلة نقل البيانات، التي تعمل فقط مع تمثيل منطقي.
من المنطقي تمامًا ظهور أدوات اعتراض حركة مرور الشبكة ومراقبتها وتسجيلها وتحليلها عاجلاً أم آجلاً. تسمى هذه الأدوات عادةً بمحللي حركة المرور أو محللي الحزم أو المتشممين (من الإنجليزية إلى sniff - sniff). هذا هو محلل حركة مرور الشبكة، وهو برنامج أو جهاز برمجي مصمم لاعتراض حركة مرور الشبكة المخصصة للعقد الأخرى ثم تحليلها أو تحليلها فقط.

الممارسة (المحادثة الموضوعية)

في الوقت الحالي، تم إنشاء الكثير من البرامج للاستماع إلى حركة المرور. وأشهرهم: Wireshark. وبطبيعة الحال، فإن الهدف ليس جني أمجاده - فنحن مهتمون بمهمة اعتراض حركة المرور بمجرد "الاستماع" إلى واجهة الشبكة. من المهم أن نفهم أننا لن نقوم بالاختراق والاعتراض شخص غريبمرور. نحتاج فقط إلى عرض وتحليل حركة المرور التي تمر عبر مضيفنا.

لماذا قد تكون هناك حاجة لهذا:

  1. عرض تدفق حركة المرور الحالية من خلال اتصال الشبكة (الواردة/الصادرة/الإجمالي).
  2. إعادة توجيه حركة المرور للتحليل اللاحق إلى مضيف آخر.
  3. من الناحية النظرية، يمكنك محاولة استخدامه لاختراق شبكة WiFi (لن نفعل ذلك، أليس كذلك؟).
على عكس Wireshark، الذي يعتمد على مكتبة libpcap/WinPcap، لن يستخدم محللنا برنامج التشغيل هذا. علاوة على ذلك، لن يكون لدينا سائق على الإطلاق، ولن نكتب NDIS الخاصة بنا (يا للرعب!). يمكنك أن تقرأ عن هذا في هذا الموضوع. سيكون ببساطة مراقبًا سلبيًا يستخدم فقطمكتبة وينسوك. يعد استخدام السائق في هذه الحالة أمرًا زائدًا عن الحاجة.

كيف ذلك؟ بسيط جدا.
تتمثل الخطوة الأساسية في تحويل تطبيق شبكة بسيط إلى محلل شبكة في تبديل واجهة الشبكة إلى الوضع المختلط، مما سيسمح لها باستقبال الحزم الموجهة إلى واجهات أخرى على الشبكة. يفرض هذا الوضع على بطاقة الشبكة قبول كافة الإطارات، بغض النظر عن الجهة التي يتم توجيهها إليها على الشبكة.

بدءًا من نظام التشغيل Windows 2000 (NT 5.0)، أصبح من السهل جدًا إنشاء برنامج للاستماع إلى مقطع من الشبكة، نظرًا لأنه يسمح لك برنامج تشغيل الشبكة الخاص به بضبط المقبس لتلقي كافة الحزم.

تمكين الوضع المختلط
علم طويل = 1؛ مقبس المقبس؛ #define SIO_RCVALL 0x98000001 ioctlsocket(socket, SIO_RCVALL, &RS_Flag);
يعمل برنامجنا على حزم IP ويستخدم الإصدار 2.2 من مكتبة Windows مقبس ومآخذ توصيل أولية. من أجل الوصول المباشر إلى حزمة IP، يجب إنشاء المقبس على النحو التالي:
إنشاء مأخذ خام
s = المقبس (AF_INET، SOCK_RAW، IPPROTO_IP)؛
هنا بدلا من ثابت SOCK_STREAM(بروتوكول TCP) أو SOCK_DGRAM(بروتوكول UDP)، نستخدم القيمة SOCK_RAW. بشكل عام، يعد العمل باستخدام المقابس الأولية أمرًا مثيرًا للاهتمام ليس فقط من وجهة نظر التقاط حركة المرور. في الواقع، نحصل على السيطرة الكاملة على تشكيل الحزمة. أو بالأحرى نشكلها يدويا مما يسمح مثلا بإرسال حزمة ICMP محددة...

تفضل. من المعروف أن حزمة IP تتكون من رأس ومعلومات الخدمة والبيانات في الواقع. أنصحك بالبحث هنا لتحديث معلوماتك. دعنا نصف رأس IP في شكل بنية (بفضل المقالة الممتازة عن RSDN):

وصف هيكل حزمة IP
typedef struct _IPHeader (unsigned char ver_len; // إصدار الرأس والطول unsigned char tos; // نوع الخدمة طول قصير غير موقع؛ // طول الحزمة بأكملها معرف قصير غير موقع؛ // معرف قصير غير موقع flgs_offset؛ // أعلام وإزاحة غير موقعة char ttl ؛ // بروتوكول char غير موقع مدى الحياة؛ // عنوان IP للمرسل غير موقع، // عنوان IP الوجهة قصير *params؛ 65535 ثمانيات) )IPHeader;
ستبدو الوظيفة الرئيسية لخوارزمية الاستماع كما يلي:
وظيفة التقاط حزمة واحدة
IPHeader* RS_Sniff() ( IPHeader *hdr; int count = 0; count = recv(RS_SSocket, (char*)&RS_Buffer, sizeof(RS_Buffer), 0); if (count >= sizeof(IPHeader)) ( hdr = (LPIPHeader) )malloc(MAX_PACKET_SIZE); memcpy(hdr, RS_Buffer, MAX_PACKET_SIZE); RS_UpdateNetStat(count, hdr) يُرجع 0;
كل شيء بسيط هنا: نتلقى جزءًا من البيانات باستخدام وظيفة المقبس القياسية recv، ثم قم بنسخها في هيكل مثل IPHeader.
وأخيرًا، نبدأ حلقة لا نهاية لها من التقاط الحزم:
لنلتقط جميع الحزم التي تصل إلى واجهة شبكتنا
بينما (صحيح) ( IPHeader* hdr = RS_Sniff(); // معالجة حزمة IP إذا (hdr) ( // اطبع الرأس في وحدة التحكم ) )
قليلا خارج الموضوع
هنا وأدناه، قام المؤلف بإنشاء بادئة RS_ (من مآخذ التوصيل الخام) لبعض الوظائف والمتغيرات الهامة. لقد قمت بالمشروع منذ 3-4 سنوات، وكان لدي فكرة مجنونة لكتابة مكتبة كاملة للعمل مع المقابس الأولية. وكما يحدث غالبا، بعد الحصول على بعض النتائج المهمة (بالنسبة للمؤلف)، خفت الحماس، ولم يتجاوز الأمر مجرد مثال تدريبي.

من حيث المبدأ، يمكنك المضي قدمًا ووصف رؤوس جميع البروتوكولات اللاحقة الموجودة أعلاه. للقيام بذلك، تحتاج إلى تحليل المجال بروتوكولفي الهيكل IPHeader. انظر إلى رمز المثال (نعم، يجب أن يكون هناك مفتاح تبديل، اللعنة!)، حيث يتم تلوين الرأس اعتمادًا على البروتوكول الذي قامت الحزمة بتغليفه في IP:

/* * تمييز الحزمة بالألوان */ void ColorPacket(const IPHeader *h, const u_long haddr, const u_long whost = 0) ( if (h->xsum) SetConsoleTextColor(0x17); // إذا لم تكن الحزمة فارغة وإلا SetConsoleTextColor(0x07) ; // حزمة فارغة if (haddr == h->src) ( SetConsoleTextColor(BACKGROUND_BLUE | /*BACKGROUND_INTENSITY |*/ FOREGROUND_RED | FOREGROUND_INTENSITY); // الحزمة "الأصلية" للعودة ) else if (haddr == h->dest ) ( SetConsoleTextColor(BACKGROUND_BLUE | /*BACKGROUND_INTENSITY |*/ FOREGROUND_GREEN | FOREGROUND_INTENSITY); // "أصلي" تلقي الحزمة ) if (h->protocol == PROT_ICMP || h->protocol == PROT_IGMP) (SetConsoleTextColor (0x70) ؛ // حزمة ICMP ) else if(h->protocol == PROT_IP || h->protocol == 115) ( SetConsoleTextColor(0x4F); // حزمة IP-in-IP، L2TP ) else if(h ->protocol == 53 ||. h->protocol == 56) ( SetConsoleTextColor(0x4C); // TLS, IP مع التشفير ) if(whost == h->dest || whost == h->src) ( SetConsoleTextColor (0x0A);

ومع ذلك، هذا يتجاوز نطاق هذه المقالة بشكل كبير. بالنسبة لمثالنا التدريبي، سيكون كافيًا إلقاء نظرة على عناوين IP الخاصة بالمضيفين الذين تأتي منهم حركة المرور وإليها، وحساب مقدارها لكل وحدة زمنية (البرنامج النهائي موجود في الأرشيف في نهاية المقالة) .

لعرض بيانات رأس IP، يجب عليك تنفيذ وظيفة لتحويل الرأس (وليس البيانات) لمخطط البيانات إلى سلسلة. وكمثال على التنفيذ، يمكننا أن نقدم الخيار التالي:

تحويل رأس IP إلى سلسلة
inline char* iph2str(IPHeader *iph) ( const int BUF_SIZE = 1024; char *r = (char*)malloc(BUF_SIZE); memset((void*)r, 0, BUF_SIZE); sprintf(r, "ver=% d hlen=%d tos=%d len=%d id=%d flags=0x%X إزاحة=%d ttl=%dms prot=%d crc=0x%X src=%s dest=%s", BYTE_H (iph->ver_len)، BYTE_L(iph->ver_len)*4، iph->tos، ntohs(iph->length)، ntohs(iph->id)، IP_FLAGS(ntohs(iph->flgs_offset)))، IP_OFFSET (ntohs(iph->flgs_offset))), iph->ttl, iph->protocol, ntohs(iph->xsum), nethost2str(iph->src), nethost2str(iph->dest));
بناءً على المعلومات الأساسية الواردة أعلاه، حصلنا على هذا البرنامج الصغير (اسمه المخيف ss، وهو اختصار لـ simple sniffer)، الذي ينفذ الاستماع المحلي إلى حركة مرور IP. تظهر واجهته أدناه في الشكل.

أقدم الكود المصدري والثنائي كما هو، كما كان قبل عدة سنوات. الآن أنا خائف من النظر إليه، ومع ذلك، فهو قابل للقراءة تمامًا (بالطبع، لا يمكنك أن تكون واثقًا جدًا من نفسك). حتى Visual Studio Express 2005 سيكون كافيًا للتجميع.

ما انتهينا إليه:

  • يعمل المتشمم في وضع المستخدم، ولكنه يتطلب امتيازات المسؤول.
  • لا تتم تصفية الحزم ويتم عرضها كما هي (يمكنك إضافة عوامل تصفية مخصصة - أقترح الاطلاع على هذا الموضوع بالتفصيل في المقالة التالية إذا كنت مهتمًا).
  • يتم أيضًا التقاط حركة مرور WiFi (كل هذا يتوقف على طراز الشريحة المحدد، وقد لا يناسبك، كما حدث معي منذ عدة سنوات)، على الرغم من وجود AirPcap، والذي يمكنه القيام بذلك بشكل رائع، ولكنه يكلف مالًا.
  • يتم تسجيل دفق مخطط البيانات بالكامل في ملف (راجع الأرشيف المرفق في نهاية المقالة).
  • يعمل البرنامج كخادم على المنفذ 2000. ويمكنك الاتصال بالمضيف باستخدام أداة telnet المساعدة ومراقبة تدفقات حركة المرور. عدد الاتصالات يقتصر على عشرين (الكود ليس خاصتي، لقد وجدته على الإنترنت واستخدمته للتجارب، ولم أحذفه - إنه لأمر مؤسف)
أشكركم على اهتمامكم، أهنئ سكان خابروفسك وسكان خابروفكا والجميع، عيد ميلاد سعيد!