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

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

سعیده مهاجری

nmap ابزاری قدرتمند برای اسکن شبکه برای security audits و penetration testing است. این یکی از ابزارهای اساسی است که توسط administrators شبکه برای عیب یابی مشکلات اتصال به شبکه و اسکن پورت استفاده می شود.nmap همچنین می تواند آدرس Mac ، نوع سیستم عامل ، نسخه سرویس و موارد دیگر را تشخیص دهد.در این مقاله نحوه استفاده از دستور nmap برای انجام کارهای مختلف شبکه را توضیح خواهیم داد.

نصب nmap :

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

nmap همچنین دارای یک interface گرافیکی به نام Zenmap است.

packages باینری رسمی برای دانود از صفحه دانلود Nmap در دسترس هستند.

روش نصب ساده است و با توجه به سیستم عامل شما متفاوت است.

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

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

sudo apt updatesudo apt install nmap

نصب nmap در CentOS و Fedora :

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

sudo dnf install nmap

نصب nmap در macOS :

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

brew install nmap

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

نسخه ویندوز nmap محدودیت هایی دارد و به طور کلی کمی کندتر از نسخه UNIX است.

ساده ترین گزینه برای نصب nmap در ویندوز ، دانلود و اجرای فایل exe خود نصب است.

می توانید nmap را از طریق command line یا با راه اندازی برنامه Zenmap در ویندوز اجرا کنید. برای کسب اطلاعات بیشتر در مورد نحوه استفاده از nmap در ویندوز ، دستورالعمل های استفاده پس از نصب را بررسی کنید.

با استفاده از nmap :

nmap معمولاً برای بررسی امنیت شبکه ، نقشه برداری شبکه ، شناسایی پورتهای باز و جستجوی دستگاههای آنلاین استفاده می شود.

دستور ساده دستور nmap به شرح زیر است:

nmap [Options] [Target...]

اولین مثال استفاده از nmap اسکن یک single target به عنوان یک کاربر استاندارد و بدون تعیین هیچ گزینه ای است:

nmap scanme.nmap.org

وقتی nmap به عنوان یک کاربر غیر روت که امتیاز package خام ندارد فراخوانی می شود ، اسکن TCP Connect را اجرا می کند. (-sT) به صورت پیش فرض در حالت غیرمتعارف روشن می شود.

خروجی شبیه دستور زیر است :

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) است که سریعتر از گزینه اتصال است و در برابر همه compliant TCP stacks کار می کند.

-sS به طور پیش فرض وقتی nmap به عنوان کاربری با امتیازات اداری فراخوانی می شود ، روشن می شود:

sudo nmap 192.168.10.121

برای خروجی دقیق تر ، از verbosity با -v یا -vv استفاده کنید:

sudo nmap -vv 192.168.10.121

برای انجام اسکن UDP ، دستور زیر را با گزینه (-sU) به عنوان کاربر اصلی فراخوانی کنید:

sudo nmap -sU 192.168.10.121

برای لیست کاملی از روشهای اسکن بندر ، به صفحه اسناد nmap مراجعه کنید.

nmap همچنین از آدرس های IPv6 پشتیبانی می کند. برای تعیین میزبان IPv6 از گزینه -۶ استفاده کنید:

sudo nmap -6 fd12:3456:789a:1::1

مشخص کردن Target Hosts :

nmap تمام آرگومان هایی را که options نیستند ، به عنوان target hosts بررسی می کند.

آرگومان ها اگر با یک خط تیره یا دوتایی شروع شوند (- ، -) options محسوب می شوند.

ساده ترین options عبور از یک یا چند آدرس target یا نام دامنه است:

nmap 192.168.10.121 host.to.scan

برای تعیین دامنه شبکه می توانید از علامت گذاری CIDR استفاده کنید:

nmap 192.168.10.0/24

برای تعیین یک محدوده هشت تایی از dash استفاده کنید. به عنوان مثال ، برای اسکن ۱۹۲٫۱۶۸٫۱۰٫۱ ، ۱۹۲٫۱۶۸٫۱۱٫۱ و ۱۹۲٫۱۶۸٫۱۲٫۱:

nmap 192.168.10-12.1

character دیگری که می توانید برای تعیین targets استفاده کنید ، comma است. دستور زیر همان hosts مورد نظر را targets قرار می دهد:

nmap 192.168.10,11,12.1

شما می توانید همه فرم ها را combine کنید:

