أنواع الـ Scan والسرعة في Nmap

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

01 / ملخص الدرس

أنواع الـ Scan والسرعة في Nmap

الفرق بين SYN Scan و Connect Scan و UDP Scan، وقوالب السرعة T0 لحد T5 وإمتى تستخدم كل واحد، وتبني أوامر Nmap بـ Python.

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

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

Nmap عنده أكتر من طريقة يخبّط بيها على الـ ports. وكل طريقة ليها مميزات، وليها صوت عالي أو واطي في الـ logs.

الـ SYN Scan، أو dash s capital S: بيبعت SYN، ولو جاله SYN ACK، بيرد RST على طول، ومش بيكمّل الـ handshake. علشان كده اسمه Half Open، وسريع. ومحتاج صلاحيات root، وده الـ default لو إنت root.

الـ Connect Scan، أو dash s capital T: بيكمّل الـ handshake كامل. مش محتاج root. بس أبطأ شوية، وبيتسجّل في logs الخدمة نفسها. والـ UDP Scan، أو dash s capital U: بطيء جداً، فغالباً بنعمله على أشهر ports بس.

والسرعة بتتحدد بـ dash capital T، من zero لـ five. T zero و T one بطيئين جداً، علشان تهرب من أنظمة الكشف. T three هو الـ default. T four سريع، وده المناسب في الـ labs و OSCP. و T five سريع جداً، بس ممكن يضيّع ports أو يوقّع خدمة ضعيفة. نعمل function بتبني أمر Nmap: نوع الـ Scan، والسرعة، والـ ports. ولو الـ ports قيمتها dash، يبقى dash p dash، يعني كل الـ ports. نشغّل… أول أمر SYN Scan على كل الـ ports بسرعة T four. التاني Connect Scan على port twenty two و eighty بس.

main.py
SCANS = {
    "syn": "-sS",       # half-open, needs root, the default as root
    "connect": "-sT",   # full handshake, no root needed
    "udp": "-sU",       # slow, but finds DNS, SNMP...
}

def nmap_cmd(target, scan="syn", ports="-", timing=4):
    parts = ["nmap", SCANS[scan], f"-T{timing}"]
    parts.append("-p-" if ports == "-" else f"-p {ports}")
    parts.append(target)
    return " ".join(parts)

print(nmap_cmd("10.10.10.5"))
print(nmap_cmd("10.10.10.5", scan="connect", ports="22,80", timing=3))

المخرجات

nmap -sS -T4 -p- 10.10.10.5
nmap -sT -T3 -p 22,80 10.10.10.5

دورك: ابني أمر UDP Scan على port fifty three و one sixty one، بسرعة T four.

تمرين

nmap_cmd("10.10.10.5", scan="udp", ports="53,161", timing=4)

الحل: نشغّل…

main.py
SCANS = {
    "syn": "-sS",       # half-open, needs root, the default as root
    "connect": "-sT",   # full handshake, no root needed
    "udp": "-sU",       # slow, but finds DNS, SNMP...
}

def nmap_cmd(target, scan="syn", ports="-", timing=4):
    parts = ["nmap", SCANS[scan], f"-T{timing}"]
    parts.append("-p-" if ports == "-" else f"-p {ports}")
    parts.append(target)
    return " ".join(parts)

print(nmap_cmd("10.10.10.5"))
print(nmap_cmd("10.10.10.5", scan="connect", ports="22,80", timing=3))
print(nmap_cmd("10.10.10.5", scan="udp", ports="53,161", timing=4))

المخرجات

nmap -sS -T4 -p- 10.10.10.5
nmap -sT -T3 -p 22,80 10.10.10.5
nmap -sU -T4 -p 53,161 10.10.10.5

الدرس الجاي: إزاي تعرف الخدمة اللي على الـ port بالظبط، وإصدارها، ونظام التشغيل. يلا بينا.

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