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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/trycatchhcf/packetwhisper
تسريب البياناتإخفاء المعلوماتالتشفيرالفريق الأحمرتحليل DNS
GitHubtrycatchhcf/packetwhisper

PacketWhisper

PacketWhisper: استخرج البيانات بسرية وتجنب الإسناد باستخدام استعلامات DNS والإخفاء النصي. تجنب المشاكل المرتبطة بطرق استخراج DNS النموذجية. انقل البيانات بين الأنظمة دون أن تتصل الأجهزة المتصلة ببعضها البعض مباشرة أو بنقطة نهاية مشتركة. لا حاجة للتحكم في خادم أسماء DNS.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

PacketWhisper

PacketWhisper - نقل البيانات بتخفي وهزيمة الإسناد باستخدام استعلامات DNS والإخفاء النصي، دون الحاجة إلى خوادم أسماء أو نطاقات يتحكم بها المهاجم؛ تجاوز أجهزة DLP/MLS؛ هزيمة ضوابط القائمة البيانية للبيانات وخوادم أسماء DNS. تحويل أي نوع ملف (مثل برامج تنفيذية، Office، Zip، صور) إلى قائمة بأسماء نطاقات مؤهلة بالكامل (FQDNs)، واستخدام استعلامات DNS لنقل البيانات. بسيط لكنه فعال للغاية.

(تحديث 27/05/2020: نعم، سأقوم بترحيل جميع مشاريعي على Github إلى Python3 خلال صيف 2020.)

المؤلف

Joe Gervais (TryCatchHCF)

لماذا يختلف هذا عن كل تقنية تسريب DNS الأخرى؟

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

يتجاوز PacketWhisper هذه القيود.

ماذا لو أمكن نقل البيانات باستخدام خوادم DNS البيضاء الخاصة بالهدف، دون أن تتصل الأنظمة المتصلة ببعضها البعض مباشرة أو بنقطة نهاية مشتركة؟ حتى لو كان حد الشبكة يستخدم القائمة البيانية للبيانات لمنع تسرب البيانات؟

كيف يعمل

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

لاستقبال البيانات، تلتقط حركة مرور الشبكة التي تحتوي على استعلامات DNS، باستخدام أي طريقة تناسبك. (انظر "التقاط ملف PCAP" أدناه للحصول على أمثلة لنقاط الالتقاط.) ثم تقوم بتحميل ملف PCAP الملتقط في PacketWhisper (يعمل على أي نظام مناسب)، الذي يستخرج الحمولة من الملف ويفك تشفيرها إلى شكلها الأصلي.

DNS هو بروتوكول جذاب للاستخدام لأنه، على الرغم من أنه وسيلة بطيئة نسبيًا لنقل البيانات، إلا أن DNS مسموح به دائمًا تقريبًا عبر حدود الشبكة، حتى على الشبكات الأكثر حساسية.

ملاحظة مهمة: نحن نستخدم استعلامات DNS لنقل البيانات، وليس عمليات بحث DNS ناجحة. لا يحتاج PacketWhisper أبدًا إلى حل أي من استعلامات DNS الخاصة به بنجاح. في الواقع، لا ينظر PacketWhisper حتى إلى استجابات DNS. هذا يوسع حالات الاستخدام لدينا، ويؤكد حقيقة أننا لا نحتاج أبدًا إلى التحكم في نطاق نستعلم عنه، ولا نحتاج أبدًا إلى التحكم في خادم أسماء DNS الذي يعالج طلبات DNS.

لذا باستخدام PacketWhisper، نحول حمولة تبدو هكذا:

إلى قائمة من FQDNs كهذه:

والتي يحولها PacketWhisper إلى استعلامات DNS تظهر في حركة مرور الشبكة هكذا:

والتي تلتقطها كملف PCAP في أي مكان على طول مسار حل DNS، ثم تحمّل ملف PCAP هذا في نسختك المحلية من PacketWhisper لاستعادة الحمولة:

برنامج تعليمي

انظر شرائح DEF CON 26 (مضمنة في المشروع) من عرضي التقديمي في قرية اختراق الحزم. تقدم الشرائح خلفية عن تسريب DNS، والإخفاء النصي / Cloakify Toolset، وكيف يجمعهم PacketWhisper في طريقة لنقل البيانات. لقد أنشأت الشرائح خصيصًا لتكون مفيدة بذاتها، لذا يجب أن تكون الخلفية والمعلومات كاملة. ومع ذلك، يمكنك أيضًا مشاهدة فيديو عرضي التقديمي في DC26 Packet Hacking Village الذي يوفر سياقًا إضافيًا.