nmap 10.8-10.10,11,12.0/28 192.168.1-2.100,101

برای اطمینان از اینکه hosts صحیحی را قبل از اسکن مشخص کرده اید ، از گزینه اسکن لیست (-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

Specifying و اسکن Ports :

به طور پیش فرض ، nmap یک اسکن سریع برای ۱۰۰۰ پورت محبوب انجام می دهد. این پورت ها ۱۰۰۰ پورت متوالی اول نیستند ، بلکه ۱۰۰۰ پورت متداول از ۱ تا ۶۵۳۸۹ هستند.

برای اسکن همه درگاه ها از ۱ تا ۶۵۵۳۵ ، از گزینه -p- استفاده کنید:

nmap -p- 192.168.10.121

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

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

پورت ها با گزینه -p مشخص می شوند.

به عنوان مثال ، برای اسکن کردن پورت ۴۴۳ ، از دستور زیر استفاده کنید:

nmap -p 443 192.168.10.121

برای مشخص کردن بیش از یک پورت ، پورت های target را با comma جدا کنید:

nmap -p 80,443 192.168.10.121

دامنه های Port را می توان با dash مشخص کرد. به عنوان مثال ، برای اسکن تمام پورت های UDP از ۱ تا ۱۰۲۴ ، دستور زیر را اجرا کنید:

sudo nmap -sU -p 1-1024 192.168.10.121

همه combined :

nmap -p 1-1024,8080,9000 192.168.10.121

با استفاده از نام پورت نیز می توان پورت ها را مشخص کرد. به عنوان مثال ، برای اسکن پورت ۲۲ ، از ssh می توانید استفاده کنید:

nmap -p ssh 192.168.10.121

Ping Scanning :

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

sudo nmap -sn 192.168.10.0/24

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

غیرفعال کردن Resolution نام DNS :

رفتار پیش فرض nmap که reverse-DNS برای هر host کشف شده است که باعث افزایش زمان اسکن می شود.

هنگام اسکن شبکه های بزرگ ، بهتر است reverse-DNS را غیرفعال کرده و اسکن ها را تسریع کنید. برای انجام این کار ، دستور زیر را با گزینه -n فراخوانی کنید:

sudo nmap -n 192.168.10.0/16

سیستم عامل ، سرویس و Version Detection :

nmap می تواند سیستم عامل host از راه دور را با استفاده از TCP/IP stack fingerprinting شناسایی کند. برای اجرای سیستم عامل ، دستور زیر را با گزینه -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 اجرا می شود. با این حال ، نمی توانید کاملاً

مطمئن باشید زیرا افراد می توانند در هر پورتی که بخواهند خدمات را اجرا کنند.

با شناسایی سرویس و نسخه ، nmap به شما نشان می دهد از چه برنامه ای روی پورت و نسخه برنامه پیروی میکند .

برای اسکن سرویس و نسخه ، از گزینه -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

همچنین با استفاده از گزینه -A می توانید سیستم عامل ، نسخه ها را اسکن کرده و traceroute را اجرا کنید:

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

قالب مفید دیگر ، خروجی قابل تنظیم است که می تواند با ابزارهای استاندارد یونیکس مانند grep ، awk و cut تجزیه شود. خروجی قابل تنظیم با گزینه -oG مشخص شده است :

sudo nmap -sU -p 1-1024 192.168.10.121 -oG output

nmap Scripting Engine :

یکی از قدرتمندترین ویژگی های nmap اسکریپت نویسی آن است. nmap با صدها scrips ارسال می شود و همچنین می توانید scrips خود را به زبان Lua بنویسید.

می توانید از اسکریپت ها برای شناسایی بدافزار و backdoors ، انجام حملات بی رحمانه و موارد دیگر استفاده کنید.

به عنوان مثال ، برای بررسی اینکه host مشخصی به خطر بیفتد می توانید از دستور زیر استفاده کنید:

nmap -sV --script http-malware-host scanme.nmap.org

جمع بندی :

در این مقاله نحوه استفاده از دستور nmap را برای سما عزیزان توضیح دادبم .

nmap ابزاری اپن سورس  است که در درجه اول توسط administrators شبکه برای کشف host و اسکن پورت ها استفاده می شود.

لطفاً توجه داشته باشید که در برخی کشورها اسکن شبکه بدون مجوز قانونی نیست.

امیدواریم مطالب مورد پسند بوده باشد.

ما را در شتابان هاست همراهی کنید.