Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
sniffles — سنيفلز: مولد التقاط الحزم لتقييم أنظمة كشف التسلل والتعبيرات العادية | Kitploit
أدوات/GitHubGitHub/petabi/sniffles
التقاط وتحليل الحزمالتهرب من IDS/IPSالاختبار العشوائيأمن الشبكاتاختبار الاختراقكشف التسلل
GitHubpetabi/sniffles

sniffles

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

عرض المستودع
652556منذ 7 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Sniffles--مولد التقاط الحزم لاختبار أنظمة كشف التسلل والتعبيرات النمطية

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

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

أخيرًا، يمكن لـ Sniffles أيضًا فعل الكثير لتوليد حركة مرور شبكة عشوائية. افتراضيًا، حركة المرور العشوائية هي TCP أو UDP أو ICMP وأحادية الاتجاه. ومع ذلك، يمكنها أيضًا توليد حركة مرور TCP مع ACKs ومصافحات وإنهاءات لكل دفق. ستقوم بإنشاء أرقام تسلسلية ومجاميع اختبار صحيحة. علاوة على ذلك، يمكن تعيين عناوين MAC وفقًا للتوزيعات المطلوبة، ويمكن تعريف عناوين شبكة IP بواسطة مساحات العناوين المحلية والخارجية. بالإضافة إلى ذلك، من الممكن محاكاة عمليات المسح ضمن التقاط حركة المرور.

التثبيت

يتطلب: Python 3.3+ ووحدة SortedContainers

تتكون Sniffles من الملفات التالية:

  • rulereader.py: محلل القواعد.
  • ruletrafficgenerator.py: أداة توليد تدفقات المحتوى.
  • sniffles.py: البرنامج الرئيسي الذي يدير العملية.
  • sniffles_config.py: يعالج إدخال سطر الأوامر وخيارات Sniffles.
  • traffic_writer.py: يكتب حزمة إلى ملف متوافق مع pcap. لا يتطلب libpcap.
  • vendor_mac_list.py: يحتوي على معرفات MAC الفريدة للمنظمات المستخدمة لتوليد عناوين MAC شبه واقعية بدلاً من مجرد تجميع الثمانيات بشكل عشوائي.
  • examples/vendor_mac_definition.txt: ملف اختياري لتحديد توزيع عناوين MAC جزئية أو كاملة.
  • ملفات pcre (pcre_chartables.c pcre_compile.c pcre_globals.c pcre_internal.h pcre_newline.c pcre_tables.c pcre.h pcrecomp.c pcreconf.py ucp.h).
  • nfa.py: لاجتياز NFA.
  • regex_generator.py: الكود الخاص بتوليد تعبيرات نمطية عشوائية.
  • rand_rule_gen.py و feature.py و rule_formats.py: وحدات لتوليد مجموعات قواعد عشوائية.

للتثبيت:

  1. انتقل إلى الدليل الأعلى.
  2. اكتب python3.x setup.py install.
  3. سيقوم هذا بتثبيت التطبيق على نظامك.

ملاحظات التثبيت:

  1. لم يتم اختبار هذا مع Windows ولا مع Linux. تم اختباره على FreeBSD و Mac OS X.
  2. استخدم python3.x setup.py build للبناء محليًا، ثم انتقل إلى دليل المكتبة، وابحث عن lib واستخدم python3.4 -c "from sniffles import sniffles; sniffles.main()" للتشغيل محليًا.