لقد أدرجت ملف PCAP نموذجيًا في المشروع (باسم ذكي "sample.pcap") يحتوي على حمولات منفصلة لكل من الشفرات. كان يمكن أن تكون أي نوع ملف، بالطبع، ولكن في هذه الحالة قمت بنقل ملفات نصية فقط إلى PCAP. قم بتحميله في PacketWhisper وجربه!

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

يتطلب

  1. Python 2.7.x (نسخة 3.6.x قيد التطوير)
  2. لفك تشفير الحمولات: tcpdump (مضمن في Linux و MacOS) أو WinDump (Windows)

سؤال: "لماذا لم تستخدم Scapy أو مجموعة أدوات dnspython؟"

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

سؤال: "لماذا لا يكون PacketWhisper فرعًا لمشروع Cloakify Toolset؟"

إجابة: نفس الإجابة أعلاه. نحتاج فقط إلى مجموعة فرعية محددة جدًا من قدرات Cloakify، وإضافة كل شيء آخر إلى PacketWhisper سيؤدي فقط إلى دليل مزدحم وأدوات/شفرات لا يمكن استخدامها بواسطة PacketWhisper. نظرًا لأنني أملك كلا المشروعين، أعدك بمزامنة أي تغييرات بينهما.

تشغيل PacketWhisper

$ python packetWhisper.py

الشفرات المستندة إلى FQDN

تتكون الشفرات المستندة إلى FQDN من 3 فئات:

  1. FQDNs ذات نطاق فرعي عشوائي فريد (مستحسن - يتجنب التخزين المؤقت لـ DNS، يتجاوز NAT)
  2. FQDNs متكررة فريدة (قد يخزن DNS مؤقتًا، لكنها تتجاوز NAT)
  3. FQDNs لمواقع ويب شائعة (قد يمنع التخزين المؤقت لـ DNS، يتداخل NAT)

FQDNs ذات نطاق فرعي عشوائي فريد

وضع الشفرة الموصى به لمعظم حالات الاستخدام

هذه هي FQDNs مع عناصر عشوائية مدمجة في المجالات الفرعية. يساعد ذلك في منع التخزين المؤقت لـ DNS، مع السماح لنا أيضًا بنقل البيانات إلى ما بعد أجهزة الشبكة التي تستخدم NAT والتي قد تكون على طول مسار استعلام DNS. نظرًا لأن عنوان IP للنظام المرسل غير متاح بعد جهاز NAT، تحتوي المجالات الفرعية التي تم إنشاؤها بواسطة الشفرة على عناصر علامة فريدة لمساعدتنا في تحديد حمولات PacketWhisper في التقاط الحزمة.

تحاكي هذه الشفرات تنسيقات الخدمات المختلفة التي تعتمد على مجالات فرعية معقدة كوسيلة لتحديد جلسة أو مستخدم أو محتوى مخبأ، إلخ. يساعد هذا النهج في جعل استعلامات DNS الخاصة بـ PacketWhisper تندمج مع باقي حركة مرور الشبكة.

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

FQDNs متكررة فريدة

تم إنشاؤها لتبرز من بين جميع استعلامات DNS الأخرى على الشبكة، ولكن دون أي توزيع عشوائي. هذا يعني أن التخزين المؤقت لـ DNS قد يتداخل، ولكن كفائدة جانبية، ستكون استعلامات DNS الخاصة بك سهلة بالنسبة لك للعثور عليها حتى في أكبر مجموعات ملفات pcap متعددة العملاء. يرجع ذلك إلى حقيقة أن FQDNs هي نقاط نهاية غريبة، مثل قائمة "Johns" (كائنات Red Lectroid الفضائية) في شركة Yoyodyne Propulsion Systems الخيالية من فيلم 'Buckaroo Banzai Across the 8th Dimension'.

FQDNs لمواقع ويب شائعة

هذه هي FQDNs المبنية من URLs لمواقع ويب شائعة.

