أمن المعلومات

تعرف على أداة snort – الجزء الثاني

تعرف على أداة snort – الجزء الثاني

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

 

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

ملاحظة : اذا لم تكن قد تابعت الدرس الأول فيمكنك متابعته من هذا الرابط :الجزء الأول من الدرس.

 

أولاً : إجراء عملية إستكشاف للشبكة.

تعتبر عملية الإستكشاف للشبكة والتي تدعي Reconnaissance عبارة عن عملية يتم من خلالها اكتشاف الأجهزة المتصلة بالشبكة. حيث يمكن استخدام العديد من الأدوات للقيام بهذا الأمر, الا أن أشهر أداة من هذه الأدوات هي أداة nmap والتي تستخدم للعديد من الإستخدامات منها عملية الإستكشاف للشبكة.

سنقوم الآن بكتابة الأمر البسيط التالي في سطر الأوامر, حيث تعبر 192.168.66.0/24 عبارة عن عنوان الشبكة التي قمنا بالتحدث عنه في الدرس الأول :

 

nmap -sP 192.168.66.0/24

شرح الأمر :

  • nmap هو الأمر الخاص بتشغيل هذه الأداة.
  • -sP هو أحد أنواع الفحص بأداة الـ nmap ويدعى Ping Scan أو Host Discovery (سنتحدث في دروس قادمة عن أنواع الفحص في هذه الأداة بالتفصيل).

سيقوم هذا الأمر بمعرفة الأجهزة التي تعمل الآن ومتصلة بالشبكة.

أداة Snort
أداة Snort

 

 

قمنا في الدرس السابق من هذه السلسلة بكتابة قاعدة أو أمر (Rule) تقوم بإكتشاف عمليات الـ ping التي تتم في الشبكة, سنقوم الآن بإعادة تفعيل هذه القاعدة كما قمنا في الدرس السابق وذلك بإزالة الرمز #, حيث سنقوم بالتعديل على الملف التالي :

sudo gedit /etc/snort/rules/local.rules

حيث سيصبح محتوى الملف كما يلي :

 

Untitled-1

 

سنقوم بعد ذلك بتشغيل أداة الـ Snort كما قمنا في الدرس السابق وذلك بكتابة الأمر التالي :

sudo snort -A console -q -c /etc/snort/snort.conf -i eth0

بعد تشغيل الـ Snort سنقوم بفتح شاشة سطر أوامر جديدة (terminal) ونقوم بتنفيذ امر الـ nmap السابق. سنلاحظ بأنه لم يتم التقاط وإظهار أي شيء من قبل أداة الـ Snort. ولمعرفة السبب في هذا الأمر يجب أن نعرف كيف يقوم الـ nmap بإرسال أوامر الفحص, ولمعرفة ذلك سنقوم بكتابة الأمر التالي :

nmap -sP 192.168.95.0/24 –-packet-trace

الخيار –packet-trace الخاص بأداة الـ nmap يعمل على تتبع وإظهار الأمور التي يقوم الـ nmap بالقيام بها أثناء عملية الفحص وهذا ما تظهره الصورة التالية :

 

 

 

 

 

 

 

 

 

 

Untitled-3

 

ما تظهره الصورة السابقة وبعد اضافة الخيار –packet-trace بأن الـ nmap أرسل الطلبات خلال عملية الفحص على شكل طلبات arp وليس ping وهذا ما يفسرعدم ظهور أي نتائج في الـ snort. حيث تقوم أداة الـ nmap قبل أي عملية فحص بمعرفة اذا كان عنوان الإنترنت للجهاز أو الشبكة هو عنوان في الشبكة الداخلية أو عنوان فش الشبكة الخارجية وبناء عليه تعمل على تحديد طبيعة الفحص.

 

اذاً كيف يمكننا اجبار الـ nmap على تنفيذ الفحص بواسطة ping وليس arp؟؟

الجواب بسيط جداً وذلك بإستخدام الخيار –-disable-arp-ping في أمر الفحص بأداة nmap ليصبح الأمر كالآتي :

 

nmap -sP 192.168.x.0/24 –-disable-arp-ping

 

السؤال الذي سنطرحه على أنفسنا الآن : هل الـ ping الخاص بأداة الـ nmap هو نفس الأمر ping أم هنالك أي إختلافات بينهما؟

لمعرفة هذا الأمر سنقوم بتشغيل أداة Wireshark على نفس الجهاز الذي توجد عليه أداة الـ Snort مع الإنتباه لضرورة تشغيلها بالمستخدم root. بعد ذلك قم بإختيار كرت الشبكة الذي تريد تشغيل الـ wireshark عليه و ابدأ عملية التشغيل, وفي حالتي كما ذكرنا في الدرس السابق هو ens33 وذلك كما في الصورة التالية :

 

