اكتشاف الأجهزة الشغّالة (Host Discovery)

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

01 / ملخص الدرس

اكتشاف الأجهزة الشغّالة (Host Discovery)

إزاي تعرف أنهي أجهزة شغّالة في الشبكة بـ Ping Sweep و ARP و Nmap -sn، وليه الـ ping لوحده مش كفاية، وتعمل sweep بسيط بـ Python.

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

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

دلوقتي هنبدأ الجمع النشط، يعني هنبعت packets للهدف. وأول سؤال: الـ network دي فيها كام جهاز شغّال؟ ومين هم؟

الطريقة الأبسط اسمها Ping Sweep: تبعت ping لكل IP في الـ range. اللي يرد، يبقى شغّال. والـ ping بيستخدم بروتوكول ICMP. وأدوات زي fping بتعمل ده بسرعة.

بس المشكلة: firewalls كتير بتمنع الـ ping، وبالذات Windows. يعني الجهاز شغّال، بس ساكت. علشان كده Nmap بيستخدم أكتر من طريقة مع بعض: ICMP، و TCP على ports زي eighty و four forty three.

الأوامر المهمة: nmap dash s n، ده Host Discovery من غير Port Scan. جُوّه نفس الشبكة المحلية، ARP أدق حاجة، لأن أي جهاز لازم يرد عليه، وأداته arp scan. و dash capital P n، معناها: افترض إن كل الأجهزة شغّالة، واعمل Scan على طول. نعمل sweep على network صغيرة: slash twenty eight، يعني أربعتاشر جهاز. عندنا dictionary بيقول كل IP بيرد على إيه، و function اسمها is up بتشوف الـ ICMP بس، زي الـ ping. نشغّل… تلات أجهزة شغّالة. بس بص على dot nine: بيرد على TCP، والـ firewall بتاعه مانع الـ ping. يعني إحنا فوّتناه.

main.py
import ipaddress

# What each IP answers in our lab (a real sweep sends packets)
answers = {
    "10.10.10.1": {"icmp": True, "tcp": True},
    "10.10.10.5": {"icmp": True, "tcp": True},
    "10.10.10.9": {"icmp": False, "tcp": True},   # firewall blocks ping
    "10.10.10.12": {"icmp": True, "tcp": False},
}

def is_up(ip):
    a = answers.get(str(ip), {})
    return a.get("icmp", False)

network = ipaddress.ip_network("10.10.10.0/28")
alive = [str(ip) for ip in network.hosts() if is_up(ip)]

print("scanned:", network.num_addresses - 2, "hosts")
print("alive:", alive)

المخرجات

scanned: 14 hosts
alive: ['10.10.10.1', '10.10.10.5', '10.10.10.12']

دورك: عدّل is up علشان تعتبر الجهاز شغّال لو رد على ICMP أو على TCP، زي ما Nmap بيعمل.

تمرين

خلّي is_up ترجّع a.get("icmp", False) or a.get("tcp", False).

الحل: نشغّل… ظهر dot nine. علشان كده: ما تثقش في الـ ping لوحده.

main.py
import ipaddress

# What each IP answers in our lab (a real sweep sends packets)
answers = {
    "10.10.10.1": {"icmp": True, "tcp": True},
    "10.10.10.5": {"icmp": True, "tcp": True},
    "10.10.10.9": {"icmp": False, "tcp": True},   # firewall blocks ping
    "10.10.10.12": {"icmp": True, "tcp": False},
}

def is_up(ip):
    a = answers.get(str(ip), {})
    return a.get("icmp", False) or a.get("tcp", False)

network = ipaddress.ip_network("10.10.10.0/28")
alive = [str(ip) for ip in network.hosts() if is_up(ip)]

print("scanned:", network.num_addresses - 2, "hosts")
print("alive:", alive)

المخرجات

scanned: 14 hosts
alive: ['10.10.10.1', '10.10.10.5', '10.10.10.9', '10.10.10.12']

الدرس الجاي: لقينا الأجهزة، نشوف بقى أنهي ports مفتوحة عليها، وإزاي الـ Port Scan بيشتغل. يلا بينا.

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