Nmap مخفف عبارت Network Mapper است . یک اسکنر رایگان و اپن سورس است که توسط Gordon lyon یا Fyodor vaskovich ساخته شده است. Nmap برای پیدا کردن Hostها و سرویس های شبکه کامپیوتری با فرستادن پکت و آنالیز پاسخ آن ها به کار گرفته می شود. Nmap همچنین می تواند آدرس مک ، نوع سیستم عامل ، ورژن سرویس و موارد دیگر را تشخیص دهد. در این آموزش با ما همراه باشید تا به شما عزیزان درباره نحوه استفاده از دستور nmap برای انجام کارهای مختلف شبکه توضیح دهیم.
Nmap یک برنامه چند پلتفرمی است که می تواند بر روی تمام سیستم عامل های اصلی نصب شود. در ابتدا به عنوان یک ابزار تنها برای لینوکس منتشر شد ، و بعداً به سیستم های دیگر مانند BSD ، Windows و macOS منتقل شد. اگر GUI را به خط فرمان ترجیح می دهید ، Nmap همچنین دارای یک رابط کاربری گرافیکی به نام Zenmap است. بسته های باینری رسمی از صفحه دانلود Nmap برای دانلود در دسترس هستند. روش نصب ساده است و بسته به سیستم عامل شما متفاوت است.
Nmap از مخازن پیش فرض اوبونتو و دبیان در دسترس است. برای نصب آن دستور زیر را اجرا کنید:
sudo apt update
sudo apt install nmap
در CentOS و سایر مشتقات Red Hat اجرا می شود:
sudo dnf install nmap
کاربران macOS می توانند Nmap را با دانلود بسته نصب “.dmg” از سایت Nmap یا از طریق Homebrew نصب کنند:
brew install nmap
ورژن Windows Nmap دارای محدودیت هایی است و به طور کلی کمی کندتر از ورژن UNIX است. ساده ترین گزینه برای نصب Nmap در ویندوز این است که فایل exe خود نصب را دانلود و اجرا کنید. می توانید Nmap را در ویندوز یا از طریق خط فرمان یا با راه اندازی برنامه Zenmap اجرا کنید. برای اطلاعات بیشتر در مورد نحوه استفاده از Nmap در Windows ، دستورالعمل های استفاده پس از نصب را بررسی کنید.
Nmap معمولاً برای بررسی امنیت شبکه ، نقشه برداری شبکه ، شناسایی پورت های باز و جستجوی دستگاه های آنلاین استفاده می شود. نحو ساده شده دستور nmap به شرح زیر است:
nmap [Options] [Target...]
اساسی ترین مثال استفاده از Nmap این است که یک هدف واحد را به عنوان یک کاربر استاندارد بدون تعیین هیچ گزینه ای اسکن کنید:
nmap scanme.nmap.org
هنگامی که به عنوان یک کاربر non-root و دارای امتیاز بسته اولیه فراخوانی می شود ، nmap اسکن اتصال TCP را اجرا می کند. (-sT) به طور پیش فرض در حالت unprivileged روشن است. خروجی چیزی شبیه به اطلاعات اولیه در مورد اسکن و لیستی از پورت های TCP باز و فیلتر شده است.
Starting Nmap 7.91 ( https://nmap.org ) at 2020-12-16 20:19 CET Nmap scan report for cast.lan (192.168.10.121) Host is up (0.048s latency). Not shown: 981 closed ports PORT STATE SERVICE ۲۱/tcp open ftp ۲۲/tcp open ssh ۲۵/tcp open smtp ۵۳/tcp open domain ۸۰/tcp open http ۱۱۰/tcp open pop3 ۱۴۳/tcp open imap ۴۴۳/tcp open https ۵۸۷/tcp open submission ۹۹۳/tcp open imaps ۹۹۵/tcp open pop3s ۱۰۲۵/tcp open NFS-or-IIS ۱۰۸۰/tcp open socks ۸۰۸۰/tcp open http-proxy ۸۰۸۱/tcp open blackice-icecap Nmap done: 1 IP address (1 host up) scanned in 1.78 seconds
محبوب ترین گزینه اسکن ، اسکن TCP SYN (-sS) است که سریعتر از گزینه اتصال است و در برابر همه TCP stacks سازگار عمل می کند. -sS به صورت پیش فرض هنگامی که nmap به عنوان یک کاربر با امتیازات administrative فراخوانی می شود ، روشن می شود:
sudo nmap 192.168.10.121
برای خروجی دقیق تر ، از افزایش کلمه با -v یا -vv استفاده کنید:
sudo nmap -vv 192.168.10.121
برای انجام اسکن UDP ، دستور را با گزینه (-sU) به عنوان کاربر اصلی فراخوانی کنید:
sudo nmap -sU 192.168.10.121
Nmap همچنین آدرس IPv6 را پشتیبانی می کند. برای تعیین IPv6 host از گزینه -۶ استفاده کنید:
sudo nmap -6 fd12:3456:789a:1::1
Nmap تمام استدلال هایی را که options نیستند به عنوان target hosts مورد بررسی قرار می دهد. ساده ترین گزینه این است که یک یا چند آدرس target یا نام دامنه را ارسال کنید:
nmap 192.168.10.121 host.to.scan
می توانید از نماد CIDR برای تعیین محدوده شبکه استفاده کنید:
nmap 192.168.10.0/24
برای تعیین محدوده هشت گانه از کاراکتر خط تیره استفاده کنید. به عنوان مثال ، برای اسکن ۱۹۲٫۱۶۸٫۱۰٫۱ ، ۱۹۲٫۱۶۸٫۱۱٫۱ و ۱۹۲٫۱۶۸٫۱۲٫۱ به روش زیر عمل می کنیم:
nmap 192.168.10-12.1
یکی دیگر از کاراکترهایی که می توانید برای تعیین targets استفاده کنید کاما است. دستور زیر همان hostهای بالا را targets قرار می دهد:
nmap 192.168.10,11,12.1
می توانید همه اشکال را ترکیب کنید:
nmap 10.8-10.10,11,12.0/28 192.168.1-2.100,101
برای اطمینان از اینکه hosts صحیح را قبل از اسکن مشخص کرده اید ، از گزینه list scan (-sL) استفاده کنید ، که فقط targets را بدون اجرای اسکن لیست می کند:
nmap -sL 10.8-10.10,11,12.0/28 192.168.1-2.100,101
اگر می خواهید targets را که در محدوده تعیین شده شما قرار دارند حذف کنید ، از گزینه –exclude استفاده کنید:
nmap 10.8-10.10,11,12.0/28 --exclude 10.10.12.12
به طور پیش فرض ، Nmap اسکن سریع ۱۰۰۰ پورت محبوب را انجام می دهد. این پورت ها اولین ۱۰۰۰ پورت متوالی نیستند ، بلکه ۱۰۰۰ پورت متداول بین ۱ تا ۶۵۳۸۹ هستند. برای اسکن همه پورت ها از ۱ تا ۶۵۵۳۵ ، از گزینه -p- استفاده کنید:
nmap -p- 192.168.10.121
هر پورت می تواند در یکی از حالات زیر باشد:
پورت ها و محدوده پورت ها با گزینه -p مشخص می شوند. به عنوان مثال ، برای اسکن پورت ۴۴۳ ، باید از دستور زیر استفاده کنید:
nmap -p 443 192.168.10.121
برای تعیین بیش از یک پورت ، پورت های target را با کاما جدا کنید:
nmap -p 80,443 192.168.10.121
محدوده پورت را می توان با علامت خط تیره مشخص کرد. به عنوان مثال ، برای اسکن همه پورت های UDP از ۱ تا ۱۰۲۴ ، باید دستور زیر را اجرا کنید:
sudo nmap -sU -p 1-1024 192.168.10.121
ترکیب هه پورت ها:
nmap -p 1-1024,8080,9000 192.168.10.121
پورت ها را نیز می توان با استفاده از نام پورت مشخص کرد. به عنوان مثال ، برای اسکن پورت ۲۲ ، ssh ، می توانید از دستور زیر استفاده کنید:
nmap -p ssh 192.168.10.121
برای انجام اسکن ping یا host discovery ، دستور nmap را با گزینه -sn فراخوانی کنید:
sudo nmap -sn 192.168.10.0/24
گزینه -sn به Nmap می گوید فقط hostهای آنلاین را discover کند و اسکن پورت را انجام ندهد. این زمانی مفید است که بخواهید به سرعت تعیین کنید کدام یک از hostهای مشخص در حال اجرا هستند.
رفتار پیش فرض Nmap انجام رزولوشن DNS معکوس برای هر discovered host است که زمان اسکن را افزایش می دهد. هنگام اسکن شبکه های بزرگ ، ایده خوبی است که وضوح معکوس DNS را غیرفعال کرده و سرعت اسکن ها را افزایش دهید. برای انجام این کار ، دستور زیر را با گزینه -n فراخوانی کنید:
sudo nmap -n 192.168.10.0/16
Nmap می تواند سیستم عامل host ریموت را با استفاده از TCP/IP stack fingerprinting تشخیص دهد. برای اجرای OS detection ، دستور زیر را با گزینه -O فراخوانی کنید:
sudo nmap -O scanme.nmap.org
اگر Nmap بتواند سیستم عامل host را تشخیص دهد ، چیزی مانند دستور زیر را نمایش می دهد:
... Device type: general purpose Running: Linux 5.X OS CPE: cpe:/o:linux:linux_kernel:5 OS details: Linux 5.0 - 5.4 Network Distance: 18 hops OS detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 26.47 seconds
به طور معمول ، سرویس های سیستم با پورت های استاندارد فراخوانی می شوند که برای آنها شناخته شده و رزرو شده است. به عنوان مثال ، اگر پورت ۲۲ که مربوط به سرویس SSH است باز باشد ، فرض می کنید که یک سرور SSH روی host اجرا می شود. با این حال ، شما نمی توانید کاملاً مطمئن باشید زیرا مردم می توانند services را روی هر پورت که می خواهند اجرا کنند. با تشخیص services و ورژن ، Nmap به شما نشان می دهد که چه برنامه ای در پورت و ورژن برنامه فراخوانی می شود. برای اسکن services و ورژن ، از گزینه -sV استفاده کنید:
sudo nmap -sV scanme.nmap.org
... PORT STATE SERVICE VERSION ۱۹/tcp filtered chargen ۲۲/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0) ۸۰/tcp open http Apache httpd 2.4.7 ((Ubuntu)) ۱۳۵/tcp filtered msrpc ۱۳۹/tcp filtered netbios-ssn ۴۴۵/tcp filtered microsoft-ds ۹۹۲۹/tcp open nping-echo Nping echo ۳۱۳۳۷/tcp open tcpwrapped Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel ...
همچنین می توانید سیستم عامل ، ورژن ها را اسکن کرده و traceroute را در یک دستور با استفاده از گزینه -A اجرا کنید:
sudo nmap -A 192.168.10.121
به طور پیش فرض ، Nmap اطلاعات را در خروجی استاندارد (stdout) نمایش می دهد. اگر یک شبکه بزرگ را اسکن می کنید یا برای استفاده بعدی به اطلاعات نیاز دارید ، می توانید خروجی را در یک فایل ذخیره کنید. Nmap چندین نوع خروجی را ارائه می دهد. برای ذخیره خروجی در قالب معمولی ، از گزینه -oN و به دنبال نام فایل استفاده کنید:
sudo nmap -sU -p 1-1024 192.168.10.121 -oN output.txt
محبوب ترین گزینه ذخیره خروجی با فرمت XML است. برای انجام این کار ، از گزینه -oX استفاده کنید:
sudo nmap -sU -p 1-1024 192.168.10.121 -oX output.xml
فرمت مفید دیگر خروجی grepable است که با ابزارهای استاندارد یونیکس مانند grep ، awk و cut قابل تجزیه است. خروجی grepable با گزینه -oG مشخص شده است:
sudo nmap -sU -p 1-1024 192.168.10.121 -oG output
یکی از قدرتمندترین ویژگی های Nmap ، ماشین اسکریپت نویسی آن است. Nmap با صدها قطعه خط ارسال می شود و همچنین می توانید برگه های خود را به زبان Lua بنویسید. می توانید از scrips برای تشخیص بدافزارها و backdoors و موارد دیگر استفاده کنید. به عنوان مثال ، برای بررسی اینکه آیا host آسیب دیده است یا خیر ، می توانید از دستور زیر استفاده کنید:
nmap -sV --script http-malware-host scanme.nmap.org
Nmap یک ابزار اپن سورس است که عمدتا توسط مدیران شبکه برای discover host و اسکن استفاده می شود.
امیدواریم مطالب مورد پسند بوده و از آن بهره لازم را برده باشید. خوشحال میشویم نظرات و سوالات خود را در قسمت دیدگاه به اشتراک بگذارید و ما را در شتابان هاست همراهی کنید.😊