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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
dnschef — DNSChef - وكيل DNS لمختبرى الاختراق ومحللى البرمجيات الخبيثة | Kitploit
أدوات/GitHubGitHub/iphelix/dnschef
جمع المعلوماتأمن الشبكاتتحليل البرمجيات الخبيثةاختبار الاختراقتحليل DNS
GitHubiphelix/dnschef

dnschef

DNSChef - وكيل DNS لمختبرى الاختراق ومحللى البرمجيات الخبيثة

عرض المستودع
1.1k225منذ 7 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

root@kitploit:~
 | | الإصدار 0.4  | |        / _|

| | __ ___ | | __| | / ` | ' / |/ | ' \ / _ \ | | (| | | | _ \ (| | | | __/ | _,|| ||/_|| ||___||

root@kitploit:~
   و ث ا ئ ق   ا ل ا س ت خ د ا م

DNSChef هو خادم وكيل DNS عالي التخصيص للمختبرين الاختراقيين ومحللي البرامج الضارة. خادم DNS الوكيل (المعروف أيضًا باسم "DNS مزيف") هو أداة تُستخدم لتحليل حركة مرور الشبكة الخاصة بالتطبيقات، من بين استخدامات أخرى. على سبيل المثال، يمكن استخدام خادم DNS وكيل لتزوير طلبات "badguy.com" لتوجيهها إلى جهاز محلي لإنهاء الاتصال أو اعتراضه بدلاً من مضيف حقيقي في مكان ما على الإنترنت.

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

يوصى باستخدام خادم DNS وكيل في الحالات التي لا يمكن فيها إجبار تطبيق على استخدام خادم وكيل آخر بشكل مباشر. على سبيل المثال، تتجاهل بعض تطبيقات الأجهزة المحمولة إعدادات وكيل HTTP الخاصة بنظام التشغيل بشكل كامل. في هذه الحالات، سيسمح لك استخدام خادم DNS وكيل مثل DNSChef بخداع ذلك التطبيق لتوجيه الاتصالات إلى الوجهة المطلوبة.

إعداد خادم DNS وكيل

قبل أن تتمكن من البدء في استخدام DNSChef، يجب عليك تكوين جهازك لاستخدام خادم أسماء DNS مع تشغيل الأداة عليه. لديك عدة خيارات بناءً على نظام التشغيل الذي ستستخدمه:

  • لينكس (Linux) - قم بتحرير ملف /etc/resolv.conf لإضافة سطر في الأعلى مع عنوان جهاز تحليل حركة المرور الخاص بك (على سبيل المثال، أضف "nameserver 127.0.0.1" إذا كنت تعمل محليًا). بدلاً من ذلك، يمكنك إضافة عنوان خادم DNS باستخدام أدوات مثل مدير الشبكة. داخل مدير الشبكة، افتح إعدادات IPv4، واختر العناوين التلقائية (DHCP) فقط أو يدوي من مربع القائمة المنسدلة الطريقة، ثم قم بتحرير مربع النص خوادم DNS لتضمين عنوان IP مع تشغيل DNSChef.

  • ويندوز (Windows) - اختر اتصالات الشبكة من لوحة التحكم. بعد ذلك، اختر أحد الاتصالات (على سبيل المثال، "اتصال المنطقة المحلية")، وانقر بزر الماوس الأيمن عليه واختر "خصائص". من مربع الحوار الجديد الذي يظهر، اختر بروتوكول الإنترنت (TCP/IP) وانقر على "خصائص". أخيرًا، اختر زر الاختيار استخدام عناوين خادم DNS التالية وأدخل عنوان IP مع تشغيل DNSChef. على سبيل المثال، إذا كنت تعمل محليًا، أدخل 127.0.0.1.

  • نظام تشغيل ماك (OS X) - افتح تفضيلات النظام وانقر على أيقونة الشبكة. اختر الواجهة النشطة واملأ حقل خادم DNS. إذا كنت تستخدم Airport، فسيتعين عليك النقر على زر خيارات متقدمة... وتحرير خوادم DNS من هناك. بدلاً من ذلك، يمكنك تحرير /etc/resolv.conf وإضافة خادم أسماء مزيف إلى الأعلى (على سبيل المثال "nameserver 127.0.0.1").

  • آي أو إس (iOS) - افتح الإعدادات واختر عام. بعد ذلك، اختر Wi-Fi وانقر على السهم الأزرق الموجود على يمين نقطة الوصول النشطة من القائمة. قم بتحرير إدخال DNS ليشير إلى المضيف الذي يعمل عليه DNSChef. تأكد من تعطيل واجهة الخلوي (إذا كانت متاحة).

  • أندرويد (Android) - افتح الإعدادات واختر الشبكات والإنترنت. انقر على إعدادات Wi-Fi واختر متقدم بعد الضغط على زر الخيارات في الهاتف. فعّل مربع الاختيار استخدام IP ثابت وقم بتكوين خادم DNS مخصص.

إذا لم تكن لديك القدرة على تعديل إعدادات DNS الخاصة بالجهاز يدويًا، فلا يزال لديك عدة خيارات تتضمن تقنيات مثل انتحال ARP، و خادم DHCP المارق، وطرق إبداعية أخرى.

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

تشغيل DNSChef

DNSChef هو تطبيق متعدد المنصات تم تطويره بلغة Python ويجب أن يعمل على معظم المنصات التي تحتوي على مترجم Python. يمكنك استخدام الملف القابل للتنفيذ المرفق dnschef.exe لتشغيله على أجهزة Windows دون تثبيت مترجم Python. سيركز هذا الدليل على بيئات Unix؛ ومع ذلك، تم اختبار جميع الأمثلة أدناه للعمل على Windows أيضًا.

دعنا نجرب DNSChef مع وظيفة المراقبة الأساسية الخاصة به. قم بتنفيذ الأمر التالي كجذر (مطلوب لبدء تشغيل خادم على المنفذ 53):

root@kitploit:~
# ./dnschef.py
    
          _                _          __  
         | | الإصدار 0.2  | |        / _| 
       __| |_ __  ___  ___| |__   ___| |_ 
      / _` | '_ \/ __|/ __| '_ \ / _ \  _|
     | (_| | | | \__ \ (__| | | |  __/ |  
      \__,_|_| |_|___/\___|_| |_|\___|_|  
                   [email protected]  

[*] تم بدء DNSChef على الواجهة: 127.0.0.1 
[*] استخدام خوادم الأسماء التالية: 8.8.8.8
[*] لم يتم تحديد أي معلمات. يعمل في وضع الوكيل الكامل

بدون أي معلمات، سيعمل DNSChef في وضع الوكيل الكامل. هذا يعني أن جميع الطلبات سيتم ببساطة توجيهها إلى خادم DNS upstream (8.8.8.8 افتراضيًا) وإعادتها إلى المضيف الطالب. على سبيل المثال، دعنا نستعلم عن سجل "A" لنطاق ونلاحظ النتائج:

root@kitploit:~
$ host -t A thesprawl.org
thesprawl.org has address 108.59.3.64

سيقوم DNSChef بطباعة سطر السجل التالي الذي يظهر الوقت وعنوان IP المصدر ونوع السجل المطلوب والأهم من ذلك أي اسم تم الاستعلام عنه:

root@kitploit:~
[23:54:03] 127.0.0.1: توجيه استجابة من النوع 'A' لـ thesprawl.org

هذا الوضع مفيد لمراقبة التطبيقات البسيطة حيث تحتاج إلى معرفة النطاقات التي يستخدمها التطبيق لاتصالاته.

يدعم DNSChef بالكامل IPv6 والذي يمكن تفعيله باستخدام العلامات -6 أو --ipv6*. يعمل تمامًا مثل وضع IPv4 مع استثناء أن واجهة الاستماع الافتراضية يتم التبديل إلى ::1 وخادم DNS الافتراضي يتم التبديل إلى 2001:4860:4860::8888. إليك إخراج عينة:

root@kitploit:~
# ./dnschef.py -6
          _                _          __
         | | الإصدار 0.2  | |        / _|
       __| |_ __  ___  ___| |__   ___| |_
      / _` | '_ \/ __|/ __| '_ \ / _ \  _|
     | (_| | | | \__ \ (__| | | |  __/ |
      \__,_|_| |_|___/\___|_| |_|\___|_|
                   [email protected]

[*] استخدام وضع IPv6.
[*] تم بدء DNSChef على الواجهة: ::1
[*] استخدام خوادم الأسماء التالية: 2001:4860:4860::8888
[*] لم يتم تحديد أي معلمات. يعمل في وضع الوكيل الكامل
[00:35:44] ::1: توجيه استجابة من النوع 'A' لـ thesprawl.org
[00:35:44] ::1: توجيه استجابة من النوع 'AAAA' لـ thesprawl.org
[00:35:44] ::1: توجيه استجابة من النوع 'MX' لـ thesprawl.org

ملاحظة: بشكل افتراضي، يقوم DNSChef بإنشاء مستمع UDP. يمكنك استخدام TCP بدلاً من ذلك باستخدام الوسيطة --tcp التي سيتم مناقشتها لاحقًا.

اعتراض جميع الاستجابات

الآن، بعد أن عرفت كيفية بدء DNSChef، دعنا نضبطه لتزوير جميع الردود لتوجيهها إلى 127.0.0.1 باستخدام المعامل --fakeip:

root@kitploit:~
# ./dnschef.py --fakeip 127.0.0.1 -q
[*] تم بدء DNSChef على الواجهة: 127.0.0.1 
[*] استخدام خوادم الأسماء التالية: 8.8.8.8
[*] طهي جميع ردود A لتوجيهها إلى 127.0.0.1
[23:55:57] 127.0.0.1: طهي استجابة من النوع 'A' لـ google.com إلى 127.0.0.1
[23:55:57] 127.0.0.1: توجيه استجابة من النوع 'AAAA' لـ google.com
[23:55:57] 127.0.0.1: توجيه استجابة من النوع 'MX' لـ google.com

في الإخراج أعلاه، يمكنك رؤية أن DNSChef تم تكوينه لتوجيه جميع الطلبات إلى 127.0.0.1. يُظهر السطر الأول من السجل في 08:11:23 أننا "طهينا" استجابة سجل "A" لتوجيهها إلى 127.0.0.1. ومع ذلك، فإن الطلبات الإضافية لسجلات 'AAAA' و 'MX' يتم توجيهها ببساطة من خادم DNS حقيقي. دعنا نرى الإخراج من البرنامج الطالب:

root@kitploit:~
$ host google.com localhost
google.com has address 127.0.0.1
google.com has IPv6 address 2001:4860:4001:803::1001
google.com mail is handled by 10 aspmx.l.google.com.
google.com mail is handled by 40 alt3.aspmx.l.google.com.
google.com mail is handled by 30 alt2.aspmx.l.google.com.
google.com mail is handled by 20 alt1.aspmx.l.google.com.
google.com mail is handled by 50 alt4.aspmx.l.google.com.

كما ترى، تم خداع البرنامج لاستخدام 127.0.0.1 لعنوان IPv4. ومع ذلك، تظهر المعلومات التي تم الحصول عليها من IPv6 (AAAA) وسجلات البريد (MX) شرعية تمامًا. الهدف من DNSChef هو أن يكون له أقل تأثير على التشغيل الصحيح للبرنامج، لذلك إذا كان التطبيق يعتمد على خادم بريد معين، فسيحصل عليه بشكل صحيح من خلال هذا الطلب الموجه.

دعنا نزور طلبًا آخر لتوضيح كيفية استهداف سجلات متعددة في نفس الوقت:

root@kitploit:~
# ./dnschef.py --fakeip 127.0.0.1 --fakeipv6 ::1 -q
[*] تم بدء DNSChef على الواجهة: 127.0.0.1 
[*] استخدام خوادم الأسماء التالية: 8.8.8.8
[*] طهي جميع ردود A لتوجيهها إلى 127.0.0.1
[*] طهي جميع ردود AAAA لتوجيهها إلى ::1
[00:02:14] 127.0.0.1: طهي استجابة من النوع 'A' لـ google.com إلى 127.0.0.1
[00:02:14] 127.0.0.1: طهي استجابة من النوع 'AAAA' لـ google.com إلى ::1
[00:02:14] 127.0.0.1: توجيه استجابة من النوع 'MX' لـ google.com

بالإضافة إلى علامة --fakeip، قمت الآن بتحديد --fakeipv6 المصمم لتزوير استعلامات سجل 'AAAA'. إليك إخراج البرنامج المحدث:

root@kitploit:~
$ host google.com localhost
google.com has address 127.0.0.1
google.com has IPv6 address ::1
google.com mail is handled by 10 aspmx.l.google.com.
google.com mail is handled by 40 alt3.aspmx.l.google.com.
google.com mail is handled by 30 alt2.aspmx.l.google.com.
google.com mail is handled by 20 alt1.aspmx.l.google.com.
google.com mail is handled by 50 alt4.aspmx.l.google.com.

مرة أخرى، تم توجيه جميع السجلات التي لم يتم تجاوزها صراحةً من قبل التطبيق وإعادتها من خادم DNS الحقيقي. ومع ذلك، تم تزوير كل من IPv4 (A) و IPv6 (AAAA) لتوجيهها إلى جهاز محلي.

يدعم DNSChef أنواع سجلات متعددة:

root@kitploit:~
+--------+--------------+-----------+--------------------------+
| السجل  |  الوصف       |الوسيطة    | مثال                     |
+--------+--------------+-----------+--------------------------+
|  A     | عنوان IPv4   |--fakeip   | --fakeip 192.0.2.1       |
|  AAAA  | عنوان IPv6   |--fakeipv6 | --fakeipv6 2001:db8::1   |
|  MX    | خادم بريد   |--fakemail | --fakemail mail.fake.com |
|  CNAME | سجل CNAME   |--fakealias| --fakealias www.fake.com |
|  NS    | خادم أسماء  |--fakens   | --fakens ns.fake.com     |
+--------+--------------+-----------+--------------------------+

ملاحظة: لسهولة الاستخدام، لا يتم عرض جميع أنواع سجلات DNS في سطر الأوامر. يمكن تحديد سجلات إضافية مثل PTR و TXT و SOA وما إلى ذلك باستخدام علامة --file ورأس السجل المناسب. راجع قسم ملف التعريفات الخارجية أدناه للحصول على التفاصيل.

أخيرًا، دعنا نلاحظ كيفية تعامل التطبيق مع استعلامات من النوع ANY:

root@kitploit:~
# ./dnschef.py --fakeip 127.0.0.1 --fakeipv6 ::1 --fakemail mail.fake.com --fakealias www.fake.com --fakens ns.fake.com -q
[*] تم بدء DNSChef على الواجهة: 127.0.0.1 
[*] استخدام خوادم الأسماء التالية: 8.8.8.8
[*] طهي جميع ردود A لتوجيهها إلى 127.0.0.1
[*] طهي جميع ردود AAAA لتوجيهها إلى ::1
[*] طهي جميع ردود MX لتوجيهها إلى mail.fake.com
[*] طهي جميع ردود CNAME لتوجيهها إلى www.fake.com
[*] طهي جميع ردود NS لتوجيهها إلى ns.fake.com
[00:17:29] 127.0.0.1: طهي استجابة من النوع 'ANY' لـ google.com باستخدام جميع السجلات المزيفة المعروفة.

تؤدي استعلامات سجل DNS ANY إلى قيام DNSChef بإرجاع كل سجل مزيف يعرفه عن نطاق قابل للتطبيق. إليك الإخراج الذي سيراه البرنامج:

root@kitploit:~
$ host -t ANY google.com localhost
google.com has address 127.0.0.1
google.com has IPv6 address ::1
google.com mail is handled by 10 mail.fake.com.
google.com is an alias for www.fake.com.
google.com name server ns.fake.com.

تصفية النطاقات

باستخدام المثال أعلاه، ضع في اعتبارك أنك تريد فقط اعتراض الطلبات لـ thesprawl.org وترك الاستعلامات لجميع النطاقات الأخرى مثل webfaction.com دون تعديل. يمكنك استخدام المعامل --fakedomains كما هو موضح أدناه:

root@kitploit:~
# ./dnschef.py --fakeip 127.0.0.1 --fakedomains thesprawl.org -q
[*] تم بدء DNSChef على الواجهة: 127.0.0.1
[*] استخدام خوادم الأسماء التالية: 8.8.8.8  
[*] طهي الردود لتوجيهها إلى 127.0.0.1 مطابقة لـ: thesprawl.org
[00:23:37] 127.0.0.1: طهي استجابة من النوع 'A' لـ thesprawl.org إلى 127.0.0.1
[00:23:52] 127.0.0.1: توجيه استجابة من النوع 'A' لـ mx9.webfaction.com

من المثال أعلاه، تم تزوير الطلب لـ thesprawl.org؛ ومع ذلك، تم ترك الطلب لـ mx9.webfaction.com دون تغيير. يعد تصفية النطاقات مفيدًا جدًا عندما تحاول عزل تطبيق واحد دون تعطيل الباقي.

ملاحظة: لن يتحقق DNSChef مما إذا كان النطاق موجودًا أم لا قبل تزوير الاستجابة. إذا قمت بتحديد نطاق، فسيتم حله دائمًا إلى قيمة مزيفة سواء كان موجودًا بالفعل أم لا.

التصفية العكسية

في حالة أخرى، قد تحتاج إلى تزوير الاستجابات لجميع الطلبات باستثناء قائمة محددة من النطاقات. يمكنك إنجاز هذه المهمة باستخدام المعامل --truedomains كما يلي:

root@kitploit:~
# ./dnschef.py --fakeip 127.0.0.1 --truedomains thesprawl.org,*.webfaction.com -q
[*] تم بدء DNSChef على الواجهة: 127.0.0.1
[*] استخدام خوادم الأسماء التالية: 8.8.8.8  
[*] طهي الردود لتوجيهها إلى 127.0.0.1 غير مطابقة لـ: *.webfaction.com, thesprawl.org
[00:27:57] 127.0.0.1: توجيه استجابة من النوع 'A' لـ mx9.webfaction.com
[00:28:05] 127.0.0.1: طهي استجابة من النوع 'A' لـ google.com إلى 127.0.0.1

هناك عدة أشياء تحدث في المثال أعلاه. أولاً، لاحظ استخدام علامة البدل (*). جميع النطاقات المطابقة لـ *.webfaction.com سيتم مطابقتها عكسيًا وحلها إلى قيمها الحقيقية. الطلب لـ 'google.com' أعاد 127.0.0.1 لأنه لم يكن على قائمة النطاقات المستبعدة.

ملاحظة: علامات البدل خاصة بالموضع. قناع من النوع *.thesprawl.org سيطابق www.thesprawl.org ولكن ليس www.test.thesprawl.org. ومع ذلك، فإن قناع من النوع ..thesprawl.org سيطابق thesprawl.org و www.thesprawl.org و www.test.thesprawl.org.

ملف التعريفات الخارجية

قد تكون هناك مواقف حيث لا يكون تعريف سجل DNS مزيف واحد لجميع النطاقات المطابقة كافيًا. يمكنك استخدام ملف خارجي بمجموعة من أزواج DOMAIN=RECORD التي تحدد بالضبط أين تريد أن يذهب الطلب.

على سبيل المثال، دعنا ننشئ ملف التعريفات التالي ونطلق عليه اسم dnschef.ini:

root@kitploit:~
[A]
*.google.com=192.0.2.1
thesprawl.org=192.0.2.2
*.wordpress.*=192.0.2.3

لاحظ رأس القسم [A]، فهو يحدد نوع السجل لـ DNSChef. الآن دعنا نلاحظ بعناية إخراج استعلامات متعددة:

root@kitploit:~
# ./dnschef.py --file dnschef.ini -q
[*] تم بدء DNSChef على الواجهة: 127.0.0.1 
[*] استخدام خوادم الأسماء التالية: 8.8.8.8
[+] طهي ردود A للنطاق *.google.com بـ '192.0.2.1'
[+] طهي ردود A للنطاق thesprawl.org بـ '192.0.2.2'
[+] طهي ردود A للنطاق *.wordpress.* بـ '192.0.2.3'
[00:43:54] 127.0.0.1: طهي استجابة من النوع 'A' لـ google.com إلى 192.0.2.1
[00:44:05] 127.0.0.1: طهي استجابة من النوع 'A' لـ www.google.com إلى 192.0.2.1
[00:44:19] 127.0.0.1: طهي استجابة من النوع 'A' لـ thesprawl.org إلى 192.0.2.2
[00:44:29] 127.0.0.1: توجيه استجابة من النوع 'A' لـ www.thesprawl.org
[00:44:40] 127.0.0.1: طهي استجابة من النوع 'A' لـ www.wordpress.org إلى 192.0.2.3
[00:44:51] 127.0.0.1: طهي استجابة من النوع 'A' لـ wordpress.com إلى 192.0.2.3
[00:45:02] 127.0.0.1: توجيه استجابة من النوع 'A' لـ slashdot.org

كل من google.com و www.google.com تطابقا مع الإدخال *.google.com وتم حلهما بشكل صحيح إلى 192.0.2.1. من ناحية أخرى، تم توجيه طلب www.thesprawl.org ببساطة بدلاً من تعديله. أخيرًا، جميع الاختلافات لـ wordpress.com و www.wordpress.org وما إلى ذلك تطابقت مع القناع *.wordpress.* وتم حلها بشكل صحيح إلى 192.0.2.3. وأخيرًا، تم توجيه استعلام slashdot.org غير المحدد ببساطة باستجابة حقيقية.

يمكنك تحديد رؤوس أقسام لجميع أنواع سجلات DNS الأخرى المدعومة بما في ذلك تلك التي لا يتم عرضها صراحةً في سطر الأوامر: [A]، [AAAA]، [MX]، [NS]، [CNAME]، [PTR]، [NAPTR] و [SOA]. على سبيل المثال، دعنا نحدد قسمًا جديدًا [PTR] في ملف 'dnschef.ini':

root@kitploit:~
[PTR]
*.2.0.192.in-addr.arpa=fake.com

دعنا نلاحظ سلوك DNSChef مع هذا النوع الجديد من السجلات:

root@kitploit:~
 ./dnschef.py --file dnschef.ini -q
[sudo] password for iphelix: 
[*] تم بدء DNSChef على الواجهة: 127.0.0.1 
[*] استخدام خوادم الأسماء التالية: 8.8.8.8
[+] طهي ردود PTR للنطاق *.2.0.192.in-addr.arpa بـ 'fake.com'
[00:11:34] 127.0.0.1: طهي استجابة من النوع 'PTR' لـ 1.2.0.192.in-addr.arpa إلى fake.com

وإليك ما قد يراه العميل عند إجراء استعلامات DNS عكسية:

root@kitploit:~
$ host 192.0.2.1 localhost
1.2.0.192.in-addr.arpa domain name pointer fake.com.

تتطلب بعض السجلات تنسيقًا دقيقًا. من الأمثلة الجيدة SOA و NAPTR

root@kitploit:~
[SOA]
*.thesprawl.org=ns.fake.com. hostmaster.fake.com. 1 10800 3600 604800 3600

[NAPTR]
*.thesprawl.org=100 10 U E2U+sip !^.*$!sip:[email protected]! .

راجع ملف dnschef.ini النموذجي للحصول على أمثلة إضافية.

التصفية المتقدمة

يمكنك المزج والمطابقة بين الإدخال من ملف وسطر الأوامر. على سبيل المثال، يستخدم الأمر التالي كلاً من المعاملين --file و --fakedomains:

root@kitploit:~
# ./dnschef.py --file dnschef.ini --fakeip 6.6.6.6 --fakedomains=thesprawl.org,slashdot.org -q
[*] تم بدء DNSChef على الواجهة: 127.0.0.1 
[*] استخدام خوادم الأسماء التالية: 8.8.8.8
[+] طهي ردود A للنطاق *.google.com بـ '192.0.2.1'
[+] طهي ردود A للنطاق thesprawl.org بـ '192.0.2.2'
[+] طهي ردود A للنطاق *.wordpress.* بـ '192.0.2.3'
[*] طهي ردود A لتوجيهها إلى 6.6.6.6 مطابقة لـ: *.wordpress.*, *.google.com, thesprawl.org
[*] طهي ردود A لتوجيهها إلى 6.6.6.6 مطابقة لـ: slashdot.org, *.wordpress.*, *.google.com, thesprawl.org
[00:49:05] 127.0.0.1: طهي استجابة من النوع 'A' لـ google.com إلى 192.0.2.1
[00:49:15] 127.0.0.1: طهي استجابة من النوع 'A' لـ slashdot.org إلى 6.6.6.6
[00:49:31] 127.0.0.1: طهي استجابة من النوع 'A' لـ thesprawl.org إلى 6.6.6.6
[00:50:08] 127.0.0.1: توجيه استجابة من النوع 'A' لـ tor.com

لاحظ أن تعريف thesprawl.org في معامل سطر الأوامر أخذ أولوية على dnschef.ini. قد يكون هذا مفيدًا إذا كنت تريد تجاوز القيم في ملف التكوين. لا يزال slashdot.org يتم حله إلى عنوان IP المزيف لأنه تم تحديده في المعامل --fakedomains. يتم توجيه طلب tor.com ببساطة لأنه لم يتم تحديده في سطر الأوامر أو ملف التكوين.

تكوينات أخرى ====================لأسباب أمنية، يستمع DNSChef على الواجهة المحلية 127.0.0.1 (أو ::1 لـ IPv6) افتراضيًا. يمكنك جعل DNSChef يستمع على واجهة أخرى باستخدام المُعلمة --interface:

root@kitploit:~
# ./dnschef.py --interface 0.0.0.0 -q
[*] DNSChef started on interface: 0.0.0.0
[*] Using the following nameservers: 8.8.8.8 
[*] No parameters were specified. Running in full proxy mode
[00:50:53] 192.0.2.105: proxying the response of type 'A' for thesprawl.org

أو لـ IPv6:

root@kitploit:~
# ./dnschef.py -6 --interface :: -q
[*] Using IPv6 mode.
[*] DNSChef started on interface: ::
[*] Using the following nameservers: 2001:4860:4860::8888
[*] No parameters were specified. Running in full proxy mode
[00:57:46] 2001:db8::105: proxying the response of type 'A' for thesprawl.org

افتراضيًا، يستخدم DNSChef خادم DNS العام من Google لتقديم طلبات الوكيل. ومع ذلك، يمكنك تعريف قائمة مخصصة من خوادم الأسماء باستخدام المُعلمة --nameservers:

root@kitploit:~
# ./dnschef.py --nameservers 4.2.2.1,4.2.2.2 -q
[*] DNSChef started on interface: 127.0.0.1 
[*] Using the following nameservers: 4.2.2.1, 4.2.2.2
[*] No parameters were specified. Running in full proxy mode
[00:55:08] 127.0.0.1: proxying the response of type 'A' for thesprawl.org

من الممكن تحديد منفذ خادم أسماء غير قياسي باستخدام ترميز IP#PORT:

root@kitploit:~
# ./dnschef.py --nameservers 192.0.2.2#5353 -q
[*] DNSChef started on interface: 127.0.0.1 
[*] Using the following nameservers: 192.0.2.2#5353
[*] No parameters were specified. Running in full proxy mode
[02:03:12] 127.0.0.1: proxying the response of type 'A' for thesprawl.org

في نفس الوقت، من الممكن تشغيل DNSChef نفسه على منفذ بديل باستخدام المُعلمة -p port#:

root@kitploit:~
# ./dnschef.py -p 5353 -q
[*] Listening on an alternative port 5353
[*] DNSChef started on interface: 127.0.0.1 
[*] Using the following nameservers: 8.8.8.8
[*] No parameters were specified. Running in full proxy mode

يمكن استخدام بروتوكول DNS عبر UDP (الافتراضي) أو TCP. يقوم DNSChef بتطبيق وضع TCP الذي يمكن تفعيله باستخدام العلامة --tcp.

الهندسة الداخلية

إليك بعض المعلومات عن البنية الداخلية في حال احتجت إلى تكييف الأداة لاحتياجاتك. تم بناء DNSChef على وحدة SocketServer ويستخدم تعدد الخيوط للمساعدة في معالجة طلبات متعددة في وقت واحد. صُممت الأداة للاستماع على منافذ TCP أو UDP (الافتراضي هو المنفذ 53) للطلبات الواردة وإعادة توجيه تلك الطلبات عند الضرورة إلى خادم DNS حقيقي عبر UDP.

تُستخدم مكتبة dnslib الممتازة لتحليل وإعادة تجميع حزم DNS. وهي مفيدة بشكل خاص عند إنشاء حزم استجابة بناءً على الاستعلامات.

يستطيع DNSChef تعديل الاستعلامات لسجلات من النوع "A" و"AAAA" و"MX" و"CNAME" و"NS" و"TXT" و"PTR" و"NAPTR" و"SOA" و"ANY". من السهل جدًا توسيع أو تعديل السلوك لأي سجل. ما عليك سوى إضافة إدخال آخر if qtype == "RECORD TYPE") وإخباره بما يجب الرد به.

استمتع بالأداة وأرسل جميع الطلبات والتعليقات إلى iphelix [at] thesprawl.org.

اختراق سعيد! -بيتر

تنزيل الأداة