این جزوه آموزشی، مرجع کامل و ساختاریافتهی مبحث اسکن شبکه (Network Scanning) بر اساس سورسهای دوره CEH است.
root@kali:~/ceh# cd chapter-1
۱ مقدمه و مفاهیم پایه اسکن شبکه
اسکن شبکه فاز دوم از فرآیند ارزیابی امنیت و یکی از بخشهای کلیدی جمعآوری اطلاعات (Information Gathering) است. هدف اصلی از اسکن شبکه، ارسال بستههای سفارشی TCP/IP به شبکه هدف و تحلیل پاسخهای دریافتی جهت ایجاد پروفایل و نقشه دقیق از سیستمها است.
اهداف اصلی اسکن شبکه
- شناسایی میزبانهای در دسترس (Live Systems Check): کشف تمام سیستمها و دستگاههای روشن و فعال در محدوده شبکه.
- شناسایی پورتهای باز (Check for Open Ports): کشف پورتهای فعال جهت تعیین نقاط ورودی به سیستم.
- شناسایی سرویسها و نسخهها (Service & Version Discovery): تشخیص دقیق سرویسهای اجرا شده روی پورتها.
- شناسایی سیستمعامل و معماری (OS & Architecture Discovery): تشخیص نوع و نسخه سیستمعامل و ساختار نرمافزاری.
- زمینهسازی برای ارزیابی آسیبپذیری (Vulnerability Assessment): استخراج اطلاعات پایه جهت بررسی ثغور و آسیبپذیریهای امنیتی در مراحل بعدی.
root@kali:~/ceh# cd ../chapter-2
۲ پروتکل TCP و پرچمهای ارتباطی (TCP Flags)
فرآیند اسکن شبکه در لایه ۴ مدل OSI (لایه انتقال) انجام میشود. برای درک تکنیکهای اسکن، شناخت ساختار هدر TCP و پرچمها (Flags) الزامی است.
انواع پرچمهای اصلی TCP
- SYN (Synchronize): برای آغاز ارتباط و همگامسازی شماره سریال بستهها استفاده میشود.
- ACK (Acknowledgement): برای تأیید دریافت بستهها یا درخواستها به کار میرود.
- RST (Reset): ارتباط برقرار شده را فوراً قطع و بازنشانی میکند.
- FIN (Finish): درخواست خاتمه منظم ارتباط را صادر میکند.
- URG (Urgent): نشاندهنده وجود دادههای با اولویت بالا است.
- PSH (Push): سیستم را مجبور میکند دادههای بافر شده را فوراً ارسال و پردازش نماید.
دستتکانی سه مرحلهای (TCP Three-Way Handshake)
گام ۱
ارسال SYN: مبدأ یک بسته با پرچم SYN به پورت مقصد ارسال میکند.
گام ۲
پاسخ SYN+ACK: در صورت باز بودن پورت، مقصد با SYN+ACK پاسخ میدهد.
گام ۳
ارسال ACK: مبدأ بسته ACK را ارسال کرده و ارتباط برقرار میشود.
root@kali:~/ceh# cd ../chapter-3
۳ متدولوژی اسکن شبکه در CEH
دوره CEH یک متدولوژی ۶ مرحلهای برای اسکن شبکه ارائه میدهد:
گام ۱
Check for Live Systems: شناسایی هاستهای روشن و فعال در شبکه.
گام ۲
Check for Open Ports: اسکن پورتها برای کشف پورتهای باز و سرویسهای در حال اجرا.
گام ۳
Banner Grabbing & OS Discovery: جمعآوری بنرها و تشخیص نوع و نسخه دقیق سیستمعامل و سرویسها.
گام ۴
Draw Network Diagram: ترسیم نقشه توپولوژی شبکه و معماری فیزیکی/منطقی.
گام ۵
Prepare Proxies: آمادهسازی سرورهای پراکسی و ابزارهای پنهانسازی آدرس.
گام ۶
Scan for Vulnerability: بررسی آسیبپذیریهای بالقوه بر اساس اطلاعات به دست آمده.
root@kali:~/ceh# cd ../chapter-4
۴ فاز اول: شناسایی سیستمهای فعال (Host Discovery)
در این فاز هدف کشف آدرسهای IP فعال در یک رنج شبکه است:
- ARP Ping Scan (
nmap -sn -PR): ارسال بستههای ARP Request در شبکه محلی (لایه ۲). - UDP Ping Scan (
nmap -sn -PU): ارسال بستههای UDP به پورتهای مقصد. - ICMP Echo Ping Scan (
nmap -sn -PE): ارسال بسته ICMP Echo Request. - ICMP Ping Sweep: ارسال بستههای ICMP به یک رنج کامل از آدرسهای IP.
- TCP SYN Ping (
nmap -sn -PS) و TCP ACK Ping (nmap -sn -PA): ارسال بستههای SYN یا ACK برای تست هاست. - IP Protocol Ping (
nmap -sn -PO): ارسال بستههای پروتکلهای مختلف.
ابزارهای هاست دیسکوری
- Nmap / Zenmap: قدرتمندترین ابزار خط فرامینی و گرافیکی اسکن شبکه.
- hping3: ابزار فرستنده بستههای سفارشی TCP/IP.
- Angry IP Scanner: ابزار گرافیکی و سریع برای اسکن رنجهای IP.
- netdiscover: ابزار مبتنی بر ARP برای شناسایی سریع هاستها در شبکههای محلی.
- CrackMapExec (CME): ابزار ویژه برای ارزیابی شبکههای ویندوزی و پروتکل SMB.
root@kali:~/ceh# cd ../chapter-5
۵ فاز دوم: تکنیکهای اسکن پورت و سرویسها (Port Scanning)
۱. روشهای اسکن باز (Open Scanning)
- TCP Connect Scan (
nmap -sT): دستتکانی سه مرحلهای TCP را کامل میکند. در صورت باز بودن پورت، SYN+ACK دریافت شده و بسته ACK ارسال میشود، سپس با RST بسته میشود.
۲. روشهای اسکن مخفیانه (Stealth Scanning)
- TCP SYN Scan (
nmap -sS): اسکنر بسته SYN ارسال میکند. در صورت دریافت SYN+ACK، به جای ACK بسته RST ارسال میشود. این حالت پیشفرض Nmap است.
۳. اسکنهای معکوس پرچمهای TCP (Inverse TCP Flag Scanning)
- Xmas Scan (
nmap -sX): پرچمهای FIN, URG و PSH همزمان ست میشوند. - FIN Scan (
nmap -sF): فقط پرچم FIN ارسال میشود. - NULL Scan (
nmap -sN): بسته بدون پرچم ارسال میشود. - Maimon Scan (
nmap -sM): ترکیب FIN و ACK ارسال میشود. - نکته پشته TCP/IP: اسکنهای معکوس روی سیستمهای ویندوزی (Windows) کارایی ندارند زیرا ویندوز به بستههای نامتعارف همواره پاسخ RST میدهد. این اسکنها روی لینوکس و یونیکس عمل میکنند.
۴. اسکن پرچم ACK و تحلیل فایروال (ACK Flag Scanning)
- ACK Scan (
nmap -sA): برای ارزیابی قوانین فایروال (Stateful vs Stateless). - Window Scan (
nmap -sW): بررسی فیلد TCP Window Size در پاسخ RST. - TTL-based Scan: ارزیابی مقدار TTL پاسخ برای تشخیص وضعیت پورت.
۵. اسکن با شخص ثالث (IDLE / IPID Scan)
- IDLE Scan (
nmap -pn -sI <zombie_ip> <target_ip>): اسکن غیرمستقیم با تحلیل تغییرات شماره سریال IPID در یک سیستم خنثی (Zombie).
۶. اسکن UDP و SCTP
- UDP Scan (
nmap -sU): اسکن پورتهای UDP با تحلیل پاسخ UDP یا دریافت ICMP Port Unreachable. - SCTP INIT Scan (
nmap -sY) و SCTP COOKIE ECHO Scan (nmap -sZ): اسکن پروتکل SCTP.
۷. تکنیکهای تنظیم بستهها و دور زدن فایروال (Evasion)
- تکهتکهسازی بستهها (
nmap -f): خرد کردن هدر به بستههای کوچکتر. - دستکاری پورت مبدأ (
nmap -g 80): تنظیم پورت مبدأ روی پورت مجاز (مانند ۸۰ یا ۵۳). - آدرسهای فریبدهنده (
nmap -D): ترکیب آدرس واقعی با چند آدرس متفرقه (nmap -D RND:10 target). - سفارشیسازی محتوای بسته (
--data-string): افزودن دادههای سفارشی به هدر. - ابزارهای ساخت بسته: Colasoft Packet Builder و Scapy.
۸. روشهای دفاعی و مقابله (Countermeasures)
- تنظیم قوانین فایروال و سیستمهای IDS/IPS.
- مسدودسازی ترافیک ICMP و بستن پورتهای غیرضروری.
root@kali:~/ceh# cd ../chapter-6
۶ فاز سوم: شناسایی سیستمعامل و سرویسها (Banner Grabbing & OS Fingerprinting)
روشهای بنر گربینگ
گام ۱
بنر گربینگ فعال (Active Banner Grabbing):
- ارتباط مستقیم با Telnet:
telnet target 80 - ارتباط با Netcat:
nc -vv target 80 - اسکن نسخه سرویس با Nmap:
nmap -sV target - ابزارها: ID Serve, THC AMAP, SINFP, Xprobe.
گام ۲
بنر گربینگ غیرفعال (Passive Banner Grabbing):
- بررسی پیامهای خطا، اسنیف ترافیک (Wireshark) و استعلام از موتورهای جستجو (Netcraft, Shodan).
تشخیص سیستمعامل (OS Fingerprinting)
- تحلیل مقادیر TTL در بستهها:
- سیستمعاملهای لینوکس و یونیکس (Linux/Unix): TTL استاندارد 64
- سیستمعامل ویندوز (Windows): TTL استاندارد 128
- تجهیزات شبکه سیسکو (Cisco): TTL استاندارد 255
- دستورات Nmap جهت OS Detection:
nmap -O target: فعالسازی تشخیص سیستمعامل.nmap -A target: اسکن جامع (سیستمعامل، نسخه سرویس، اسکریپت و مسیر).nmap --script smb-os-discovery.nse target: استخراج نسخه دقیق ویندوز و Build Number از پورت ۴۴۵ (SMB).
روشهای امنسازی بنرها
- وبسرور Apache: تنظیم
ServerSignature OffوServerTokens OSدرhttpd.conf. - زبان PHP: تنظیم
expose_php = Offدرphp.ini. - وبسرور IIS: استفاده از ابزارهایی نظیر URLScan و ServerMask.
root@kali:~/ceh# cd ../chapter-7
۷ فاز چهارم: ترسیم نقشه و توپولوژی شبکه (Network Topology Mapping)
ارزیابی معماری شبکه و ترسیم دیاگرام منطقی و فیزیکی جهت شناسایی موقعیت روترها، فایروالها، DMZ و اینترانت.
- ابزارها: SolarWinds Network Topology Mapper, LANState, Network View, OpManager, WhatsConnected.
root@kali:~/ceh# cd ../chapter-8
۸ فاز پنجم: آمادهسازی سرورهای پراکسی و ناشناسسازی (Proxies & Anonymization)
- پراکسی و زنجیره پراکسی: استفاده از ProxyChains، شبکه Tor و سرورهای پراکسی برای تغییر آدرس IP.
- سیستمعاملهای امن: مانند Tails OS که ترافیک را به طور کامل از Tor عبور داده و اثری روی سیستم باقی نمیگذارد.
- فاکتورهای افشای هویت: علاوه بر آدرس IP، فاکتورهایی مانند Timezone سیستم، زبان (Language)، کوکیهای مرورگر و تاریخچه جستجو نیز میتوانند هویت کاربر را افشا کنند.
root@kali:~/ceh# cd ../chapter-9
۹ راهنمای دستورات و سوئیچهای کاربردی Nmap و hping3
جدول سوئیچهای اصلی Nmap
| سوئیچ Nmap | عملکرد و توضیحات |
|---|---|
-sn | عدم اسکن پورتها (فقط Host Discovery یا Ping Scan انجام میشود). |
-sS | اسکن TCP SYN / Stealth Scan (پیشفرض). |
-sT | اسکن TCP Connect / Full Open. |
-sU | اسکن پورتهای UDP. |
-sA | اسکن ACK جهت ارزیابی فایروال. |
-sX | اسکن Xmas (پرچمهای FIN, URG, PSH). |
-sF | اسکن FIN. |
-sN | اسکن NULL (بدون پرچم). |
-sM | اسکن Maimon (پرچمهای FIN/ACK). |
-sI <zombie> | اسکن IDLE / IPID Header با سیستم Zombie. |
-sV | شناسایی نسخه سرویسهای در حال اجرا. |
-O | شناسایی نوع و نسخه سیستمعامل (OS Detection). |
-A | اسکن جامع (ترکیب -O, -sV, -sC, traceroute). |
-p <ports> | تعیین پورتهای مورد اسکن (مثلاً -p 80,443 یا -p 1-65535). |
-F | اسکن سریع ۱۰۰ پورت شایع (Fast Scan). |
-f | تکهتکهسازی بستهها (IP Fragmentation). |
-g <port> | دستکاری پورت مبدأ اسکن. |
-D <decoys> | اسکن فریبدهنده با آدرسهای متفرقه. |
-n | عدم انجام Reverse DNS Resolution. |
-v / -vv | افزایش سطح گزارشدهی و نمایش خروجی لحظهای. |
-T0 تا -T5 | تنظیم سرعت اسکن (از T0 کند تا T5 سریع). |
--open | نمایش فقط پورتهای باز در خروجی. |
--script=<script> | اجرای اسکریپتهای NSE (مانند smb-os-discovery.nse). |
جدول دستورات رایج hping3
| دستور hping3 | عملکرد و توضیحات |
|---|---|
hping3 -1 <target> | ارسال بستههای ICMP Echo (پینگ ICMP). |
hping3 -A <target> -p 80 | اسکن ACK بر روی پورت 80. |
hping3 -2 <target> -p 80 | اسکن UDP بر روی پورت 80. |
hping3 -S <target> -p 50-60 -V | اسکن SYN بر روی رنج پورتهای 50 تا 60 با خروجی مشروح. |
hping3 -F -P -U <target> -p 80 | اسکن Xmas (پرچمهای FIN, PSH, URG) روی پورت 80. |
root@kali:~/ceh# cd ../chapter-10
۱۰ واژهنامه و دیکشنری تخصصی اسکن شبکه (Glossary & Dictionary)
- ACK (Acknowledgement Flag): پرچم تأیید دریافت بسته در پروتکل TCP.
- Active Banner Grabbing: استخراج مستقیم بنر و نسخه سرویس با برقراری ارتباط با پورت.
- Anonymizer: ابزار یا سرویسی جهت پنهانسازی هویت، IP، موقعیت و ردپای دیجیتال کاربر.
- ARP Ping Scan: تکنیک شناسایی هاستهای فعال در شبکه محلی مبتنی بر بستههای ARP Request.
- Banner Grabbing: تکنیک استخراج اطلاعات و بنرهای معرفی مربوط به سرویسها و سیستمعاملها.
- CrackMapExec (CME): ابزار ارزیابی شبکههای ویندوزی و SMB.
- Decoy Scanning: اسکن شبکه با ترکیب آدرس IP واقعی و چندین آدرس IP متفرقه برای ارزیابی فایروال.
- FIN Flag: پرچم درخواست خاتمه منظم ارتباط در TCP.
- Full-Open Scan (TCP Connect): روش اسکنی که دستتکانی سه مرحلهای TCP را به طور کامل تکمیل میکند.
- Half-Open Scan (SYN Scan): روش اسکن مخفیانه که پس از دریافت پاسخ SYN+ACK، بسته RST ارسال کرده و ارتباط را کامل نمیکند.
- hping3: ابزار خط فرامینی برای ساخت و ارسال بستههای سفارشی TCP/IP و انجام تستهای شبکه.
- IDLE Scan (IPID Scan): روش اسکن غیرمستقیم با استفاده از شماره سریال IPID یک سیستم خنثی (Zombie).
- Inverse TCP Flag Scan: روشهای اسکن معکوس (Xmas, FIN, NULL) که بر اساس عدم دریافت پاسخ یا دریافت RST وضعیت پورت را تعیین میکنند.
- IP Fragmentation: تکنیک خرد کردن بستههای IP برای عبور از فایروالها.
- Live Systems Check: مرحله نخست اسکن شبکه جهت شناسایی دستگاههای روشن و در دسترس.
- Maimon Scan: نوعی اسکن معکوس TCP با ارسال پرچمهای FIN و ACK.
- netdiscover: ابزار کشف هاست در لایه ۲ بر پایه پروتکل ARP.
- Nmap (Network Mapper): ابزار منبعباز اسکن شبکه، کشف پورتها و شناسایی سیستمعامل.
- NULL Scan: اسکن معکوس TCP با ارسال بستهای بدون هیچ پرچم ستشده.
- Passive Banner Grabbing: جمعآوری اطلاعات سرویس بدون ارسال مستقیم بسته (از طریق اسنیف، صفحات خطا یا موتورهای جستجو).
- Ping Sweep: ارسال بستههای پینگ به یک محدوده از آدرسهای IP برای شناسایی هاستهای فعال.
- ProxyChains: ابزاری برای عبور دادن ترافیک برنامهها از میان سلسلهمراتب سرورهای پراکسی.
- PSH (Push Flag): پرچم فرمان به سیستم جهت ارسال و پردازش سریع دادههای بافر شده.
- RST (Reset Flag): پرچم بازنشانی و قطع فوری ارتباط TCP.
- SMB (Server Message Block): پروتکل به اشتراکگذاری فایل و پرینتر در شبکههای ویندوزی (پورت 445).
- Source Port Manipulation: دستکاری پورت مبدأ اسکن به پورتهای مجاز (مانند 80 یا 53) جهت دور زدن قوانین فایروال.
- Stealth Scan: تکنیک اسکن مخفیانه که لاگهای کمتری در سیستم هدف بر جای میگذارد.
- SYN Flag: پرچم آغاز ارتباط و همگامسازی شماره سریال بستهها در TCP.
- Tails OS: سیستمعامل امن لینوکسی مبتنی بر شبکه Tor.
- Three-Way Handshake: فرآیند ۳ مرحلهای برقراری ارتباط در TCP (ارسال SYN، دریافت SYN+ACK، ارسال ACK).
- TTL (Time To Live): فیلدی در هدر IP که طول عمر بسته را تعیین کرده و برای شناسایی سیستمعامل (Windows=128, Linux=64, Cisco=255) استفاده میشود.
- URG (Urgent Flag): پرچم تعیین دادههای با اولویت بالا و اورژانسی در TCP.
- Xmas Scan: اسکن معکوس TCP با تنظیم همزمان پرچمهای FIN, URG و PSH.
- Zenmap: رابط کاربر گرافیکی (GUI) رسمی ابزار Nmap.