شرح الـ nslookup و digl

nslookup (Name Server Lookup)

يعني إيه nslookup؟

أداة بسيطة لسؤال DNS عن معلومات النطاقات. موجودة على كل أنظمة التشغيل (Windows, Linux, Mac).

الاستخدام الأساسي

1. معرفة IP أي موقع

nslookup google.com

# النتيجة:
Server:  8.8.8.8
Address:  8.8.8.8#53

Non-authoritative answer:
Name:    google.com
Address: 142.250.185.46

الشرح:

  • Server: الـ DNS Server اللي استخدمته (8.8.8.8 = Google DNS)
  • Non-authoritative answer: يعني الإجابة من Cache، مش من السيرفر الأصلي
  • Address: الـ IP بتاع google.com

2. استخدام DNS Server معين

# استخدام Cloudflare DNS بدل الافتراضي
nslookup google.com 1.1.1.1

# النتيجة:
Server:  1.1.1.1
Address:  1.1.1.1#53

Non-authoritative answer:
Name:    google.com
Address: 142.250.185.46

3. الوضع التفاعلي (Interactive Mode)

# ادخل لـ nslookup بدون parameters
nslookup

> google.com
Server:  8.8.8.8
Address:  8.8.8.8#53

Non-authoritative answer:
Name:    google.com
Address: 142.250.185.46

> facebook.com
Server:  8.8.8.8
Address:  8.8.8.8#53

Non-authoritative answer:
Name:    facebook.com
Address: 157.240.241.35

> exit

أنواع الاستعلامات

1. A Record (IPv4)

nslookup -type=A google.com

# أو في Interactive Mode:
nslookup
> set type=A
> google.com

2. AAAA Record (IPv6)

nslookup -type=AAAA google.com

# النتيجة:
google.com has AAAA address 2a00:1450:4001:82a::200e

3. MX Record (Mail Servers)

nslookup -type=MX google.com

# النتيجة:
google.com  mail exchanger = 10 smtp.google.com.

الرقم (10) هو الأولوية - كل ما الرقم أقل، كل ما السيرفر أهم.

4. NS Record (Name Servers)

nslookup -type=NS google.com

# النتيجة:
google.com  nameserver = ns1.google.com.
google.com  nameserver = ns2.google.com.
google.com  nameserver = ns3.google.com.
google.com  nameserver = ns4.google.com.

5. TXT Record

nslookup -type=TXT google.com

# النتيجة:
google.com  text = "v=spf1 include:_spf.google.com ~all"
google.com  text = "google-site-verification=..."

6. SOA Record (Start of Authority)

nslookup -type=SOA google.com

# النتيجة:
google.com
    origin = ns1.google.com
    mail addr = dns-admin.google.com
    serial = 123456789
    refresh = 900
    retry = 900
    expire = 1800
    minimum = 60

7. ANY Record (كل الأنواع)

nslookup -type=ANY google.com

# هيجيب كل أنواع الـ Records المتاحة

Reverse DNS Lookup

معرفة الاسم من الـ IP:

nslookup 142.250.185.46

# النتيجة:
46.185.250.142.in-addr.arpa  name = sof02s46-in-f14.1e100.net.

مثال عملي - فحص موقع مشبوه

# 1. معرفة IP الموقع
nslookup suspicious-site.com

# 2. عمل Reverse DNS للـ IP
nslookup 1.2.3.4

# 3. فحص Mail Servers
nslookup -type=MX suspicious-site.com

# 4. فحص TXT records (ممكن تلاقي معلومات مهمة)
nslookup -type=TXT suspicious-site.com

dig (Domain Information Groper)

يعني إيه dig؟

أداة أقوى وأكثر مرونة من nslookup. متوفرة على Linux و Mac (على Windows محتاج تنزلها منفصلة).

ليه dig أفضل من nslookup؟

✓ معلومات أكثر تفصيلاً
✓ Output منظم وسهل القراءة
✓ خيارات متقدمة أكتر
✓ أفضل للـ Scripting
✓ الأداة المفضلة للمحترفين

الاستخدام الأساسي

1. استعلام بسيط

dig google.com

# النتيجة:
; <<>> DiG 9.16.1 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
google.com.             300     IN      A       142.250.185.46

;; Query time: 23 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon Jan 06 15:30:15 EET 2026
;; MSG SIZE  rcvd: 55

شرح الأقسام:

HEADER:
  - opcode: QUERY (نوع الطلب)
  - status: NOERROR (مفيش أخطاء)
  - id: 12345 (رقم تعريف الطلب)

FLAGS:
  - qr: Query Response (ده رد على استعلام)
  - rd: Recursion Desired (عايز DNS يدور لحد ما يلاقي)
  - ra: Recursion Available (الـ DNS يقدر يعمل Recursion)

QUESTION SECTION:
  - google.com. IN A (السؤال: عايز A Record لـ google.com)

ANSWER SECTION:
  - google.com. 300 IN A 142.250.185.46
    ↑ الاسم  ↑TTL ↑Type ↑ الـ IP

Query time: كام وقت اخد الاستعلام
SERVER: أنهي DNS Server استخدمناه

