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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
dnscat2 — نفق مشفر للتحكم والأوامر عبر بروتوكول DNS. ينشئ قنوات C&C خفية لاختبار الاختراق، مع إمكانيات نقل الملفات، الوصول إلى الصدفة، وتوجيه المنافذ عبر استعلامات DNS. | Kitploit
أدوات/GitHubGitHub/iagox86/dnscat2
أدوات التشفير/فك التشفيرالتهرب من IDS/IPSتسريب البياناتاختبار الاختراقالقيادة والسيطرةالفريق الأحمرأداة الوصول عن بعدتحليل DNSالأفضل في القيادة والسيطرة #16الأفضل في تسريب البيانات #1
4.0k65233منذ 4 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
الأفضل في التهرب من IDS/IPS #12
الأفضل في أداة الوصول عن بعد #20
GitHubiagox86/dnscat2

dnscat2

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

عرض المستودع

***** ملاحظة: كلمة المرور للتحميلات المضغوطة (zip) كلها "password"! *****

مقدمة

مرحبًا بك في dnscat2، نفق DNS لن يجعلك مريضًا ويقتلك!

تم تصميم هذه الأداة لإنشاء قناة أوامر وتحكم (C&C) مشفرة عبر بروتوكول DNS، وهو نفق فعال للخروج من أي شبكة تقريبًا.

يجب أن يحتوي ملف README هذا على كل ما تحتاجه للبدء والتشغيل! إذا كنت مهتمًا بالتعمق في البروتوكول، أو كيفية تنظيم الكود، أو الخطط المستقبلية، أو أشياء غامضة أخرى، فاطلع على مجلد doc/.

الترخيص

تم إصدار هذا بموجب ترخيص BSD. راجع LICENSE.md لمزيد من المعلومات.

نظرة عامة

يتكون dnscat2 من جزأين: العميل والخادم.

تم تصميم العميل ليعمل على جهاز مخترق. إنه مكتوب بلغة C ولديه أقل عدد ممكن من التبعيات. يجب أن يعمل في أي مكان تقريبًا (إذا وجدت نظامًا لا يتم compile أو تشغيله عليه، يرجى فتح تذكرة، خاصة إذا كان بإمكانك مساعدتي في الوصول إلى هذا النظام).

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

إذا لم يكن لديك خادم DNS موثوق، يمكنك أيضًا استخدام اتصالات مباشرة على UDP/53 (أو أي ما تختاره). ستكون أسرع، وستظل تبدو كحركة مرور DNS للمشاهد العادي، لكنها أكثر وضوحًا في سجل الحزم (جميع النطاقات مسبوقة بـ "dnscat."، إلا إذا قمت بتعديل المصدر). غالبًا ما سيتم حظر هذا الوضع بواسطة جدران الحماية.

تم تصميم الخادم ليعمل على خادم DNS موثوق. إنه مكتوب بلغة ruby، ويعتمد على عدة gems مختلفة. عند تشغيله، مثل العميل تمامًا، تحدد النطاق (النطاقات) التي يجب أن يستمع إليها بالإضافة إلى الاستماع للرسائل المرسلة إليه مباشرة على UDP/53. عندما يستقبل حركة مرور لأحد هذه النطاقات، يحاول إنشاء اتصال منطقي. إذا استقبل حركة مرور أخرى، يتجاهلها افتراضيًا، ولكن يمكنه أيضًا إعادة توجيهها إلى upstream.

التعليمات المفصلة لكلا الجزأين أدناه.

كيف يختلف هذا عن .....

يسعى dnscat2 ليكون مختلفًا عن بروتوكولات نفق DNS الأخرى من خلال تصميمه لغرض خاص: الأوامر والتحكم.

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

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

إنه أيضًا مشفر افتراضيًا. لا أعتقد أن أي نفق DNS عام آخر يقوم بتشفير جميع حركة المرور!

أين يمكن الحصول عليه

إليك بعض الروابط المهمة:

  • الكود المصدري على Github
  • تحميلات (ستجد موقّعة إصدارات Linux 32-bit، Linux 64-bit، Win32، وإصدارات الكود المصدري للعميل، بالإضافة إلى أرشيف الخادم - ضع في اعتبارك أن ملف التوقيع هذا مستضاف على نفس الخادم الذي توجد به الملفات، لذا إذا كنت قلقًا، يرجى التحقق من مفتاح PGP الخاص بي :) )
  • توثيق المستخدم مجموعة من الملفات، لكل من المستخدمين النهائيين (مثل سجل التغييرات) والمطورين (مثل وثيقة المساهمة)
  • متتبع المشكلات (يمكنك أيضًا إرسال المشكلات عبر البريد الإلكتروني، فقط ضع اسمي الأول (ron) أمام اسم النطاق الخاص بي (skullsecurity.net))

كيفية التشغيل

النظرية وراء dnscat2 بسيطة: إنشاء نفق عبر بروتوكول DNS.

لماذا؟ لأن DNS له خاصية مذهلة: سيجد طريقه من خادم إلى آخر حتى يكتشف أين من المفترض أن يذهب.

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

