Nmap: البداية
إزاي تحدد الأهداف والـ ports في Nmap (-p و -p- و --top-ports)، وتقرا الـ output سطر سطر، وتحلّله بـ Python.
نص شرح المعلم والكود الذي كتبه ونتيجة تشغيله، بنفس ترتيب الدرس.
Nmap هو أشهر أداة Scanning في العالم، ومجانية، وهتستخدمها في كل Pentest وفي كل جهاز في OSCP. في الدرس ده هنتعلم الأساسيات.
الأول: تحدد الهدف. IP واحد. أو range زي slash twenty four. أو أكتر من IP بـ dash، زي one dash fifty. أو ملف فيه قايمة أهداف بـ dash i L.
تاني حاجة: الـ ports. من غير أي option، Nmap بيعمل Scan على أشهر ألف port بس. dash p وبعدها ports معيّنة. dash p dash، يعني كل الـ ports من واحد لخمسة وستين ألف. و top ports، لأشهر عدد إنت تحدده.
ونصيحة مهمة لـ OSCP: دايماً اعمل dash p dash على كل الـ ports. خدمات كتير مهمة بتبقى على ports غريبة، زي eight thousand أو forty nine thousand، وأشهر ألف port مش هيلاقوها. ده output حقيقي الشكل لـ Nmap. أي سطر فيه slash tcp، نقسمه لتلات أجزاء: الـ port، والحالة، والخدمة. ونحوّل رقم الـ port لـ int. نشغّل… كل port بحالته وخدمته. ولاحظ سطر Not shown: Nmap بيخبّي الـ closed علشان الـ output ما يبقاش طويل.
output = """Starting Nmap 7.94 ( https://nmap.org )
Nmap scan report for 10.10.10.5
Host is up (0.031s latency).
Not shown: 995 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
139/tcp open netbios-ssn
445/tcp filtered microsoft-ds
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 2.41 seconds
"""
ports = []
for line in output.splitlines():
if "/tcp" in line:
port_proto, state, service = line.split()
ports.append((int(port_proto.split("/")[0]), state, service))
for port, state, service in ports:
print(port, state, service)المخرجات
22 open ssh 80 open http 139 open netbios-ssn 445 filtered microsoft-ds 3306 open mysql
دورك: اطبع الـ ports المفتوحة بس، رقم الـ port واسم الخدمة.
جُوّه الـ loop: if state == "open": print(port, service)
الحل: نشغّل… أربع ports مفتوحة، والـ filtered اختفى.
output = """Starting Nmap 7.94 ( https://nmap.org )
Nmap scan report for 10.10.10.5
Host is up (0.031s latency).
Not shown: 995 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
139/tcp open netbios-ssn
445/tcp filtered microsoft-ds
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 2.41 seconds
"""
ports = []
for line in output.splitlines():
if "/tcp" in line:
port_proto, state, service = line.split()
ports.append((int(port_proto.split("/")[0]), state, service))
for port, state, service in ports:
if state == "open":
print(port, service)المخرجات
22 ssh 80 http 139 netbios-ssn 3306 mysql
الدرس الجاي: أنواع الـ Scan في Nmap، والسرعة، وإزاي تختار بينهم. يلا بينا.
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