Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Spip-Go — مستشعر شبكة Spip مكتوب بلغة Go | Kitploit
أدوات/GitHubGitHub/honeylabshq/spip-go
أدوات دفاعيةإدارة مؤشرات الاختراق (IOC)التقاط وتحليل الحزمالاستطلاعجمع المعلوماتأمن الشبكاتاستخبارات التهديداتكشف التسللالاستجابة للحوادثتحليل السجلات
GitHubhoneylabshq/spip-go

Spip-Go

71منذ 16 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

مستشعر شبكة Spip مكتوب بلغة Go

عرض المستودع

سباي - مستشعر هونيبوت الشبكة

سباي هو مستشعر هونيبوت شبكة خفيف الوزن ومنخفض التفاعل. يستمع إلى حركة مرور TCP الواردة العشوائية (نصية وTLS)، ويلتقط ما يرسله الماسحون والروبوتات، ويسجل كل اتصال بصيغة JSON منظمة (مشكلة وفق ECS) لسهولة الاستيعاب في نظام SIEM أو بحيرة البيانات لديك.

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

ezgif-476608ae440271e4

بداية سريعة

المتطلبات الأساسية

  • Go 1.24.0 أو أحدث
  • لينكس مع iptables
  • صلاحية الجذر (مطلوبة لتطبيق قواعد iptables المثال)
  1. بناء الوكيل
root@kitploit:~
git clone https://github.com/honeylabshq/Spip-Go.git
cd Spip-Go
go build -o spip-agent ./cmd/spip-agent
  1. (اختياري) استخدام مساعد الإعداد التفاعلي
root@kitploit:~
sudo ./scripts/initial_setup.sh

يكتب هذا المساعد ملف config.toml (يطلب اسماً قصيراً name يُستخدم في السجلات)، ويمكنه إنشاء مفاتيح TLS موقعة ذاتياً، ويقوم اختيارياً بتكوين لوم (URL, sensor_id, token, إلخ)، ويطبق اختيارياً إعادة توجيه iptables PREROUTING المستخدمة في الأمثلة أدناه.

  1. إنشاء أو تعديل config.toml ملف config.toml الأدنى:
root@kitploit:~
name = "spip-agent"
ip = "127.0.0.1"
port = 8080

مفاتيح التهيئة الاختيارية:

  • cert_path / key_path — تمكين TLS في حال تعيين كليهما؛ قد يكونان نسبيين بالنسبة لملف التهيئة (يكتب سكريبت الإعداد مسارات نسبية بحيث يعمل التهيئة من أي دليل عمل)
  • إخراج السجل: log_file (محلي) و/أو [loom] (عن بُعد). راجع إخراج السجل أدناه.
  • read_timeout_seconds / write_timeout_seconds — مهلات الاتصال
  • rate_limit_per_second / rate_limit_burst — تحديد معدل الاتصال
  • community_id_seed — بذرة اختيارية بطول 16 بت لتجزئة Community ID v1 للتدفق (احذفها أو اضبطها على 0 للافتراضي)

إذا تم حذف هذه الحقول أو ضبطها على 0، يطبق سباي القيم الافتراضية التالية:

  • read_timeout_seconds: 30
  • write_timeout_seconds: 10
  • rate_limit_per_second: 20
  • rate_limit_burst: 50000
  1. إعادة توجيه TCP الوارد إلى الوكيل (مثال، باستثناء SSH)
root@kitploit:~
sudo iptables -t nat -F
sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j RETURN
sudo iptables -t nat -A PREROUTING -p tcp -j REDIRECT --to-port 8080
  1. تشغيل الوكيل
root@kitploit:~
./spip-agent -config config.toml

إخراج السجل

يكتب سباي سجلات ECS إلى وجهة محلية واحدة ويمكنه اختيارياً إرسال نفس السجلات إلى خادم لوم:

إذن: المحلي افتراضياً هو الإخراج القياسي؛ استبدله بـ log_file لملف. اختيارياً أضف لوم في الأعلى. كلاهما يستخدم نفس تنسيق ECS.

  • محلي فقط: اترك log_file معلقاً/فارغاً (الإخراج القياسي) أو اضبطه على مسار.
  • محلي + لوم: اضبط المحلي كما هو مذكور وأضف قسم [loom] مع url و sensor_id و token (راجع لوم أدناه).

تنسيق السجل

يصدر سباي كل اتصال ككائن JSON واحد. تم تنسيق الإخراج ليكون متوافقاً مع ECS باستخدام الحقول التي يمكن لسباي توفيرها فقط (بدون إثراء ASN/جغرافي). تشمل الحقول النموذجية المنتجة:

  • @timestamp — طابع زمني RFC3339 للحدث
  • event.id — معرف جلسة لكل اتصال
  • observer.hostname / host.name — اسم name للوكيل من التهيئة
  • source.ip, source.port و destination.ip, destination.port
  • network.transport — مثال tcp
  • http.request.body / url.path — عندما يشبه الحمولة HTTP بوضوح
  • user_agent.original — عندما يكون متاحاً

مثال لسجل (مشكل وفق ECS) منتج بواسطة سباي:

root@kitploit:~
{
  "@timestamp": "2025-12-01T19:35:18.123Z",
  "event": {
    "id": "bd30cdc1-95b0-49aa-b8fe-e77230b6a04f",
    "summary": "BitTorrent protocol",
    "original_payload_hex": "426974546f7272656e742070726f746f636f6c",
    "ingested_by": "spip"
  },
  "observer": {"hostname": "spip-agent"},
  "host": {"name": "spip-agent"},
  "source": {"ip": "146.70.1.1", "port": 35882},
  "destination": {"ip": "146.190.1.1", "port": 6881},
  "network": {"transport": "tcp"}
}

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

