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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
punchline — مراسل مشفر نظير لنظير مكتوب بلغة Rust مع Noise IK و UDP NAT hole punching | Kitploit
أدوات/GitHubGitHub/michal-pielka/punchline
أدوات التشفير/فك التشفيرأمن الشبكاتالخصوصيةالأدوات والمكوناتالمصادقة
GitHubmichal-pielka/punchline

punchline

مراسل مشفر نظير لنظير مكتوب بلغة Rust مع Noise IK و UDP NAT hole punching

عرض المستودع
19256منذ 6 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

punchline

محادثة ند-لند مشفرة من طرف إلى طرف عبر UDP. لا حسابات، ولا خادم مركزي يقوم بتوجيه/تخزين الرسائل، ولا وسيط. فقط نظيران، اتصال مباشر، وتشفير بروتوكول Noise.

https://github.com/user-attachments/assets/939e96d3-45e3-4484-9a27-28c3a0457b05

جدول المحتويات

  • ما الذي يفعله
  • بداية سريعة
  • كيف يعمل
  • مرجع واجهة الأوامر
  • الاستخدام
    • الإعدادات
    • إدارة النظائر
    • فحص الحالة
    • خيارات الخادم
    • تنسيق الألوان
    • إكمال أوامر shell
  • التشفير
    • مصافحة IK
    • تحديد البادئ
    • تخزين المفاتيح
  • بروتوكول الشبكة
    • بروتوكول اختراق NAT
    • بروتوكول النقل
    • بروتوكول الإشارة
    • بروتوكول STUN
  • هيكل المشروع
  • التثبيت
    • من crates.io
    • بناء من المصدر
  • تشغيل الاختبارات
  • المكدس التقني
  • الترخيص

ما الذي يفعله

شخصان يقومان بتشغيل punchline connect <peer> على أجهزتهما. يقوم punchline باختراق NAT الخاص بهما، وإجراء مصافحة مشفرة، وإسقاطهما في محادثة خاصة - كل ذلك في بضع ميلي ثوانٍ. تقوم خوادم STUN والإشارة المضمنة باكتشاف الاتصال ثم تختفي من الطريق. محادثة


بداية سريعة

cargo build --release

قم بتشغيل الخوادم (على جهاز يمكن لكلا النظيرين الوصول إليه)، أو استخدم خوادمي العامة المستضافة على 64.225.107.28 (STUN: المنفذ 3478، الإشارة: المنفذ 8743):

punchline-stund                  # خادم STUN - يخبر النظائر بعنوان IP العام الخاص بهم
punchline-signald                # خادم الإشارة - يطابق النظائر الذين يريدون التحدث
الخوادم

على جهاز كل نظير:

# إنشاء هويتك (زوج مفاتيح X25519)
punchline keygen

# شارك مفتاحك العام مع نظيرك
punchline pubkey

# احفظ مفتاحهم
punchline peers add alice a1b2c3d4...64_hex_chars

# الاتصال (يقوم كلا النظيرين بتشغيل هذا، مستهدفين بعضهما البعض)
punchline connect alice --stun <server>:3478 --signal <server>:8743

يبدأ واجهة TUI مع عرض حي لتقدم الاتصال:

  1. اكتشاف STUN - حل عنوانك الخارجي عبر punchline-stund

  2. خادم الإشارة - الاتصال بـ punchline-signald

  3. انتظار النظير - خادم الإشارة يطابق كلا النظيرين

  4. اختراق NAT - إنشاء مسار UDP المباشر

  5. مصافحة Noise - تبادل المفاتيح المشفر

    لوحة التحكم

بمجرد الاكتمال، تكون في المحادثة. اكتب ثم اضغط Enter. اضغط Esc للخروج.


كيف يعمل

يتكون النظام بأكمله من ثلاثة ملفات تنفيذية، كلها مضمنة في هذا المستودع:

الملف التنفيذيالدورمتى يُستخدم
punchline-stundخادم STUN (UDP) - يرد بعنوان IP العام للعميل:المنفذأثناء الإعداد فقط
punchline-signaldخادم الإشارة (WebSocket) - يطابق النظائر ويتبادل العناوينأثناء الإعداد فقط
punchlineبرنامج المراسلة نفسه - CLI، TUI، تشفير، اختراق NATدائمًا

بعد الإعداد الأولي، لا يتم الاتصال بخوادم STUN والإشارة مرة أخرى. كل شيء يتدفق مباشرة بين النظيرين.


مرجع واجهة الأوامر

punchline

