فصل ۳: اسکن و شمارش
تفاوت اسکن و شناسایی، اسکن عمیق با Nmap (SYN, UDP, نسخهیابی، OS fingerprint, NSE)، شمارش سرویسهای SMB/SSH/HTTP/SNMP و هشدار درباره پنهانماندن از IDS.
تفاوت اسکن با شناسایی
اگر شناسایی (Recon) جمعآوری اطلاعات عمومی است، اسکن (Scanning) عملی، مستقیم و فنی است. در این فاز، تستر با ارسال پکتهای ساختیافته به هدف، به این سوالات پاسخ میدهد: کدام میزبانها روشناند؟ کدام پورتها بازند؟ چه سرویسی روی هر پورت اجرا میشود؟ نسخهاش چیست؟
برخلاف شناسایی غیرفعال، اسکن تقریباً همیشه توسط IDS/IPS هدف دیده میشود. به همین دلیل، انتخاب نوع اسکن، زمانبندی و سرعت، یک تصمیم تاکتیکی است.
Nmap — پادشاه اسکنرها
Nmap (Network Mapper) استاندارد طلایی اسکن شبکه است. این ابزار متنباز، تقریباً در هر پلتفرم تست نفوذی (Kali، Parrot، BlackArch) بهصورت پیشفرض نصب است. در ادامه، مهمترین حالتهای اسکن را مرور میکنیم.
کشف میزبان (Host Discovery)
اولین قدم، فهمیدن این است که کدام IPها در یک بازه زندهاند. فلگ -sn فقط کشف میزبان انجام میدهد و پورتاسکن نمیزند:
# کشف میزبان در یک /24
nmap -sn 192.168.1.0/24
# کشف با ARP در یک شبکه محلی (دقیقتر)
nmap -PR -sn 192.168.1.0/24انواع اسکن پورت
| فلگ | نام | توضیح | ردپا |
|---|---|---|---|
-sS | SYN scan | نیمهباز، پیشفرض و سریع | کم (لاگ تنها در فایروالهای پیشرفته) |
-sT | TCP connect | اتصال کامل، نیازمند هیچ امتیاز root | زیاد (در لاگ سرویس) |
-sU | UDP scan | اسکن پورتهای UDP | بسیار کند |
-sA | ACK scan | تشخیص قوانین فایروال | کم |
-sN/-sF/-sX | Null/FIN/Xmas | دور زدن فایروالهای قدیمی | متغیر |
پیشفرض همیشه SYN است
در تست نفوذ قانونی، تقریباً همیشه از -sS استفاده کنید. سریعتر است، ردپای کمتری دارد و نیاز به root دارد (که روی Kali پیشفرض است). فقط اگر به root دسترسی ندارید، -sT را بهکار ببرید.
نسخهیابی و OS fingerprint
پیدا کردن پورت باز فقط نصف کار است. باید بدانیم چه سرویسی اجرا میشود و نسخهاش چیست:
# نسخهیابی سرویس
nmap -sV 192.168.1.10
# تشخیص سیستمعامل
nmap -O 192.168.1.10
# اسکن تهاجمی (همهچیز در یک دستور)
nmap -A 192.168.1.10
# ترکیبی: SYN + نسخه + OS + تمام پورتها
nmap -sS -sV -O -p- -T4 192.168.1.0/24فلگ -A شامل نسخهیابی، OS detection، اسکریپتهای پیشفرض NSE و traceroute است. برای اسکن سریع اولیه عالی است.
موتور اسکریپت NSE (Nmap Scripting Engine)
NSE یکی از قدرتمندترین قابلیتهای Nmap است؛ به شما اجازه میدهد اسکریپتهای از پیش ساختهشده برای شمارش عمیق یا حتی کشف آسیبپذیری اجرا کنید:
# اجرای تمام اسکریپتهای دسته vuln
nmap --script vuln 192.168.1.10
# شمارش اشتراکهای SMB
nmap --script smb-enum-shares -p 445 192.168.1.10
# کشف نسخه SMB و آسیبپذیری EternalBlue
nmap --script smb-vuln-ms17-010 -p 445 192.168.1.10
# گرفتن بنر HTTP
nmap --script http-title,http-headers -p 80,443 192.168.1.10قالبهای زمانبندی
Nmap شش قالب زمانبندی دارد که از -T0 (پارانوئید) تا -T5 (دیوانه) متغیر است:
| قالب | سرعت | کاربرد |
|---|---|---|
-T0 | بسیار کند | دور زدن IDS سنتی |
-T1 | کند | شبکههای حساس |
-T2 | متوسط-کم | پیشفرض محافظهکارانه |
-T3 | متوسط | پیشفرض واقعی Nmap |
-T4 | بالا | شبکههای پایدار (توصیه عمومی) |
-T5 | بسیار بالا | فقط در شبکه محلی امن |
خروجی و ذخیره نتایج
Nmap سه قالب خروجی دارد که میتوانید همزمان هر سه را ذخیره کنید:
# ذخیره همزمان در سه قالب
nmap -sS -sV -p- 192.168.1.10 -oN scan.txt -oX scan.xml -oG scan.grep
# قالب XML برای وارد کردن به Metasploit
nmap -sS -sV -p- 192.168.1.10 -oX scan.xmlقالب XML را میتوان مستقیماً با db_import به پایگاهداده Metasploit وارد کرد که در فصل استثمار مفصل بررسی میکنیم.
شمارش سرویسهای رایج
SMB (پورت ۴۴۵)
SMB پروتکل اشتراک فایل ویندوزی است و یکی از پرآسیبپذیرترین سرویسها در شبکههای سازمانی محسوب میشود:
# شمارش کامل SMB با enum4linux
enum4linux -a 192.168.1.10
# اتصال به اشتراک ناشناس
smbclient -L //192.168.1.10/ -N
# اتصال به یک اشتراک خاص
smbclient //192.168.1.10/share -N
# لیست پارامترهای SMB با CrackMapExec
crackmapexec smb 192.168.1.10 -u '' -p ''SSH (پورت ۲۲)
اسکن SSH معمولاً محدود به بنر گربینگ است، اما بنر نسخه میتواند آسیبپذیریهای قدیمی را لو بدهد:
# بنر گربینگ با ncat
ncat 192.168.1.10 22
# اسکریپت NSE برای SSH
nmap --script ssh-auth-methods,ssh-hostkey -p 22 192.168.1.10HTTP (پورتهای ۸۰ و ۴۴۳)
اسکن وبسرور شامل پیدا کردن دایرکتوریهای پنهان، فایلهای پشتیبان و آسیبپذیریهای متداول است:
# اسکن دایرکتوری با Gobuster
gobuster dir -u http://192.168.1.10 -w /usr/share/wordlists/dirb/common.txt
# اسکن دایرکتوری با dirb
dirb http://192.168.1.10
# اسکن آسیبپذیری وبسرور با Nikto
nikto -h http://192.168.1.10
# اسکریپتهای NSE برای HTTP
nmap --script http-enum,http-headers,http-methods -p 80 192.168.1.10SNMP (پورت ۱۶۱ UDP)
SNMP اگر با community string پیشفرض public پیکربندی شده باشد، معدن اطلاعات است. فراموش نکنید که پورت UDP است پس در Nmap باید فلگ -sU بزنید:
# شمارش کامل SNMP
snmpwalk -c public -v1 192.168.1.10
# فقط فرایندهای در حال اجرا
snmpwalk -c public -v1 192.168.1.10 1.3.6.1.2.1.25.4.2.1.2
# brute-force روی community string
onesixtyone -c /usr/share/seclists/Discovery/SNMP/snmp.txt 192.168.1.10جدول مقایسه انواع اسکن Nmap
| هدف | دستور پیشنهادی | زمان تقریبی |
|---|---|---|
| اسکن سریع ۱۰۰۰ پورت اول | nmap -T4 192.168.1.10 | ۵ ثانیه |
| اسکن کامل ۶۵۵۳۵ پورت | nmap -p- -T4 192.168.1.10 | ۲۰ تا ۶۰ دقیقه |
| اسکن UDP | nmap -sU --top-ports 100 192.168.1.10 | ۱۰ تا ۳۰ دقیقه |
| اسکن تهاجمی کامل | nmap -A -T4 -p- 192.168.1.10 | ۱ تا ۲ ساعت |
| اسکن آسیبپذیری | nmap --script vuln 192.168.1.10 | ۵ تا ۳۰ دقیقه |
اسکنهای پر سر و صدا
اسکنهای -A و --script vuln بهشدت پُر سر و صدا هستند و توسط هر IDS متوسطی شناسایی میشوند. اگر در قرارداد ذکر شده که باید پنهان بمانید، از -T2 یا حتی -T1 استفاده کنید و اسکنها را در طول چند روز پخش کنید. همچنین -sS بهجای -sT همیشه اولویت دارد.
تمرین عملی
یک ماشین مجازی در شبکه محلی خود (مثلاً Metasploitable 2) راه بیندازید و این اسکنها را اجرا کنید:
# 1. کشف میزبان
nmap -sn 192.168.56.0/24 -oG hosts.grep
# 2. اسکن کامل پورت با نسخهیابی
nmap -sS -sV -O -p- -T4 192.168.56.102 -oX full_scan.xml
# 3. شمارش SMB
enum4linux -a 192.168.56.102 | tee smb_enum.txt
# 4. اسکن وب
gobuster dir -u http://192.168.56.102 -w /usr/share/wordlists/dirb/common.txt | tee web_dirs.txt
# 5. اسکن آسیبپذیری روی پورتهای کشفشده
nmap --script vuln -p 21,22,23,80,139,445 192.168.56.102 -oX vuln_scan.xmlخلاصه و گام بعدی
در این فصل، با ابزار Nmap و انواع اسکن آن از کشف میزبان تا اسکریپتهای NSE آشنا شدید و یاد گرفتید که چگونه سرویسهای SMB، SSH، HTTP و SNMP را بشمارید. اسکن موفق، تعادل بین عمق اطلاعات و سطح ردپاست.
در فصل بعد، با ارزیابی آسیبپذیری آشنا میشوید؛ جایی که اطلاعات جمعآوریشده در این فاز را به فهرستی از CVEهای قابل استثمار تبدیل میکنید.
این صفحه در تاریخ ۸ تیر ۱۴۰۵ بهروزرسانی شده است.