ملاحظة: نظرًا لأن معظم البيئات تستخدم NAT عند المحيط (إزالة رؤية عنوان IP للعميل)، فإن هذا الوضع مفيد بشكل عام فقط لنقل البيانات بين الأنظمة المتصلة بنفس الشبكة المحلية /24 (على سبيل المثال، شبكة الواي فاي للضيوف في مقهى المفضل لديك).

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

مثال FQDN: www.github.com

إرسال الحمولة المشفرة (Cloakified)

بمجرد تحديد شفرة، يقوم PacketWhisper بتشفير (Cloakify) الحمولة إلى قائمة من سلاسل FQDN وفقًا للشفرة المطلوبة. ثم يقوم بإنشاء طلبات DNS بشكل متسلسل لإرسال البيانات على طول مسار حل DNS. يضيف PacketWhisper تأخيرًا صغيرًا بين كل استعلام DNS، مما يساعد في منع طلبات DNS غير المرتبة.

التقاط ملف PCAP

العنصر الرئيسي هنا هو بالطبع القدرة على التقاط حركة مرور الشبكة التي تحتوي على استعلامات DNS التي أنشأها PacketWhisper. هناك الكثير من الخيارات، حيث تحتاج فقط إلى أن تكون في مكان ما، في أي مكان، لديك رؤية لمسار استعلام DNS.

أمثلة على نقاط الالتقاط:

  • متصل بنفس الشبكة المحلية (على سبيل المثال، المقهى المحلي الخاص بك)
  • الأنظمة والأجهزة الداخلية للمؤسسة
  • أجهزة الشبكة الطرفية
  • البنية التحتية للشبكة خارج المؤسسة
  • نقطة اختراق الشبكة في أي مكان على طول مسار الاستعلام

استخدم خيالك. أي جهاز على طول مسار حل DNS هو خيار، بما في ذلك شاشات الحائط. "انتظر، ماذا؟"

ملاحظة: اتصالات VPN تمنع الرؤية بين المضيف ونقطة خروج VPN. إذا كان العميل الذي تنقل منه لديه اتصال VPN نشط، فلن تتمكن من رؤية أي استعلامات DNS ما لم تتمكن من الالتقاط في المنبع من نقطة خروج VPN. حتى الالتقاط على نفس النظام سيفشل. نظرًا لأن الكثير منكم ربما يستخدمون VPN، إذا كنت تريد اختبار PacketWhisper، حاول الإرسال من جهاز افتراضي (VM) واستضافته، والتقاط حركة المرور على واجهة الشبكة للجهاز الافتراضي على النظام المضيف.

استخراج الحمولة

بمجرد التقاط ملف pcap، استعد الحمولة عن طريق تشغيل PacketWhisper على نظام يحتوي على tcpdump (مضمن في Linux و MacOS) أو WinDump (Windows) مثبتًا. سيطلب منك PacketWhisper أي شفرة تم استخدامها، ثم يستخرج الحمولة من pcap، وأخيرًا يفك تشفير الحمولة المستخرجة باستخدام الشفرة المطابقة.

ملاحظة مهمة: داخل نفس PCAP، يمكنك إرسال حمولة واحدة لكل شفرة مستخدمة. PCAP يحتوي على أكثر من حمولة باستخدام نفس الشفرة سيسبب مشاكل. على سبيل المثال، ملف 'example.pcap' الذي قدمته يحتوي على 5 حمولات، واحدة لكل شفرة تشغيلية متاحة حاليًا. إذا كانت إحدى الحمولات قد استخدمت نفس الشفرة مثل أخرى، سيفشل PacketWhisper في استخراج أي منهما. الإصلاح السهل هو تقسيم ملف PCAP (لهذا يطبع كود الإرسال في PacketWhisper تاريخ ووقت UTC عند بدء وإنهاء الإرسال). أنا أعمل على السماح بحمولات متعددة باستخدام نفس الشفرة، الحل موجود بالفعل، أحتاج فقط إلى الالتزام به.

القيود / ملاحظات الاستخدام

تأكد من أن ملف PCAP الخاص بك هو بالفعل بصيغة PCAP. إذا استخدمت tcpdump أو WinDump لالتقاط الملف، فستكون بخير. ومع ذلك، يقدم Wireshark مجموعة واسعة من خيارات "حفظ باسم..." لحفظ حركة مرور Wireshark، واحد منها فقط هو المتوافق مع tcpdump/PCAP. أنا أعمل على تحسين تقارير الأخطاء للمساعدة في اكتشاف الأخطاء مبكرًا.

