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