2. إجابة مختصرة (+short)

dig +short google.com

# النتيجة:
142.250.185.46

بس! مفيش تفاصيل، بس الـ IP.

3. استخدام DNS Server معين

dig @1.1.1.1 google.com

# استخدام Cloudflare DNS
dig @8.8.8.8 google.com

# استخدام Google DNS

أنواع الاستعلامات

1. A Record

dig google.com A

# أو
dig google.com
# (A هو الافتراضي)

2. AAAA Record (IPv6)

dig google.com AAAA

# النتيجة:
;; ANSWER SECTION:
google.com.  300  IN  AAAA  2a00:1450:4001:82a::200e

3. MX Record

dig google.com MX

# النتيجة:
;; ANSWER SECTION:
google.com.  3600  IN  MX  10  smtp.google.com.

4. NS Record

dig google.com NS

# النتيجة:
;; ANSWER SECTION:
google.com.  21600  IN  NS  ns1.google.com.
google.com.  21600  IN  NS  ns2.google.com.
google.com.  21600  IN  NS  ns3.google.com.
google.com.  21600  IN  NS  ns4.google.com.

5. TXT Record

dig google.com TXT

# النتيجة:
;; ANSWER SECTION:
google.com.  3600  IN  TXT  "v=spf1 include:_spf.google.com ~all"
google.com.  3600  IN  TXT  "google-site-verification=..."

6. SOA Record

dig google.com SOA

# النتيجة:
;; ANSWER SECTION:
google.com.  60  IN  SOA  ns1.google.com. dns-admin.google.com. 123456789 900 900 1800 60

7. ANY Record

dig google.com ANY

# هيجيب كل أنواع الـ Records

Reverse DNS Lookup

dig -x 142.250.185.46

# النتيجة:
;; ANSWER SECTION:
46.185.250.142.in-addr.arpa. 86400 IN PTR sof02s46-in-f14.1e100.net.

خيارات متقدمة

1. +trace (تتبع المسار الكامل)

dig +trace google.com

# النتيجة:
.                       518400  IN  NS  a.root-servers.net.
.                       518400  IN  NS  b.root-servers.net.
...                             (Root Servers)

com.                    172800  IN  NS  a.gtld-servers.net.
com.                    172800  IN  NS  b.gtld-servers.net.
...                             (.com TLD Servers)

