saline আমি কিভাবে সব DNS রেকর্ড তালিকাভুক্ত করতে পারেন?




dns কি? (6)

  1. একটি জোনের স্থানান্তর আপনার সমস্ত সাবডোমেন রেকর্ড আছে তা নিশ্চিত করার একমাত্র উপায়। যদি DNS সঠিকভাবে কনফিগার করা থাকে তবে আপনি সাধারণত বাহ্যিক অঞ্চল স্থানান্তর করতে সক্ষম হবেন না।

  2. Scans.io প্রোজেক্টটিতে DNS রেকর্ডগুলির একটি ডেটাবেস রয়েছে যা সাবডোমেনগুলির জন্য ডাউনলোড এবং অনুসন্ধান করা যেতে পারে। এটি 87 গিগাবাইট DNS ডেটা ডাউনলোড করার প্রয়োজন, বিকল্পভাবে আপনি https://hackertarget.com/find-dns-host-records/ এ ডেটা অনলাইন অনুসন্ধানের চেষ্টা করতে পারেন।

https://code.i-harness.com

একটি ডোমেইন জন্য সব DNS রেকর্ড তালিকাভুক্ত করতে পারেন কি কোন উপায় আছে?

আমি ডিগ এবং nslookup যেমন জিনিস সম্পর্কে জানি কিন্তু তারা শুধুমাত্র এতদূর যেতে। উদাহরণস্বরূপ, যদি আমি একটি সাবডোমেন একটি রেকর্ড পেয়েছি

test A somedomain.co.uk

তারপরে আমি বিশেষভাবে এটির জন্য জিজ্ঞাসা না করা পর্যন্ত, উদাহরণস্বরূপ।

dig any test.somedomain.co.uk

আমি এটা দেখতে পাচ্ছি না।

সব DNS রেকর্ড কি ঠিক আছে দেখতে কোন উপায় আছে (DNS পরিচালকের কাছে গিয়ে রেকর্ডগুলি দেখতে ছাড়া)?


আপনি কি চান একটি জোন স্থানান্তর বলা হয় । আপনি dig -t axfr ব্যবহার করে একটি জোন স্থানান্তর অনুরোধ করতে পারেন।

একটি অঞ্চল একটি ডোমেন এবং নীচের সমস্ত ডোমেন যা অন্য সার্ভারে প্রতিনিধিত্ব করা হয় না।

উল্লেখ্য যে অঞ্চল স্থানান্তর সবসময় সমর্থিত হয় না। তারা স্বাভাবিক সন্ধানে ব্যবহার করা হয় না, শুধুমাত্র সার্ভারগুলির মধ্যে DNS ডেটা প্রতিলিপি করা হয়; তবে এর জন্য অন্যান্য প্রোটোকলগুলি ব্যবহার করা যেতে পারে (যেমন ssh এর উপর rsync হিসাবে), নামগুলি প্রকাশ করা থেকে সুরক্ষা ঝুঁকি থাকতে পারে এবং জেনন স্থানান্তর প্রতিক্রিয়া জেনারেট DNS সন্ধানগুলির চেয়ে উত্পন্ন এবং প্রেরণের জন্য আরো বেশি খরচ করে।


একটি উদাহরণে একটি ডোমেইন জন্য সব DNS রেকর্ড পেতে কোন সহজ উপায় নেই। উদাহরণস্বরূপ, আপনি শুধুমাত্র নির্দিষ্ট রেকর্ড দেখতে পারেন, যদি আপনি একটি নির্দিষ্ট ডোমেনের জন্য একটি রেকর্ড দেখতে চান তবে আপনি কমান্ডটি ব্যবহার করতে পারেন: dig a (record type) domain.com। এই ডোমেনের জন্য আপনি যে সমস্ত অন্যান্য রেকর্ড দেখতে চান তার জন্য এটি একই।

যদি আপনি কমান্ড লাইন ইন্টারফেসের সাথে পরিচিত না হন তবে আপনি mxtoolbox.com মত একটি সাইট ব্যবহার করতে পারেন। Wich একটি ডোমেন রেকর্ড পাওয়ার জন্য খুব সহজ হাতিয়ার।

আমি এই আপনার প্রশ্নের উত্তর আশা করি।


জোনের স্থানান্তর করার ক্ষমতা অনুপস্থিতিতে, আমি এই ছোট bash স্ক্রিপ্ট লিখেছিলাম, dg :

#!/bin/bash
COMMON_SUBDOMAINS=(www mail smtp pop imap blog en ftp ssh login)
if [[ "$2" == "x" ]]; then
    dig +nocmd "$1" +noall +answer "${3:-any}"
    wild_ips="$(dig +short "*.$1" "${3:-any}" | tr '\n' '|')"
    wild_ips="${wild_ips%|}"
    for sub in "${COMMON_SUBDOMAINS[@]}"; do
        dig +nocmd "$sub.$1" +noall +answer "${3:-any}"
    done | grep -vE "${wild_ips}"
    dig +nocmd "*.$1" +noall +answer "${3:-any}"