Untitled-4

 

الآن نذهب لنظام تشغيل kali ونقوم بتنفيذ الأمر الخاص بالفحص من أداة nmap والذي قمنا بكتابته سابقاً, بعدها سنقوم بالذهاب الى أي جهاز آخر داخل الشبكة وسنقوم بتنفيذ الأمر Ping منه على أي جهاز داخل الشبكة.

 

نعود للجهاز الرئيسي ونقوم بإيقاف عمل الـ wireshark, سنجد بأن البرنامج التقط العديد من الحزم والتي يجب علينا فلترتها لإيجاد الحزم المطلوبة وذلك بواسطة كتابة الفلتر التالي ip.dst==192.168.x.x && icmp كما في الصورة التالية :

 

Untitled-5

 

الفلتر الذي قمنا كتابته والظاهر في الصورة السابقة يخبر الـ wireshark لإظهار الحزم التي يتم ارسالها لعنوان الإنترنت 192.168.66.140 ونوعها ICMP.

سنجد بأن هنالك اختلاف بحجم الحزم التي يتم ارسالها من خلال الـ nmap والأمر ping حيث أن حجمها في الأمر ping هو 74 أما بالـ Nmap فهو 60 وسنجد أيضاً بأن الـ nmap لا يقوم بإرسال اي بيانات مع الحزم الخاصة به. لذا سنقوم بكتابة قاعدة جديدة لأداة الـ snort مع الإبقاء على القاعدة الأولى أاسفل هذه القاعدة. حيث سيكون شكل القاعدة كالآتي :

 

alert icmp any any -> $HOME_NET any (msg:”Possible Nmap ping sweep”; dsize:0; sid:1000005; rev:1;)

حيث توضح القاعد السابقة بأننا جعلنا حجم البيانات مساوٍ لصفر من خلال الخيار dsize:0. ليصبح الملف الخاص بقواعد الـ Snort كالآتي :

 

 

Untitled-6

 

 

الآن نقوم بإيقاف كل من الـ snort والـ nmap ونعيد تشغيلهما لنلاحظ النتائج التالية والتي قامت أداة snort بإلتقاطها وإظهارها :

 

Untitled-7

 

وهذا يبين بأن القاعدة التي قمنا بكتابتها تم تنفيذها من قبل الـ snort.

 

ثانياً : كشف فحص المنافذ في الشبكة.

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

الجهازين يمتلكان عناوني الإنترنت التاليين 192.168.66.133 و 192.168.66.141. لذا سيكون الأمر الخاص بالفحص على nmap كالآتي :

 

Untitled-8

 

سيقوم الأمر السابق بفحص أشهر 1000 منفذ مستخدم وليس بفحص جميع المنافذ المحتملة والذي يظهر بأن نظام تشغيل kali لا يوجد عليه أي منفذ مفتوح.

لفتح المنفذ 80 الخاص ببروتوكول http على نظام تشغيل kali سنقوم بكتابة الأمر التالي في سطر الأوامر :

apache2ctl start

نعيد عملية الفحص لنجد بأن المنفذ قد أصبح مفتوحاً واذا اردنا اغلاقه من جديد نقوم بكتابة الأمر التالي :

apache2ctl stop

دعونا نقوم الآن بكتابة قاعدة على أداة Snort تفحص وتنبه عمليات الفحص على منفذ 23 الخاص ببروتوكول الـ telnet والذي نعلم سابقاً بأنه مغلق على الأجهزة المتواجدة في الشبكة والذي تقوم أداة الـ nmapكما شاهدنا سابقاً بفحصه كونه أحد أشهر 1000 منفذ مستخدم في الشبكات. حيث ستكون القاعدة ما يلي :

 