google.com.             21600   IN  NS  ns1.google.com.
google.com.             21600   IN  NS  ns2.google.com.
...                             (Google's Name Servers)

google.com.             300     IN  A   142.250.185.46
                                (الإجابة النهائية)

ده بيوريك الرحلة الكاملة من Root Servers لحد الـ IP!

2. +noall +answer (إجابة مبسطة)

dig +noall +answer google.com

# النتيجة:
google.com.  300  IN  A  142.250.185.46

بس الإجابة، بدون أي تفاصيل إضافية.

3. +nocmd +nostats (إخفاء معلومات إضافية)

dig +nocmd +nostats google.com

# هيخفي السطور الأولى والأخيرة

4. -4 أو -6 (إجبار IPv4 أو IPv6)

dig -4 google.com  # استخدام IPv4 فقط
dig -6 google.com  # استخدام IPv6 فقط

5. +dnssec (فحص DNSSEC)

dig +dnssec google.com

# هيوريك إذا كان الموقع بيستخدم DNSSEC للحماية

حالات استخدام عملية

1. فحص موقع جديد

# nslookup - سريع
nslookup example.com

# dig - مفصل
dig example.com
dig example.com MX
dig example.com NS
dig example.com TXT

2. اكتشاف Subdomains

# فحص Subdomain معين
dig www.example.com
dig api.example.com
dig admin.example.com

# مع nslookup
nslookup www.example.com
nslookup api.example.com

3. فحص Mail Servers

# nslookup
nslookup -type=MX gmail.com

# dig
dig gmail.com MX +short

4. التحقق من DNS Propagation

لما تغير DNS، عايز تتأكد إنه انتشر:

# فحص من DNS servers مختلفة
dig @8.8.8.8 example.com +short      # Google
dig @1.1.1.1 example.com +short      # Cloudflare
dig @208.67.222.222 example.com +short  # OpenDNS

# لو كل السيرفرات بترد بنفس الـ IP، يبقى انتشر

من ناحية السيكيورتي

1. Zone Transfer Attack

محاولة سحب كل DNS records:

# معرفة Name Servers الأول
dig example.com NS +short

# النتيجة:
ns1.example.com.
ns2.example.com.

# محاولة Zone Transfer
dig @ns1.example.com example.com AXFR

# لو الـ DNS مش محمي هيطلعلك كل الـ subdom
;; ANSWER SECTION:
example.com.       86400   IN   SOA   ...
www.example.com.   86400   IN   A     1.2.3.4
admin.example.com. 86400   IN   A     1.2.3.5
api.example.com.   86400   IN   A     1.2.3.6
vpn.example.com.   86400   IN   A     1.2.3.7
...

2. DNS Enumeration

جمع معلومات عن الهدف:

# 1. Name Servers
dig target.com NS

# 2. Mail Servers
dig target.com MX

# 3. TXT Records (ممكن فيها معلومات مهمة)
dig target.com TXT

# 4. SOA Record (معلومات إدارية)
dig target.com SOA

# 5. Subdomains
dig www.target.com
dig mail.target.com
dig ftp.target.com
dig vpn.target.com

3. كشف DNS Spoofing

# فحص نفس الموقع من DNS servers مختلفة
dig @8.8.8.8 example.com A +short
dig @1.1.1.1 example.com A +short
dig @9.9.9.9 example.com A +short

# لو النتائج مختلفة، ممكن يكون في Spoofing

4. DNSSEC Validation

# فحص إذا كان الموقع محمي بـ DNSSEC
dig +dnssec example.com

# لو شفت RRSIG في الإجابة، يعني في DNSSEC
;; ANSWER SECTION:
example.com.  3600  IN  A  1.2.3.4
example.com.  3600  IN  RRSIG  A 8 2 3600 ...

5. Reverse DNS للتحقق من السيرفرات

# عندك IP سيرفر مشبوه
dig -x 1.2.3.4

# لو الـ Reverse DNS مش منطقي، ممكن يكون سيرفر خبيث
;; ANSWER SECTION:
4.3.2.1.in-addr.arpa.  86400  IN  PTR  malicious-server.evil.com.

سكريبتات عملية

1. فحص موقع شامل

#!/bin/bash
# DNS Full Scan

DOMAIN=$1

echo "=== DNS Records for $DOMAIN ==="
echo ""

echo "A Records:"
dig +short $DOMAIN A

echo ""
echo "AAAA Records:"
dig +short $DOMAIN AAAA

echo ""
echo "MX Records:"
dig +short $DOMAIN MX

echo ""
echo "NS Records:"
dig +short $DOMAIN NS

echo ""
echo "TXT Records:"
dig +short $DOMAIN TXT

الاستخدام:

chmod +x dns-scan.sh
./dns-scan.sh google.com

2. مقارنة DNS من عدة سيرفرات

#!/bin/bash
# DNS Comparison

DOMAIN=$1

echo "=== DNS Comparison for $DOMAIN ==="
echo ""

echo "Google DNS (8.8.8.8):"
dig @8.8.8.8 $DOMAIN +short

echo ""
echo "Cloudflare DNS (1.1.1.1):"
dig @1.1.1.1 $DOMAIN +short

echo ""
echo "OpenDNS (208.67.222.222):"
dig @208.67.222.222 $DOMAIN +short

echo ""
echo "Quad9 (9.9.9.9):"
dig @9.9.9.9 $DOMAIN +short

3. Subdomain Brute Force

#!/bin/bash
# Simple Subdomain Bruteforce

DOMAIN=$1
WORDLIST="subdomains.txt"  # www, mail, ftp, admin, api, ...

while read SUB; do
    RESULT=$(dig +short $SUB.$DOMAIN)
    if [ -n "$RESULT" ]; then
        echo "[+] Found: $SUB.$DOMAIN$RESULT"
    fi
done < $WORDLIST

نصائح واختصارات

Aliases مفيدة

أضف دول في .bashrc أو .zshrc:

# Dig shortcuts
alias digs='dig +short'
alias digt='dig +trace'
alias diga='dig +noall +answer'

# مثال:
digs google.com          # بدل dig +short google.com
digt google.com          # بدل dig +trace google.com
diga google.com          # بدل dig +noall +answer google.com

One-Liners مفيدة

# جيب كل الـ IPs لموقع
dig +short example.com A | grep -v '\.$'

# جيب أول IP بس
dig +short example.com A | head -1

# فحص عدة مواقع
for domain in google.com facebook.com twitter.com; do
    echo "$domain: $(dig +short $domain A)"
done

# حفظ النتائج في ملف
dig example.com > dns-results.txt

# فحص Reverse DNS لعدة IPs
for ip in 1.2.3.4 5.6.7.8; do
    dig -x $ip +short
done

خلاصة

متى تستخدم nslookup؟

✓ استخدام سريع ومباشر
✓ على Windows (موجود افتراضياً)
✓ مش محتاج تفاصيل كتير
✓ للمبتدئين

متى تستخدم dig؟

✓ تحليل عميق
✓ Troubleshooting DNS
✓ Security Testing
✓ Scripting & Automation
✓ احتراف الـ Networking

الأوامر الأساسية

nslookup:

nslookup example.com              # استعلام بسيط
nslookup -type=MX example.com     # Mail servers
nslookup example.com 1.1.1.1      # DNS معين

dig:

dig example.com                   # استعلام مفصل
dig +short example.com            # إجابة مختصرة
dig +trace example.com            # تتبع المسار
dig @8.8.8.8 example.com          # DNS معين
dig example.com MX                # نوع معين
dig -x 1.2.3.4                    # Reverse DNS

من ناحية السيكيورتي

  • استخدمهم في Reconnaissance (جمع المعلومات)
  • كشف Subdomains المخفية
  • التحقق من DNS Spoofing
  • محاولة Zone Transfer
  • فحص DNSSEC