
خادم DNS "خبيث" لتنفيذ هجمات DNS Rebinding أثناء التشغيل (مثال عام يعمل على rebind.network:53)
خادم DNS خبيث لتنفيذ هجمات DNS Rebinding بسرعة. يتيح لك whonow تحديد استجابات DNS وقواعد إعادة الربط ديناميكيًا باستخدام طلبات النطاق نفسها.
# respond to DNS queries for this domain with 34.192.228.43 the first time
# it is requested and then 192.168.1.1 every time after that
A.34.192.228.43.1time.192.168.1.1.forever.rebind.network
# respond first with 34.192.228.43, then 192.168.1.1 the next five times,
# and then start all over again (1, then 5, forever...)
A.34.192.228.43.1time.192.168.1.1.5times.repeat.rebind.network
ما هو رائع في قواعد إعادة ربط DNS الديناميكية هو أنك لا تحتاج إلى تشغيل خادم DNS خبيث خاص بك لبدء استغلال سياسة نفس المصدر للمتصفح. بدلاً من ذلك، يمكن للجميع مشاركة نفس خادم whonow العام الذي يعمل على المنفذ 53 من rebind.network.
ملاحظة: يجب عليك تضمين UUIDs (مثل a06a5856-1fff-4415-9aa2-823230b05826) كمجال فرعي في كل استعلام DNS إلى خادم . تم حذفها من الأمثلة في ملف README هذا للاختصار، ولكن افترض أن الطلبات إلى يجب أن تكون . راجع قسم لمزيد من المعلومات حول السبب.
whonow*.rebind.network*.a06a5856-1fff-4415-9aa2-823230b05826.rebind.networkإخلاء مسؤولية: هذا البرنامج مخصص للأغراض التعليمية فقط. لا ينبغي استخدام هذا البرنامج في الأنشطة غير القانونية. المؤلف غير مسؤول عن استخدامه. لا تكن أحمق.
جمال whonow هو أنه يمكنك تحديد سلوك استجابات DNS عبر النطاقات الفرعية في اسم النطاق نفسه. باستخدام بضع كلمات مفتاحية بسيطة فقط: A و (n)times و forever و repeat، يمكنك تحديد سلوك DNS معقد وقوي.
whonowA.<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 منفصلة عن بعضها البعض. راجع المحاذير لمزيد من المعلومات.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 34.192.228.43 the first time, then whatever `whonow --default-address`
# is set to forever after that (default: 127.0.0.1)
A.34.192.228.43.1time.rebind.network
يمكن أن يحتوي كل تسمية [نطاق فرعي] على صفر إلى 63 حرفًا... لا يجوز أن يتجاوز اسم النطاق الكامل طول 253 حرفًا في تمثيله النصي. (من صفحة DNS على ويكيبيديا)
بالإضافة إلى ذلك، لا يجوز أن يكون هناك أكثر من 127 تسمية/نطاق فرعي.
كل طلب باسم نطاق فريد إلى 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
# you can also run it with more logging to stdout and save DNS activity to CSV
whonow --port 53 --logfile log.csv --verbose

إذا كان ذلك ☝ كثيرًا من المتاعب، فلا تتردد في استخدام خادم whonow العام الذي يعمل على المنفذ 53 من rebind.network🌐.
$ whonow --help
usage: whonow [-h] [-v] [-p PORT] [-d DEFAULT_ANSWER] [-b MAX_RAM_DOMAINS]
[-l LOGFILE] [-m]
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).
-l LOGFILE, --logfile LOGFILE
Log to CSV file (default: false)
-m, --verbose Log request timestamp and sender IP address to stdout
(default: false)
يجب أن يكون خادم whonow قيد التشغيل على localhost:15353 لإجراء الاختبارات في test.js
# in one terminal
whonow -p 15353
# in another terminal
cd path/to/node_modules/whonow
npm test