ليست مخطط تشفير آمن. PacketWhisper ليس مخطط تشفير آمن. إنه عرضة لهجمات تحليل التردد. استخدم فئة الشفرات 'FQDNs ذات نطاق فرعي عشوائي فريد' لإضافة الإنتروبيا والمساعدة في تقليل هجمات تحليل التردد. إذا كانت سرية الحمولة مطلوبة، تأكد من تشفير الحمولة قبل استخدام PacketWhisper لمعالجتها.

ليست طريقة نقل عالية النطاق الترددي. يعتمد PacketWhisper على استعلامات DNS، التي تعتمد على UDP، مما يعني أن ترتيب التسليم (أو حتى التسليم الناجح) للطلب غير مضمون. يضيف PacketWhisper افتراضيًا تأخيرًا صغيرًا (نصف ثانية) بين كل استعلام DNS. يمكنك نقل الحمولات بأمان بمعدل حوالي 7.2 كيلوبايت في الساعة (120 بايت في الدقيقة). هذا يعتمد على حجم الحمولة الأصلية، وليس ملف الإخراج المشفر. يمكنك اختيار عدم وجود تأخير بين الاستعلامات، مما يسرع النقل بشكل كبير ولكن على حساب زيادة الضوضاء في الشبكة وتلف الحمولة.

ودعنا نواجه الأمر، إذا كانت لديك طرق نقل غير DNS متاحة، يمكنك فقط استخدام مشروع Cloakify Toolset الرئيسي لإخفاء الملف في العيان (ربما تحويل الحمولة إلى قائمة من وحوش PokemonGo مع إحداثيات LatLon) واستخدام كل النطاق الترددي العالي المتاح عبر FTP/HTTP/etc. DNS مفيد للغاية عندما تكون البروتوكولات الأخرى محظورة، ولكن كن دائمًا على دراية بخياراتك.

DNS هو DNS. أنظمة التشغيل المختلفة لديها سياسات تخزين مؤقت مختلفة لـ DNS، إلخ. قد تكون الشبكات معطلة، معزولة، إلخ. يتضمن PacketWhisper فحصًا يدويًا سريعًا لمعرفة ما إذا كان يمكنه حل FQDNs شائعة، لكن DNS غالبًا ما يكون أمرًا فوضويًا. تذكر المبدأ القديم لاستكشاف أخطاء تكنولوجيا المعلومات: "دائمًا ما يكون DNS."

الكشف / المنع

انظر شرائح DEF CON 26 (مضمنة في المشروع) من عرضي التقديمي في قرية اختراق الحزم. يتم تغطية استراتيجيات التخفيف نحو نهاية العرض التقديمي. كما هو الحال في كل شيء، "الأمن المتعمق" هو صديقك، خاصة وأن مسارات حل DNS تمتد عبر مساحات شاسعة من الأراضي خارج سيطرة مؤسستك.

خريطة الطريق

سأضيف أوضاعًا لأنماط بث DNS المحلية MDNS و LLMNR للشبكة المحلية. هذه مخصصة للاستخدام من قبل الأنظمة المتصلة بنفس الشبكة المحلية، وستزيل حاجة جهاز الالتقاط للوصول إلى وضع غير مخصص (Promiscuous Mode) عند إجراء التقاطات حزم الواي فاي. (تلك البروتوكولات ترسل حركة المرور إلى x.y.z.255 على شبكة المضيف، مما يبث حركة المرور إلى جميع الأنظمة الأخرى على نفس الشبكة المحلية.)

سأضيف أيضًا المزيد من الشفرات، ولكن للاحتياجات اليومية، مجموعة الشفرات الحالية هي كل ما احتجته على الإطلاق. ستحصل على فائدة جيدة منها.

أنا أعمل أيضًا على السماح بحمولات متعددة باستخدام نفس الشفرة في ملف PCAP واحد. الحل موجود بالفعل كنموذج أولي، لكنه يجعل سير عمل استخراج PCAP أكثر قبحًا للمستخدم. من الناحية التشغيلية، قد يكون أكثر مشكلة مما يستحق. أفضل دائمًا وظائف تشغيلية أنظف من تعقيد سكين الجيش السويسري.

تنزيل الأداة