
Packet-Sniffer v4.0.0
مُلتقط حزم شبكة يعتمد على المقابس الخام، يلتقط ويفكك حزم TCP/IP من واجهات الشبكة لأغراض التحليل الأمني والاستخدام التعليمي.
RootWire
أداة مراقبة حركة مرور الشبكة لأنظمة GNU/Linux — كانت تُعرف سابقًا باسم Packet-Sniffer. يتم التقاط الإطارات من واجهة شبكة عبر مقبس خام (raw socket)، وفك ترميزها طبقة بطبقة باستخدام مكتبة NETProtocols، ثم عرضها مباشرة، أو كتابتها إلى ملف pcap، أو بثّها بصيغة JSON:
[>] Frame #4 at 15:42:07 (wlan0, 74 bytes)
[+] Ethernet 3c:7c:3f:1a:be:22 -> 9c:1e:95:aa:01:5f
EtherType: IPv4
[+] IPv4 192.168.1.96 -> 142.250.79.78
TTL: 64 | Flags: Don't fragment (DF) | Total Length: 60 | ID: 39754
Protocol: TCP | Checksum: 0x2b51
[+] TCP 51888 -> 443
Flags: 0x002 (SYN) | Seq: 3598801521 | Ack: 0
Window: 64240 | Checksum: 0x2008 | Options: 20 bytes
يغطي المفكك (decoder) بروتوكولات Ethernet وARP وIPv4 (بما في ذلك الخيارات والشظايا) وIPv6 بما في ذلك الترويسات الموسّعة (extension headers) (حيث يعرض تقرير MLD سلسلة Hop-by-Hop كاملة)، وICMPv4/v6، وTCP (مع إزاحات حمولة تراعي الخيارات)، و UDP. يتم تشخيص الإطارات التالفة أو المبتورة بدلًا من تعطيل الالتقاط، وتنتهي البروتوكولات غير المعروفة السلسلة بأمان، ويحدّ حد أقصى من 16 طبقة من تضخيم أكوام الترويسات الموسّعة المصنّعة — ينجو الالتقاط مهما سلّمت الشبكة.
التثبيت
pipx install rootwire # أو: uv tool install rootwire
أو التشغيل من نسخة مستنسخة باستخدام uv:
git clone https://github.com/EONRaider/RootWire.git
cd RootWire
uv sync
الاستخدام
rootwire [-h] [-i INTERFACE] [-r FILE] [-w FILE] [--json] [-d] [--version]
options:
-i, --interface واجهة التقاط الإطارات منها (الافتراضي: جميع الواجهات)
-r, --read FILE إعادة تشغيل الإطارات من ملف pcap كلاسيكي بدلًا من الالتقاط
المباشر (لا يتطلب صلاحيات)
-w, --write FILE كتابة كل إطار ملتقط أيضًا إلى ملف pcap كلاسيكي
--json كائن NDJSON واحد لكل إطار على stdout (تبقى اللافتة
والإحصائيات على stderr): يمكن تمريرها مباشرة إلى jq
-d, --data عرض الحمولة الخام لكل إطار أيضًا (يُتجاهل مع --json)
تُبلَّغ إحصائيات الالتقاط — الإطارات، البايتات، الإطارات/ثانية، عدد التالف/المبتور، إجماليات كل بروتوكول — على stderr عند انتهاء الالتقاط. بعض التركيبات المفضلة:
sudo rootwire -i eth0 -w session.pcap # التقاط الأدلة والاحتفاظ بها
rootwire -r session.pcap # فحصها لاحقًا، دون صلاحيات الجذر
rootwire -r session.pcap --json | jq . # تحليل قابل للقراءة آليًا
يتطلب الالتقاط المباشر مقبسًا خامًا، وهو ما يعني على Linux صلاحيات الجذر
(sudo rootwire -i eth0) أو منح المفسّر (interpreter) صلاحية
CAP_NET_RAW. إعادة تشغيل الملفات باستخدام -r لا تتطلب صلاحيات أبدًا.
من نسخة مستنسخة، شغّلها كالتالي: sudo .venv/bin/python -m rootwire.
كيف يعمل
يُنتج capture.py إطارات خام من مقبس AF_PACKET (أو يعيد
pcap.py تشغيلها من ملف — المصدران قابلان للتبادل)؛ ويمرّ decoder.py
عبر سلسلة بروتوكولات كل إطار ليحوّلها إلى كائن DecodedFrame غير قابل
للتغيير؛ وتستهلك المخرجات — عارض الشاشة، ودفق NDJSON، وكاتب pcap،
ومجمّع الإحصائيات — كل إطار عبر واجهة Output واحدة صغيرة. الجولة الكاملة،
بما في ذلك سبب بقاء الذاكرة ثابتة أثناء الالتقاطات الطويلة وكيفية إضافة
مخرج، موجودة في ARCHITECTURE.md.
كل شيء باستثناء المقبس الخام يعمل على أي نظام تشغيل، لذا فإن مجموعة الاختبارات — التي تتضمن مجموعة من 65 إطارًا لحركة مرور حقيقية ملتقطة تُعاد عبر خط الأنابيب بأكمله — لا تحتاج إلى صلاحيات الجذر ولا إلى Linux:
uv run pytest
خارطة الطريق
- تصفية BPF (مرشحات التقاط على مستوى النواة)
- الطوابع الزمنية للنواة (
SO_TIMESTAMPNS) واستخدام الخدمة النظيف مع SIGTERM - عرض التحقق من المجاميع الاختبارية (checksum) (المكتبة تحسبها بالفعل)
إخلاء المسؤولية القانوني
استخدام الكود الموجود في هذا المستودع، سواء جزئيًا أو كليًا، لاستهداف أطراف دون موافقة مسبقة متبادلة هو أمر غير قانوني. تقع على عاتق المستخدم النهائي مسؤولية الامتثال لجميع القوانين المحلية والولائية والاتحادية المعمول بها.
لا يتحمل المطورون أي مسؤولية ولا يكونون مسؤولين عن إساءة الاستخدام أو الأضرار الناجمة عن أي كود موجود في هذا المستودع في أي حال من الأحوال، سواء عن طريق الصدفة أو غير ذلك، إذا تم استخدامه من قبل وكيل تهديد أو جهة غير مصرح بها كوسيلة للمساس بأمن أو خصوصية أو سرية أو سلامة و/أو توافر الأنظمة ومواردها المرتبطة بها. في هذا السياق، يُفهم مصطلح "المساس" (compromise) على أنه استغلال الثغرات الأمنية المعروفة أو غير المعروفة الموجودة في تلك الأنظمة، بما في ذلك على سبيل المثال لا الحصر، تنفيذ ضوابط أمنية، سواء كانت بشرية أو إلكترونية.
لا يقرّ المطورون استخدام هذا الكود إلا في الظروف المرتبطة مباشرة بـ البيئات التعليمية أو مهام اختبار الاختراق المصرح بها التي يكون غرضها المعلن هو إيجاد وتخفيف الثغرات الأمنية في الأنظمة، والحد من تعرضها للمساس والاستغلال من قبل الوكلاء الخبيثين كما هو محدد في نماذج التهديدات الخاصة بهم.