WHOIS: مين صاحب الـ Domain؟

جارٍ التحميل…

01 / ملخص الدرس

WHOIS: مين صاحب الـ Domain؟

إيه هو WHOIS، وإيه المعلومات اللي بيطلّعها عن الـ domain وصاحبه، وإزاي تقرا نتيجته وتطلّع منها المهم بـ Python.

02 / شرح الدرس مكتوبًا

نص شرح المعلم والكود الذي كتبه ونتيجة تشغيله، بنفس ترتيب الدرس.

أول أداة في الجمع السلبي اسمها WHOIS. أي domain على الإنترنت متسجّل باسم حد، والتسجيل ده عام، أي حد يقدر يشوفه.

WHOIS بيقولّك: مين الـ Registrar، يعني الشركة اللي اتسجّل عندها الـ domain. تاريخ التسجيل وتاريخ الانتهاء. اسم الشركة صاحبة الـ domain، وساعات إيميل وتليفون. والـ Name Servers، يعني مين ماسك الـ DNS بتاعه.

الاستخدام سهل: في الـ terminal تكتب whois، وبعدها اسم الـ domain.

طيب إيه فايدة الكلام ده للـ Pentester؟ الإيميل بيوريك شكل إيميلات الموظفين. الـ Name Servers بتقولّك الـ DNS مستضاف فين. وتاريخ الانتهاء القريب ممكن يبقى فرصة لهجوم. بس خد بالك: شركات كتير بتخبّي البيانات دي بـ Privacy Protection. الـ browser هنا مش بيوصل للإنترنت، فهنشتغل على نتيجة WHOIS حقيقية الشكل، محفوظة في string. نقسم كل سطر عند الـ colon، ونحفظ القيم في dictionary. ولاحظ إن Name Server ممكن يتكرر، علشان كده كل key قيمته list. نشغّل… طلّعنا الـ Registrar، وتاريخ التسجيل، والإيميل، والاتنين Name Servers.

main.py
raw = """Domain Name: EXAMPLE-CORP.COM
Registrar: NameCheap, Inc.
Creation Date: 2015-04-12T10:22:00Z
Registry Expiry Date: 2026-04-12T10:22:00Z
Registrant Organization: Example Corp
Registrant Email: [email protected]
Name Server: NS1.EXAMPLE-CORP.COM
Name Server: NS2.EXAMPLE-CORP.COM
"""

info = {}
for line in raw.splitlines():
    if ": " not in line:
        continue
    key, value = line.split(": ", 1)
    info.setdefault(key.strip(), []).append(value.strip())

for key in ["Registrar", "Creation Date", "Registrant Email", "Name Server"]:
    print(f"{key:18} {info.get(key)}")

المخرجات

Registrar          ['NameCheap, Inc.']
Creation Date      ['2015-04-12T10:22:00Z']
Registrant Email   ['[email protected]']
Name Server        ['NS1.EXAMPLE-CORP.COM', 'NS2.EXAMPLE-CORP.COM']

دورك: خد الإيميل، وقسّمه عند علامة at، واطبع الجزء اللي قبلها. ده أول خيط لشكل أسماء الحسابات.

تمرين

اطبع الجزء اللي قبل @ من info["Registrant Email"][0].

الحل: نشغّل… اسم الحساب admin.

main.py
raw = """Domain Name: EXAMPLE-CORP.COM
Registrar: NameCheap, Inc.
Creation Date: 2015-04-12T10:22:00Z
Registry Expiry Date: 2026-04-12T10:22:00Z
Registrant Organization: Example Corp
Registrant Email: [email protected]
Name Server: NS1.EXAMPLE-CORP.COM
Name Server: NS2.EXAMPLE-CORP.COM
"""

info = {}
for line in raw.splitlines():
    if ": " not in line:
        continue
    key, value = line.split(": ", 1)
    info.setdefault(key.strip(), []).append(value.strip())

for key in ["Registrar", "Creation Date", "Registrant Email", "Name Server"]:
    print(f"{key:18} {info.get(key)}")

email = info["Registrant Email"][0]
print("email user:", email.split("@")[0])

المخرجات

Registrar          ['NameCheap, Inc.']
Creation Date      ['2015-04-12T10:22:00Z']
Registrant Email   ['[email protected]']
Name Server        ['NS1.EXAMPLE-CORP.COM', 'NS2.EXAMPLE-CORP.COM']
email user: admin

الدرس الجاي: الـ DNS وسجلاته، ودي كنز معلومات حقيقي. يلا بينا.

03 / دروس المسار (22)
  1. 01يعني إيه جمع معلومات (Recon)؟
  2. 02سلبي ولا نشط؟ والنطاق القانوني
  3. 03WHOIS: مين صاحب الـ Domain؟انت هنا
  4. 04سجلات DNS: كنز المعلومات
  5. 05اكتشاف الـ Subdomains
  6. 06Certificate Transparency: الشهادات بتتكلم
  7. 07Google Dorking
  8. 08OSINT: الموظفين والإيميلات
  9. 09الـ Metadata: أسرار جُوّه الملفات
  10. 10اكتشاف الأجهزة الشغّالة (Host Discovery)
  11. 11الـ Port Scanning بيشتغل إزاي؟
  12. 12Nmap: البداية
  13. 13أنواع الـ Scan والسرعة في Nmap
  14. 14كشف الخدمات والإصدارات ونظام التشغيل
  15. 15NSE Scripts وحفظ النتايج
  16. 16تعداد الويب: الـ Headers والتكنولوجيا
  17. 17الـ Directory Brute Force
  18. 18تعداد SMB
  19. 19تعداد خدمات تانية: FTP و DNS و SNMP وغيرهم
  20. 20تنظيم نتايج الـ Recon
  21. 21أتمتة الـ Recon بـ Python
  22. 22مراجعة شاملة وخطة Recon