البصمات

يمكن لسباي إضافة حقول بصمات سلبية إلى كل سجل اتصال (متوافقة مع ECS، دون تغيير في التقاط الحمولة):

  • Community ID (network.community_id) — تجزئة تدفق v1 للخماسي (عنوان IP المصدر والوجهة والمنفذ والبروتوكول). عند إعادة توجيه حركة المرور عبر iptables، يستخدم سباي الوجهة الأصلية (قبل REDIRECT) بحيث تتطابق التجزئة مع ما ستحسبه أدوات أخرى (مثل Zeek, Suricata) لنفس التدفق.
  • TLS — من ClientHello: tls.client.server_name (SNI), tls.client.supported_protocols (قائمة ALPN), tls.client.hash.ja4 (بصمة JA4).
  • HTTP — من أول طلب: http.request.hash.ja4h (JA4H).
  • SSH — عندما تبدأ الحمولة بـ SSH-2.0- وتحتوي على KEXINIT: ssh.client.hash.hassh (Hassh).

كل هذه إضافية؛ السلوك الحالي (السجل المحلي، لوم، الست عشري للحمولة، تحليل HTTP) لم يتغير.

المراجع (للتحقق والإسناد):
Community ID: مواصفات Corelight Community ID.
JA4 / JA4H: FoxIO JA4.
Hassh: Salesforce HASSH.
بصمات TLS باستخدام github.com/psanford/tlsfingerprint (MIT).

لوم (إرسال السجلات اختياري)

جزء من إخراج السجل: عندما يكون [loom] به enabled = true، يتم أيضاً تجميع نفس سجلات ECS وإرسالها عبر POST إلى رابط إدخال لوم الخاص بك. المطلوب عند التمكين: url, sensor_id, token. اختياري: batch_size (الافتراضي 50)، flush_interval (مثال "10s")، insecure_skip_verify (لشهادات لوم الموقعة ذاتياً). يعمل المُصدر بشكل غير متزامن ولا يحجب حلقة الالتقاط؛ يتم تسجيل POSTs الفاشلة إلى stderr ويتم إسقاط الدفعة (فشل مفتوح).

هيكل المشروع

root@kitploit:~
.
├── cmd/                 # نقطة دخول التطبيق الرئيسية
├── internal/            # التهيئة، التسجيل، الشبكة، TLS، البصمات، المُصدرين (مثال لوم)
├── pkg/                 # أدوات مآخذ لينكس المساعدة (SO_ORIGINAL_DST عبر syscall)
├── test/                # أدوات اختبار شاملة
└── scripts/             # سكريبتات مساعدة (بما في ذلك `initial_setup.sh`)

الاختبار

قم بتشغيل اختبارات الوحدة باستخدام:

root@kitploit:~
go test ./...

اختبارات شاملة تتطلب صلاحيات للتعامل مع iptables. قم بتشغيلها عبر السكريبت (من جذر المستودع):

root@kitploit:~
sudo -E ./scripts/run_e2e_tests.sh

يقوم السكريبت بإعداد البيئة و iptables. بدلاً من ذلك استخدم مساعد الحاوية: ./scripts/run_e2e_in_container.sh. تتحقق الاختبارات الشاملة من السلوك الأساسي (التقاط الحمولة، المصدر/الوجهة، كشف TLS، تجميع لوم، البصمات).

ملاحظات حول تحليل HTTP والنشر

يقوم سباي بكشف طلبات HTTP بأفضل جهد من الحمولة الملتقطة. عندما تشبه الحمولة طلب HTTP بوضوح (سطر طلب صالح مع رؤوس أساسية أو ALPN)، يصدر الوكيل حقول http.* و url.path و user_agent.original. عندما لا يكون الأمر كذلك، يتراجع سباي إلى تخزين الحمولة في event.summary ويحافظ دائماً على الست عشري للحمولة الخام في event.original_payload_hex.

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

مساعد الإعداد الأولي

قم بتشغيل المساعد التفاعلي من جذر المستودع (يتطلب صلاحية الجذر عند تطبيق قواعد iptables):

root@kitploit:~
sudo ./scripts/initial_setup.sh

يطلب السكريبت: اسماً قصيراً name (يكتب في config.toml، يُستخدم في السجلات بـ observer.hostname / host.name)، عنوان IP ومنفذ الاستماع، إنشاء شهادة TLS موقعة ذاتياً اختيارياً (تُكتب المسارات نسبياً بالنسبة للتهيئة بحيث تعمل من أي دليل)، تكوين لوم اختياري (URL, sensor_id, token, batch_size, flush_interval, TLS verify)، مسار ملف السجل، وإعادة توجيه iptables PREROUTING اختيارية.

تنزيل الأداة
الوجهة
التهيئة
السلوك
محليlog_fileالافتراضي: احذف أو اترك فارغاً → الإخراج القياسي. اضبط على مسار → ذلك الملف. واحد منهما، دائماً قيد التشغيل.
لوم[loom] مع enabled = trueاختياري. يتم تجميع نفس الأحداث وإرسالها عبر POST إلى رابط إدخال لوم الخاص بك بالإضافة إلى المحلي.
  • event.summary — الحمولة الخام لفحوصات غير HTTP
  • event.original_payload_hex — الحمولة الخام بصيغة ست عشرية (محفوظة دائماً)
  • البصمات (مدمجة) تضيف network.community_id, tls.client.*, http.request.hash.ja4h, ssh.client.hash.hassh عند الاقتضاء.