هذا، بالطبع، يفترض أن لديك إمكانية الوصول إلى خادم DNS موثوق. يدعم dnscat2 أيضًا اتصالات "مباشرة" - أي تشغيل عميل dnscat يتصل مباشرة بالخادم dnscat الخاص بك على عنوان IP الخاص بك ومنفذ UDP 53 (افتراضيًا). لا تزال حركة المرور تبدو كحركة مرور DNS، وقد تتجاوز أنظمة IDS/IPS الأقل ذكاءً، لكنها لا تزال عرضة للإيقاف بواسطة جدران الحماية.

إذا لم تكن واضحًا بشأن كيفية إعداد خادم DNS موثوق، فهذا شيء يجب إعداده مع مزود النطاق. لقد قام izhan بشكل مفيد بكتابة واحد من أجلك!

التجميع

العميل

يجب أن يكون تجميع العميل أمرًا بسيطًا - كل ما تحتاجه للcompile هو make/gcc (لـ Linux) أو إما Cygwin أو Microsoft Visual Studio (لـ Windows). إليك الأوامر على Linux:

$ git clone https://github.com/iagox86/dnscat2.git
$ cd dnscat2/client/
$ make

على Windows، قم بتحميل client/win32/dnscat2.vcproj في Visual Studio واضغط "build". لقد أنشأته واختبرته على Visual Studio 2008 - حتى أحصل على نسخة شرعية مجانية من إصدار أحدث، من المحتمل أن ألتزم بذلك. :)

إذا فشلت عملية compile، يرجى فتح خطأ في صفحة github! يرجى إرسال تفاصيل حول نظامك.

يمكنك التحقق من أن dnscat2 تمت compile بنجاح عن طريق تشغيله بدون علامات; سترى أنه يحاول بدء نفق DNS مع خادم DNS الذي قمت بتكوينه (والذي سيفشل):

$ ./dnscat
Starting DNS driver without a domain! This will only work if you
are directly connecting to the dnscat2 server.

You'll need to use --dns server=<server> if you aren't.

** WARNING!
*
* It looks like you're running dnscat2 with the system DNS server,
* and no domain name!*
* That's cool, I'm not going to stop you, but the odds are really,
* really high that this won't work. You either need to provide a
* domain to use DNS resolution (requires an authoritative server):
*
*     dnscat mydomain.com
*
* Or you have to provide a server to connect directly to:
*
*     dnscat --dns=server=1.2.3.4,port=53
*
* I'm going to let this keep running, but once again, this likely
* isn't what you want!
*
** WARNING!

Creating DNS driver:
 domain = (null)
 host   = 0.0.0.0
 port   = 53
 type   = TXT,CNAME,MX
 server = 4.2.2.1
[[ ERROR ]] :: DNS: RCODE_NAME_ERROR
[[ ERROR ]] :: DNS: RCODE_NAME_ERROR
[[ ERROR ]] :: DNS: RCODE_NAME_ERROR
[[ ERROR ]] :: DNS: RCODE_NAME_ERROR
[[ ERROR ]] :: DNS: RCODE_NAME_ERROR
[[ ERROR ]] :: DNS: RCODE_NAME_ERROR
[[ ERROR ]] :: DNS: RCODE_NAME_ERROR
[[ ERROR ]] :: DNS: RCODE_NAME_ERROR
[[ ERROR ]] :: DNS: RCODE_NAME_ERROR
[[ ERROR ]] :: DNS: RCODE_NAME_ERROR
[[ ERROR ]] :: The server hasn't returned a valid response in the last 10 attempts.. closing session.
[[ FATAL ]] :: There are no active sessions left! Goodbye!
[[ WARNING ]] :: Terminating

الخادم

الخادم ليس "مجمّعًا" بالمعنى التقليدي، لكنه يتطلب بعض تبعيات Ruby. لسوء الحظ، يمكن أن تكون تبعيات Ruby مزعجة لعملها، لذا حظًا سعيدًا! إذا كان هناك أي خبراء Ruby يرغبون في المساعدة في تحسين هذا القسم، سأكون ممتنًا!

أفترض أن لديك Ruby و Gem مثبتة وتعمل بشكل صحيح. إذا لم تكن كذلك، فقم بتثبيتها إما باستخدام apt-get أو emerge أو rvm أو أيًا كان المعتاد على نظام التشغيل الخاص بك.

بمجرد ترتيب Ruby/Gem، قم بتشغيل هذه الأوامر (ملاحظة: يمكنك بالتأكيد تخطي أمر git clone إذا كنت قد قمت بالفعل بتثبيت العميل وتخطي gem install bundler إذا كنت قد قمت بالفعل بتثبيت bundler):

$ git clone https://github.com/iagox86/dnscat2.git
$ cd dnscat2/server/
$ gem install bundler
$ bundle install

إذا حصلت على خطأ في الأذونات مع gem install bundler أو bundler install، فقد تحتاج إلى تشغيلها كجذر. إذا كان لديك الكثير من المشكلات، قم بإلغاء تثبيت Ruby/Gem وتثبيت كل شيء باستخدام rvm وبدون جذر.

إذا حصلت على خطأ يبدو مثل هذا:

/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)

هذا يعني أنك بحاجة إلى تثبيت إصدار -dev من Ruby:

$ sudo apt-get install ruby-dev
تنزيل الأداة