Whonow - خادم DNS "الخبيثة" لتنفيذ هجمات إعادة توجيه DNS على الطيران (تشغيل المثيل العام على Rebind.Network:53)


خادم DNS الخبيث لتنفيذ هجمات DNS Rebinding على الطاير. whonowيتيح لك تحديد استجابات DNS وقواعد rebind بشكل ديناميكي باستخدام طلبات النطاق نفسها .
# respond to DNS queries for this domain with 52.23.194.42 the first time
# it is requested and then 192.168.1.1 every time after that
A.52.23.194.42.1time.192.168.1.1.forever.rebind.network

# respond first with 52.23.194.42, then 192.168.1.1 the next five times,
# and then start all over again (1, then 5, forever...)
A.52.23.194.42.1time.192.168.1.1.5times.repeat.rebind.network
ما هو عظيم في قواعد إعادة تسمية DNS الديناميكية هو أنه ليس عليك أن تقوم بتدوير خادم DNS الخبيث الخاص بك للبدء في استغلال سياسة نفس المصدر للمتصفح بدلاً من ذلك ، يمكن للجميع مشاركة نفسwhonowالخادم العام الذي يعمل على المنفذ 53 منrebind.network
ملاحظة : يجب أن تقوم بتضمين UUID (على سبيل المثال a06a5856-1fff-4415-9aa2-823230b05826كنطاق فرعي في كل بحث DNS إلى whonowخادم. تم حذف هذه الأمثلة من هذا في README للإيجاز ، لكن تفترض طلبات *.rebind.networkيجب أن تكون *.a06a5856-1fff-4415-9aa2-823230b05826.rebind.networkراجع قسم Gotcha
 لمزيد من المعلومات عن السبب.

Subdomains = قواعد Rebind
إن جمالكwhonowهو أنه يمكنك تعريف سلوك استجابات DNS عبر النطاقات الفرعية في اسم المجال نفسه. باستخدام عدد قليل من الكلمات الرئيسية البسيطة:A،(n)timesوforever، وrepeat، يمكنك تحديد سلوك DNS المعقد والقوي. 

تشريح whonowالطلب
A.<ip-address>.<rule>[.<ip-address>.<rule>[.<ip-address>.<rule>]][.uuid/random-string].example.com
  • A: نوع طلب DNS. Aيتم دعم السجلات حاليًا فقط ، ولكن AAAAيجب أن يتم طرحها قريبًا.
  • <ip-address>: عنوان IPv4 (ipv6 قريبا) مع كل ثماني بتفاصيله بنقطة (على سبيل المثال 192.168.1.1.
  • <rule>: واحد من ثلاثة قواعد
    • (n)time[s]: عدد المرات التي يجب أن يرد فيها خادم DNS بعنوان IP السابق. يقبل كل من صيغ الجمع والمفرد (على سبيل المثال 1time, 3times, 5000times)
    • forever: الاستجابة مع عنوان IP السابق إلى الأبد.
    • repeat: تكرار مجموعة القواعد بأكملها بدءًا من البداية.
  • [uuid/random-string]: سلسلة عشوائية للحفاظ على هجمات DNS Rebind ضد عناوين IP نفسها منفصلة عن بعضها البعض. انظر Gotchas لمزيد من المعلومات.
  • example.com: اسم المجال الذي يشير إلى whonowخادم الأسماء ، مثل rebind.network:53 whonowمثيل متاح للجمهور .
يمكن تقييد القواعد معًا لتشكيل سلوك استجابة معقد. 

أمثلة
# always respond with 192.168.1.1. This isn't really DNS rebinding
# but it still works
A.192.168.1.1.forever.rebind.network

# alternate between localhost and 10.0.0.1 forever
A.127.0.0.1.1time.10.0.0.1.1time.repeat.rebind.network

# first respond with 192.168.1.1 then 192.168.1.2. Now respond 192.168.1.3 forever.
A.192.168.1.1.1time.192.168.1.2.2times.192.168.1.3.forever.rebind.network

# respond with 52.23.194.42 the first time, then whatever `whonow --default-address`
# is set to forever after that (default: 127.0.0.1)
A.52.23.194.42.1time.rebind.network

محددات
 قد تحتوي كل تسمية [نطاق فرعي] على صفر إلى 63 حرفًا ... لا يجوز أن يتجاوز اسم النطاق الكامل 253 حرفًا في تمثيل النص. (من صفحة DNS ويكيبيديا )
بالإضافة إلى ذلك ، قد لا يكون هناك أكثر من 127 علامة / نطاقًا فرعيًا. 

Gotchas

استخدم أسماء نطاقات
فريدة كل طلب اسم مجال فريد whonowلإنشاء برنامج صغير لحفظ الحالة في ذاكرة الوصول العشوائي للخادم. في المرة التالية التي يتم فيها طلب اسم المجال زيادة العداد البرنامج وقد يتم تحور الدولة. جميع أسماء النطاقات الفريدة هي مثيلاتها الفريدة الخاصة بالبرنامج .لتجنب التعارض مع المستخدمين الآخرين أو زيادة حالة برنامج اسم نطاقك دون قصد ، يجب إضافة نطاق فرعي UUID بعد تعريفات القاعدة. لا ينبغي أبدا إعادة استخدام هذا UUID.
# this
A.127.0.0.1.1time.10.0.0.1.1time.repeat.8f058b82-4c39-4dfe-91f7-9b07bcd7fbd4.rebind.network

# not this
A.127.0.0.1.1time.10.0.0.1.1time.repeat.rebind.network

--max-ram-domains
يتم تخزين حالة البرنامج المرتبطة بكل اسم مجال فريد whonowفي RAM. لتجنب نفاد ذاكرة الوصول العشوائي ، يتم وضع الحد الأعلى على عدد المجالات الفريدة التي يمكن إدارة حالة البرنامج في نفس الوقت. بشكل افتراضي ، يتم تعيين هذه القيمة إلى 10،000،000 ، ولكن يمكن تهيئتها باستخدام --max-ram-domainsبمجرد الوصول إلى هذا الحد ، ستتم إزالة أسماء النطاقات وحالة البرنامج المحفوظة بالترتيب الذي تمت إضافته به (FIFO). 

تشغيل الخاص بك whonowالخادم
لتشغيل الخاص بك whonowالخادم في السحابة استخدام لوحة المشرف نطاق مزود اسم لتكوين خادم الأسماء لافتا مخصص لVPS الخاص بك. ثم قم بتثبيت whonowذلك VPS وتأكد من تشغيله على المنفذ 53 (منفذ DNS الافتراضي) ومن الوصول إلى المنفذ 53 للإنترنت.
# install
npm install --cli -g whonow@latest

# run it!
whonow --port 53

استعمال
$ whonow --help
usage: whonow [-h] [-v] [-p PORT] [-d DEFAULT_ANSWER] [-b MAX_RAM_DOMAINS]

A malicious DNS server for executing DNS Rebinding attacks on the fly.

Optional arguments:
  -h, --help            Show this help message and exit.
  -v, --version         Show program's version number and exit.
  -p PORT, --port PORT  What port to run the DNS server on (default: 53).
  -d DEFAULT_ANSWER, --default-answer DEFAULT_ANSWER
                        The default IP address to respond with if no rule is
                        found (default: "127.0.0.1").
  -b MAX_RAM_DOMAINS, --max-ram-domains MAX_RAM_DOMAINS
                        The number of domain name records to store in RAM at
                        once. Once the number of unique domain names queried
                        surpasses this number domains will be removed from
                        memory in the order they were requested. Domains that
                        have been removed in this way will have their program
                        state reset the next time they are queried (default:
                        10000000).

اختبار
Awhonowالملقم يجب أن تكون قيد التشغيل علىlocalhost:15353أداء الاختبارات فيtest.js
# in one terminal
whonow -p 15353
# in another terminal
cd path/to/node_modules/whonow
npm test




Commentaires

Posts les plus consultés de ce blog