الأمرالوصف
keygen [--force] [-i path]إنشاء زوج مفاتيح هوية X25519 جديد. استخدم --force للكتابة فوق دون تأكيد. استخدم -i لتحديد مسار الإخراج.
pubkey [-i path]طباعة مفتاحك العام (64 حرفًا سداسيًا عشريًا). استخدم -i لاستخلاصه من ملف مفتاح محدد.
connect <peer> [-i path] [--stun addr] [--signal addr]الاتصال بنظير باستخدام اسم مستعار أو مفتاح سداسي عشري خام. استخدم -i لتحديد مفتاح الهوية. يفتح TUI.
peersسرد جميع النظائر المعروفة.
peers add <name> <key>حفظ المفتاح العام لنظير تحت اسم مستعار.
peers remove <name>إزالة نظير بالاسم المستعار.
config pathطباعة مسار ملف الإعدادات.
config showعرض قيم الإعدادات الحالية.
statusعرض الهوية والإعدادات وإمكانية الوصول إلى الخوادم وعدد النظائر.
completions <shell>إنشاء إكمالات أوامر shell (bash، zsh، أو fish).

الأعلام العامة:

العلمالوصف
-vزيادة مستوى تفصيل السجل (-v = تصحيح، -vv = تتبع).
-q, --quietإخفاء جميع مخرجات السجل.

punchline-stund

العلمالوصف
--address <addr>عنوان الربط (الافتراضي: 0.0.0.0).
--port <port>منفذ الربط (الافتراضي: 3478).
-v / -vvتسجيل التصحيح / التتبع.
-qوضع الصمت.

punchline-signald

العلمالوصف
--address <addr>عنوان الربط (الافتراضي: 0.0.0.0).
--port <port>منفذ الربط (الافتراضي: 8743).
-v / -vvتسجيل التصحيح / التتبع.
-qوضع الصمت.

الاستخدام

الإعدادات

بدلاً من تمرير --stun و --signal في كل مرة، أنشئ ~/.config/punchline/config.toml:

stun_server = "203.0.113.10:3478"
signal_server = "203.0.113.10:8743"

إدارة النظائر

punchline peers                              # سرد الكل
punchline peers add alice a1b2c3d4...        # إضافة
punchline peers remove alice                 # إزالة

يتم تخزين الأسماء المستعارة في ~/.punchline/known_peers.toml. يمكنك أيضًا الاتصال مباشرة باستخدام مفتاح سداسي عشري خام بطول 64 حرفًا.

فحص الحالة

punchline status

يظهر هويتك وإعداداتك وإمكانية الوصول إلى الخوادم (يرسل اختبار STUN حقيقي واتصال TCP) وعدد النظائر.

خيارات الخادم

كلا الخادمين يدعمان -v (تصحيح)، -vv (تتبع)، -q (صمت)، --address، و --port:

punchline-stund -v --port 3478
punchline-signald -v --port 8743

تنسيق الألوان

قم بتخصيص TUI عبر ~/.config/punchline/style.toml الأنماط المستخدمة في الفيديو:

[colors]
my_text = "#ebdbb2"
peer_text = "#bdae93"
input_text = "#ebdbb2"
border = "#ebdbb2"
sidebar_key = "#ebdbb2"
sidebar_value = "#bdae93"

[padding]
chat_horizontal = 2
chat_vertical = 1

جميع الألوان هي RGB سداسي عشري. إذا كان الملف غير موجود، يتم استخدام الألوان الافتراضية للمحطة الطرفية.

إكمال أوامر shell

punchline completions bash > ~/.local/share/bash-completion/completions/punchline
punchline completions zsh > ~/.zfunc/_punchline
punchline completions fish > ~/.config/fish/completions/punchline.fish

التشفير

اسم البروتوكول الكامل: Noise_IK_25519_ChaChaPoly_SHA256

المكونالدور
Noise IKنمط المصافحة - يعرف البادئ المفتاح العام للمستجيب. يكتمل في رسالتين.
X25519تبادل مفاتيح Diffie-Hellman على المنحنى الإهليلجي (RFC 7748). أمان 128 بت، وقت ثابت.
ChaCha20-Poly1305تشفير AEAD لتشفير الرسائل (RFC 8439). نفس التشفير المستخدم في TLS 1.3 و WireGuard.
SHA-256يُستخدم داخليًا بواسطة Noise لاستخلاص المفاتيح وتجزئة المصافحة.

مصافحة IK

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

  1. البادئ -> المستجيب: يرسل رسالة مشفرة تحتوي على مفتاحه العام الثابت، مشفرًا تحت المفتاح المعروف للمستجيب. يوفر إخفاء الهوية ضد المراقبين السلبيين.
  2. المستجيب -> البادئ: يفك التشفير، يتحقق، ويرد. ينتقل كلا الجانبين إلى وضع النقل بمفاتيح جلسة مشتركة.

تحديد البادئ

يحدد Punchline البادئ بشكل حتمي بمقارنة أول 8 بايتات من المفتاح العام لكل نظير كعدد صحيح u64 كبير النهاية. النظير ذو القيمة الأصغر يصبح البادئ. يقوم كلا الجانبين بحساب هذا بشكل مستقل.

تخزين المفاتيح

تنزيل الأداة