نحوه استفاده از دستور nmap

نحوه استفاده از دستور nmap

سعیده مهاجری

Nmap مخفف عبارت Network Mapper است . یک اسکنر رایگان و اپن سورس است که  توسط Gordon lyon یا Fyodor vaskovich ساخته شده است. Nmap برای پیدا کردن Hostها و سرویس های شبکه کامپیوتری با فرستادن پکت و آنالیز پاسخ آن ها به کار گرفته می شود. Nmap همچنین می تواند آدرس مک ، نوع سیستم عامل ، ورژن سرویس و موارد دیگر را تشخیص دهد. در این آموزش با ما همراه باشید تا به شما عزیزان درباره نحوه استفاده از دستور nmap برای انجام کارهای مختلف شبکه توضیح دهیم.

نصب Nmap :

Nmap یک برنامه چند پلتفرمی است که می تواند بر روی تمام سیستم عامل های اصلی نصب شود. در ابتدا به عنوان یک ابزار تنها برای لینوکس منتشر شد ، و بعداً به سیستم های دیگر مانند BSD ، Windows و macOS منتقل شد. اگر GUI را به خط فرمان ترجیح می دهید ، Nmap همچنین دارای یک رابط کاربری گرافیکی به نام Zenmap است. بسته های باینری رسمی از صفحه دانلود Nmap برای دانلود در دسترس هستند. روش نصب ساده است و بسته به سیستم عامل شما متفاوت است.

نصب Nmap در اوبونتو و دبیان :

Nmap از مخازن پیش فرض اوبونتو و دبیان در دسترس است. برای نصب آن دستور زیر را اجرا کنید:

sudo apt updatesudo apt install nmap

نصب Nmap در CentOS و Fedora :

در CentOS و سایر مشتقات Red Hat اجرا می شود:

sudo dnf install nmap

نصب Nmap در macOS :

کاربران macOS می توانند Nmap را با دانلود بسته نصب “.dmg” از سایت Nmap یا از طریق Homebrew نصب کنند:

brew install nmap

نصب Nmap در ویندوز :

ورژن Windows Nmap دارای محدودیت هایی است و به طور کلی کمی کندتر از ورژن UNIX است. ساده ترین گزینه برای نصب Nmap در ویندوز این است که فایل exe خود نصب را دانلود و اجرا کنید. می توانید Nmap را در ویندوز یا از طریق خط فرمان یا با راه اندازی برنامه Zenmap اجرا کنید. برای اطلاعات بیشتر در مورد نحوه استفاده از Nmap در Windows ، دستورالعمل های استفاده پس از نصب را بررسی کنید.

استفاده از Nmap :

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

تعیین Target Hosts :

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

هر پورت می تواند در یکی از حالات زیر باشد:

  • open – برنامه ای که روی پورت اجرا می شود به درخواست پاسخ می دهد.
  • closed – هیچ برنامه ای روی پورت اجرا نمی شود و host به درخواست ها پاسخ می دهد.
  • host  filtered به درخواست پاسخ نمی دهد.

پورت ها و محدوده پورت ها با گزینه -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 :

برای انجام اسکن ping یا host discovery ، دستور nmap را با گزینه -sn فراخوانی کنید:

sudo nmap -sn 192.168.10.0/24

گزینه -sn به Nmap می گوید فقط hostهای آنلاین را discover کند و اسکن پورت را انجام ندهد. این زمانی مفید است که بخواهید به سرعت تعیین کنید کدام یک از hostهای مشخص در حال اجرا هستند.

غیرفعال کردن رزولوشن DNS Name :

رفتار پیش فرض Nmap انجام رزولوشن DNS معکوس برای هر discovered host است که زمان اسکن را افزایش می دهد. هنگام اسکن شبکه های بزرگ ، ایده خوبی است که وضوح معکوس DNS را غیرفعال کرده و سرعت اسکن ها را افزایش دهید. برای انجام این کار ، دستور زیر را با گزینه -n فراخوانی کنید:

sudo nmap -n 192.168.10.0/16

OS, Service and Version Detection :

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 :

به طور پیش فرض ، 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 و اسکن استفاده می شود.

امیدواریم مطالب مورد پسند بوده و از آن بهره لازم را برده باشید. خوشحال میشویم نظرات و سوالات خود را در قسمت دیدگاه به اشتراک بگذارید و ما را در شتابان هاست همراهی کنید.😊

ارسال دیدگاه جدید