التنسيقات المدعومة:

  • Snort: قواعد التنبيه في Snort (يجب أن تبدأ القاعدة بالتوجيه Alert). يتم التعرف على وسوم المحتوى وتحليلها بشكل صحيح. يتم تحليل وسوم PCRE بالمثل بشكل صحيح. تتم معالجة وسوم HTTP بشكل متسلسل لذا قد لا تنشئ الحزمة المطلوبة. يمكن تعديل المحتوى (أو محتوى PCRE أو HTTP) بواسطة distance و within و offset. يمكن للقاعدة استخدام خيار التحكم في التدفق، على الرغم من أن اتجاه البيانات فقط مشتق من هذا. يتم تجاهل خيار nocase ويتم استخدام الحالة المقدمة. يتم تجاهل جميع الخيارات الأخرى. يتم تحليل قيم الرأس وسيتم إنشاء حزمة تلبي تلك القيم. إذا تم استخدام مساحات عناوين الشبكة المحلية والخارجية، فسيتم استخدام المساحة الصحيحة للمتغيرات $HOME_NET و $EXTERNAL_NET على التوالي. مثال:

    alert tcp $EXTERNAL_NET any -> $HOME_NET 8080 (msg:"SERVER-APACHE Apache Tomcat UNIX platform directory traversal"; flow:to_server; content:"/..|5C|/"; content:"/..|5C|/"; http_raw_uri;

  • التعبيرات النمطية: تعبيرات نمطية خام بواقع تعبير واحد في كل سطر مكتوبة إما كـ abc أو /abc/i. يدعم حاليًا الخيارات i و s و m. يتم تجاهل الخيارات الأخرى. مثال:

    /ab*c(d|e)f/i

  • تنسيق قاعدة Sniffles الموضح أدناه.

خيارات سطر الأوامر:

  • -a TCP Ack: إرسال إقرار TCP لكل حزمة بيانات مرسلة. إيقاف افتراضيًا. حزم الإقرار لا تحتوي على بيانات افتراضيًا.

  • -b بيانات ثنائية الاتجاه: سيتم إنشاء البيانات في كلا اتجاهي دفق TCP. سيتم تشغيل ACKs. هذه الميزة متوقفة افتراضيًا.

  • -B [بروتوكول حركة مرور الخلفية:النسبة المئوية]: قم بتعيين بروتوكول واحد على الأقل بقيمة بين 1 و 100 لإنتاج حركة مرور خلفية. تمثل هذه القيمة النسبة المئوية من إجمالي كمية حركة المرور. البروتوكولات المتاحة: FTP, HTTP, IMAP, POP و SMTP. على سبيل المثال: "http:20,ftp:30,smtp:10". أدخل رقمًا واحدًا فقط كقيمة الوسيطة لتوليد حركة مرور عشوائية. على سبيل المثال: "80".

  • -c عدد: عدد التدفقات المراد إنشاؤها. سيحتوي كل تدفق على حد أدنى من حزمة واحدة. ستكون الحزمة بين نقطتي نهاية كما هو محدد بالقاعدة أو بشكل عشوائي. سيزيد tcp_handshake و tcp_teardown و packets_per_stream من عدد الحزم لكل تدفق. حاليًا، تتدفق البيانات في اتجاه واحد فقط. إذا تم استخدام الخيار -b، يجب أن تتدفق البيانات في كلا الاتجاهين. أيضًا، يمكن لقواعد Sniffles تخصيص تدفق البيانات في كلا الاتجاهين.

  • -C التدفقات المتزامنة: عدد التدفقات التي ستكون مفتوحة في وقت واحد. بأفضل جهد بمعنى أنه إذا كان هناك تدفقات أقل من عدد التدفقات المتزامنة المحددة، فسيتم استخدام جميع التدفقات الحالية. على سبيل المثال، إذا كان هناك 1000 تدفق فقط متبقي، ولكن عدد التدفقات المتزامنة قد تم ضبطه على 10000، فسيتم كتابة 1000 تدفق فقط في ذلك الوقت. القيمة الافتراضية هي 1000. إذا تم استخدامه مع المدة، فسيتم الحفاظ على التدفقات -C طوال المدة والتي ستتجاهل في النهاية أي إدخال من -c. لاحظ أن الغرض من ذلك هو إنشاء pcap متنوع حيث تكون الحزم من نفس التدفقات موزعة بدلاً من أن تكون بجانب بعضها البعض ولخلق وهم وجود العديد من التدفقات المتزامنة. في اختباراتنا، تمكنا من إدارة ما يصل إلى 2-3 ملايين تدفق متزامن قبل أن تصبح الذاكرة مشكلة. أيضًا، يجب أن نذكر أن زمن الانتقال المختلف بين التدفقات يمكن أن يتسبب في إنهاء بعض التدفقات في وقت أبكر من غيرها.

  • -د دليل القواعد: المسار إلى الدليل الذي يحتوي على ملفات القواعد. سيقرأ كل قاعدة ممكّنة في جميع ملفات القواعد في الدليل. يفترض أن جميع ملفات القواعد تنتهي بالملحق .rules. استخدم هذا الخيار أو -f، ولكن ليس كلاهما. يتم استخدام الرمز # لتعطيل (أي التعليق على) قاعدة.

تنزيل الأداة