else
    dig +nocmd "$1" +noall +answer "${2:-any}"
fi

এখন আমি dg example.com ব্যবহার করি, একটি সুন্দর, DNS রেকর্ডগুলির পরিষ্কার তালিকা পেতে, অথবা dg example.com x অন্যান্য জনপ্রিয় সাবডোমেনগুলির গুচ্ছ অন্তর্ভুক্ত করতে।

grep -vE "${wild_ips}" এমন রেকর্ডগুলি ফিল্টার করে যা একটি ওয়াইল্ডকার্ড DNS এন্ট্রির ফলাফল হতে পারে যেমন * 10800 IN A 1.38.216.82 । অন্যথায়, একটি ওয়াইল্ডকার্ড এন্ট্রি এটি প্রদর্শিত হবে যেন প্রতিটি $COMMON_SUBDOMAN জন্য রেকর্ড $COMMON_SUBDOMAN

দ্রষ্টব্য: এটি ANY প্রশ্নের উপর নির্ভর করে, যা ক্লাউডফ্লেয়ারের মতো কিছু DNS প্রদানকারীর দ্বারা অবরুদ্ধ


host -a ভাল host -a অনুরূপ কাজ করে।

উদাহরণ:

$ host -a google.com
Trying "google.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10403
;; flags: qr rd ra; QUERY: 1, ANSWER: 18, AUTHORITY: 0, ADDITIONAL: 0


;; QUESTION SECTION:
;google.com.            IN  ANY

;; ANSWER SECTION:
google.com.     1165    IN  TXT "v=spf1 include:_spf.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all"
google.com.     53965   IN  SOA ns1.google.com. dns-admin.google.com. 2014112500 7200 1800 1209600 300
google.com.     231 IN  A   173.194.115.73
google.com.     231 IN  A   173.194.115.78
google.com.     231 IN  A   173.194.115.64
google.com.     231 IN  A   173.194.115.65
google.com.     231 IN  A   173.194.115.66
google.com.     231 IN  A   173.194.115.67
google.com.     231 IN  A   173.194.115.68
google.com.     231 IN  A   173.194.115.69
google.com.     231 IN  A   173.194.115.70
google.com.     231 IN  A   173.194.115.71
google.com.     231 IN  A   173.194.115.72
google.com.     128 IN  AAAA    2607:f8b0:4000:809::1001
google.com.     40766   IN  NS  ns3.google.com.
google.com.     40766   IN  NS  ns4.google.com.
google.com.     40766   IN  NS  ns1.google.com.
google.com.     40766   IN  NS  ns2.google.com.

Josh উত্তর আমি উন্নত করেছি। আমি লক্ষ্য করেছি যে dig কেবলমাত্র অনুসন্ধানকৃত নামসভার্সের ক্যাশে উপস্থিত এন্ট্রিগুলি দেখায়, সুতরাং SOA থেকে (ডিফল্ট নামসভারভারের উপর নির্ভর করার পরিবর্তে) কোনও আধিকারিক নাম সার্ভারটি টেনে আনতে ভাল। আমি ওয়াইল্ডকার্ড আইপি ফিল্টারিং নিষ্ক্রিয় করেছি কারণ সাধারণত আমি সাধারণত সেটআপ সঠিকতা আরো আগ্রহী।

নতুন স্ক্রিপ্টটি -x আউটপুট এবং একটি নির্দিষ্ট এনএসএস সার্ভার চয়ন করার জন্য একটি -s NS জন্য একটি- -x যুক্তি নেয়: dig -x example.com

#!/bin/bash
set -e; set -u
COMMON_SUBDOMAINS="www mail mx a.mx smtp pop imap blog en ftp ssh login"
EXTENDED=""

while :; do case "$1" in
  --) shift; break ;;
  -x) EXTENDED=y; shift ;;
  -s) NS="$2"; shift 2 ;;
  *) break ;;
esac; done
DOM="$1"; shift
TYPE="${1:-any}"

test "${NS:-}" || NS=$(dig +short  SOA "$DOM" | awk '{print $1}')
test "$NS" && NS="@$NS"

if test "$EXTENDED"; then
  dig +nocmd $NS "$DOM" +noall +answer "$TYPE"
  wild_ips=$(dig +short "$NS" "*.$DOM" "$TYPE" | tr '\n' '|')
  wild_ips="${wild_ips%|}"
  for sub in $COMMON_SUBDOMAINS; do
    dig +nocmd $NS "$sub.$DOM" +noall +answer "$TYPE"
  done | cat  #grep -vE "${wild_ips}"
  dig +nocmd $NS "*.$DOM" +noall +answer "$TYPE"
else
  dig +nocmd $NS "$DOM" +noall +answer "$TYPE"
fi