alert tcp any any -> $HOME_NET 23 (msg:”TCP Port Scanning”; sid:1000006; rev:1😉

 

بعدها نقوم بتشغيل أداة الـ snort من جديد ونقوم بإجراء عملية الفحص بإستخدام الـ nmap كما ذكرناها سابقاً لنجد بأن الـ snort كتبت لنا على الشاشة عبارة “TCP Port Scanning” وهي العبارة المكتوبة في القاعدة السابقة.

 

Untitled-9

 

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

alert tcp any any -> $HOME_NET any (msg:”TCP Port Scanning”; detection_filter:track by_src, count 30, seconds 60; sid:1000006; rev:2😉

تخيل الآن بأنك ستقوم بعملية فحص لشبكة كبيرة, هذا سيؤدي الى ظهور عدد ضخم جداً من التحذيرات على اداة Snort. لذا يجب علينا التقليل من هذه التحذيرات وذلك بوساطة ايقاف الأداة عبر CTRL+C وبعده نقوم بفتح الملف threshold.conf عبر تنفيذ الأمر التالي :

sudo gedit /etc/snort/threshold.conf

نقوم بالذهاب الآن الى نهاية الملف ونقوم بكتابة السطر التالي :

 

event_filter gen_id 1, sig_id 1000006, type limit, track by_src, count 1, seconds 60

Untitled-10

 

سنوقم الآن بحفظ التعديلات على الملف ونقوم بإعادة تشغيل الـ Snort وبعدها نقوم بعملية الفحص لنجد بأن عدد التحذيرات قل كثيراً.

 

 

 

Untitled-11

 

ثالثاً : كشف الفحص المتخفي (Stealthy Scanning).

اول طرق التخفي في عملية الفحص هو تحديد وقت محدد لعملية الفحص, فنحن في القاعدة السابقة قمنا بتحديد اننا نريد من اداة الـ snort أن تقوم بتحذيرنا ذا تم عمل العديد (الكثير) من عمليات الإستطلاع في فترة زمنية وجيزة. حيث يوجد في أداة الـ nmap الخيار -T والذي يمكن من خلاله تحديد فترة تنفيذ الفحص.

سنقوم الآن بكتابة الأمر التالي :

nmap -sT 192.168.x.x –p 80,135 –T sneaky

 

Untitled-12

 

نلاحظ بأن الفحص قد احتاج الى دقيقة كاملة تقريباً, الآن سنقوم بتجربة الأمر التالي :

nmap -sT 192.168.x.x –p 80,135 –T insane

سنلاحظ بأن الأمر قد أخذ أجزاء من الثانية فقط ليتم تنفيذه.

يمكننا أيضاً التحكم بمدة تنفيذ الفحص وذلك كمايلي :

nmap –sT 192.168.x.x –p 80,135 –scan-delay 5s

حيث تأخذ عملية تنفيذ الفحص لكل منفذ فترة 5 ثواني لتتم, واذا وضعنا 1s عوضاً عن 5s سيصبح يأخذ ثانية لكل منفذ. واذا أردنا التسريع من عملية الفحص سنقوم بتقليل المدة لتصبح مثلاً 5ms أو ملي ثانية لكل منفذ.

ثاني طرق التخفي في عملية الفحص هو عن طريق عمل فحص متسلسل أو SYN Scan ولتفهم هذا الفحص جيداً يجب أن تكون على علم بمبدأ عمل TCP/IP. حيث يعتمد عمل هذا الفحص عن طريق ارسال syn ومن ثم لا يتم ارسال الـ ack فإذا لم يستجب هذا المنفذ يسجل بأنه filtered.

للقيام بهذا الفحص بإستخدام أدا nmap سنقوم بكتابة الأمر التالي :

nmap -sS 192.168.66.133

ثاني طرق التخفي في عملية الفحص هو عن طريق عمل فحص متسلسل أو SYN Scan ولتفهم هذا الفحص جيداً يجب أن تكون على علم بمبدأ عمل TCP/IP. حيث يعتمد عمل هذا الفحص عن طريق ارسال syn ومن ثم لا يتم ارسال الـ ack فإذا لم يستجب هذا المنفذ يسجل بأنه filtered.

للقيام بهذا الفحص بإستخدام أداة nmap سنقوم بكتابة الأمر التالي :

nmap -sS 192.168.66.133

هنالك أنواع أخرى من الفحص وهي :

  • FIN Scan
  • Xmas Tree Scan
  • Null Scan

يمكن تنفيذ انواع الفحص السابقة بأداة الـ nmap بواسطة الأوامر التالية تباعاً :

nmap -sF 192.168.66.133

nmap -sX 192.168.66.133

nmap -sN 192.168.66.133

ولكشفها سنقوم بكتابة القاعدة التالية على أداة snort :

alert tcp any any -> $HOME_NET any (msg:”Nmap XMAS Tree Scan”; flags:FPU; sid:1000007; rev:1😉

 

 

Untitled-13

 

 

ثالث طرق التخفي في عملية الفحص هو عن ريق التزييف أو التزوير, حيث يقوم مبدأ هذه الطريقة بتزييف عنوان الإنترنت الخاص بالمصدر مما يجله اصعب هذه الطرق اكتشافهاً أو تحليلاً. ولكي نقوم بالكشف عنه نقوم بكتابة القعدة التالية :

 

alert tcp !192.168.x.0/24 any -> $HOME_NET 80 (msg:”Suspicious IP address”; sid:1000008; rev:1;)

 

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

 

عن الكاتب : عمر مرقه ابلغ من العمر 17 سنة مهتم بمجال امن المعلومات من الأردن.

المقال بتصرف من موقع infosecinstitute.

 

الوسوم

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

18 − 15 =

إغلاق