خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
نحوه استفاده از دستور nmap در لینوکس
دستور Nmap یک ابزار قدرتمند اسکن شبکه برای ممیزی های امنیتی(security audit ها) و تست نفوذ است. Nmap یکی از ابزارهای ضروری ای است که توسط ادمین های شبکه برای عیب یابی مشکلات network connectivity و پورت اسکن استفاده می شود.
Nmap همچنین می تواند آدرس مک، نوع سیستم عامل، نسخه سرویس و موارد دیگر را شناسایی کند. این مقاله اصول پایه ای نحوه استفاده از دستور nmap برای انجام وظایف مختلف شبکه را توضیح می دهد.
Nmap یک برنامه چند پلتفرمی است که می تواند بر روی تمام سیستم عامل های مختلف نصب شود. در ابتدا فقط به عنوان یک ابزار لینوکسی انتشار یافت و بعداً پای nmap به سیستم های دیگری مانند BSD، Windows و macOS باز شد.
اگر GUI را به خط فرمان ترجیح می دهید، Nmap یک رابط کاربری گرافیکی به نام Zenmap نیز دارد که از این لینک می توانید آن را دانلود کنید.
مراحل نصب ساده است و بسته به سیستم عامل شما این مراحل متفاوت است.
Nmap معمولاً برای بررسی امنیت شبکه، network mapping، شناسایی پورتهای باز و جستجوی دستگاههای آنلاین استفاده میشود. syntax استفاده از دستور nmap به صورت زیر است:
ابتدایی ترین مثال استفاده از Nmap اسکن یک سیستم(target) به عنوان یک کاربر استاندارد بدون تعیین هیچ گزینه ای(Options) است:
هنگامی که nmap به عنوان یک کاربر غیر root که دارای امتیازات raw packet نیست، اجرا می شود، اسکن اتصال TCP را اجرا می کند. در خروجی اطلاعاتی از جمله اطلاعات اولیه در مورد اسکن و لیستی از پورت های TCP باز و فیلتر شده را مشاهده خواهید کرد.
محبوب ترین گزینه اسکن، اسکن TCP SYN (-sS) است که سریعتر از گزینه connect بوده و و در برابر همه TCP stack ها سازگار عمل می کند. هنگامی که nmap به عنوان کاربر با امتیازات ادمینی اجرا می شود -sS به طور پیش فرض on می شود:
برای خروجی دقیق تر، -v یا -vv استفاده کنید:
برای انجام اسکن UDP، دستور را با گزینه (-sU) تحت عنوان کاربر root اجرا کنید:
Nmap از IPv6 نیز پشتیبانی می کند. برای تعیین هاست IPv6 از گزینه 6- استفاده کنید:
Nmap با تمام آرگومان هایی که گزینه(Options) نیستند به عنوان target Host رفتار می کند. اگر آرگومان ها با یک خط تیره (-، --) مشخص شوند، آنها گزینه در نظر گرفته می شوند.
در دستور زیر ما دو هاست را به عنوان target به nmap پاس دادیم که البته یکی را با IP و دیگری را با نام معرفی کردیم.
حتی می توانید بصورت زیر محدود شبکه را مشخص کنید که اسکن در آن شبکه صورت بگیرد.
اگر محدوده ای از شبکه ها را مد نظر دارید که همگی پشت سر هم هستند، مثلا 192.168.10.1 و 192.168.11.1 , 192.168.12.1 دستور را به صورت زیر اجرا کنید:
کاراکتر دیگری که می توانید برای تعیین اهداف استفاده کنید کاما است. همین دستور فوق را به صورت زیر اجرا می کنیم:
شما می توانید همه فرم ها را ترکیب کنید:
برای اطمینان از اینکه هاست های صحیح را قبل از اسکن مشخص کرده اید، از گزینه اسکن لیست (-sL) استفاده کنید، که فقط target ها را بدون اسکن لیست می کند:
اگر می خواهید target خاصی را از محدود مشخص شده حذف کنید، از exclude—استقاده کنید.
به طور پیش فرض، Nmap یک اسکن سریع برای 1000 پورت رایج را انجام می دهد. این پورت ها اولین 1000 پورت متوالی نیستند، بلکه 1000 پورت پر استفاده از 1 تا 65389 هستند. برای اسکن تمام پورت ها از 1 تا 65535، از گزینه -p- استفاده کنید:
هر پورت می تواند در یکی از حالت های زیر باشد:
Open برنامه در حال اجرا روی پورت به درخواست پاسخ می دهد.
Closed هیچ برنامه ای روی پورت اجرا نبوده و هاست به درخواست ها پاسخ می دهد.
Filtered هاست به درخواست پاسخ نمی دهد.
پورت ها و محدوده پورت ها با گزینه -p مشخص می شوند. به عنوان مثال، برای اسکن فقط پورت 443، از دستور زیر استفاده کنید:
برای تعیین بیش از یک پورت، پورت های مورد نظر را با کاما جدا کنید:
محدوده پورت را می توان با علامت دش مشخص کرد. ه عنوان مثال، برای اسکن تمام پورت های UDP از 1 تا 1024، دستور زیر را اجرا کنید:
و بصورت ترکیبی:
پورت ها را می توان با استفاده از نام پورت نیز مشخص کرد. به عنوان مثال، برای اسکن پورت 22، ssh، می توانید بصورت زیر دستور را اجرا کنید:
برای انجام ping scanning یا host discovery دستور nmap را با گزینه -sn اجرا کنید:
گزینه sn- به Nmap می گوید فقط هاست های آنلاین را شناسایی کرده و پورت اسکن را انجام ندهد. این گزینه زمانی کاربردی است که بخواهید به سرعت تعیین کنید چه هاست هایی در حال اجرا می باشد.
رفتار پیشفرض Nmap اجرای reverse-DNS resolution برای هر هاست کشفشده است که زمان اسکن را افزایش میدهد. هنگام اسکن شبکه های بزرگ، ایده خوبی است که reverse-DNS resolution را غیرفعال کنید و سرعت اسکن ها را افزایش دهید. برای انجام این کار، دستور را با گزینه n- اجرا کنید:
به طور پیش فرض، Nmap اطلاعات را در خروجی استاندارد (stdout) پرینت کرده و نمایش می دهد. اگر یک شبکه بزرگ را اسکن می کنید یا برای استفاده بعدی به اطلاعات نیاز دارید، می توانید خروجی را در یک فایل ذخیره کنید. Nmap چندین نوع خروجی را ارائه می دهد. برای ذخیره خروجی در فرمت عادی، از گزینه oN- و سپس نام فایل استفاده کنید:
محبوب ترین خروجی در فرمت XML است. برای انجام این کار، از گزینه oX- استفاده کنید:
فرمت مفید دیگر خروجی grepable است که می تواند با ابزارهای استاندارد یونیکس مانند grep، awk و cut آنالیز شود. خروجی grepable با گزینه oG- مشخص می شود:
یکی از قدرتمندترین ویژگی های Nmap موتور برنامه نویسی آن است. Nmap با صدها اسکریپ عرضه می شود و همچنین می توانید اسکریپ های خود را به زبان Lua بنویسید. میتوانید از اسکریپها برای شناسایی بدافزارها و backdoor ها، انجام حملات brute-force و موارد دیگر استفاده کنید. به عنوان مثال، برای بررسی اینکه آیا این هاست مشخص شده به خطر افتاده است، می توانید از دستور زیر استفاده کنید:
Nmap همچنین می تواند آدرس مک، نوع سیستم عامل، نسخه سرویس و موارد دیگر را شناسایی کند. این مقاله اصول پایه ای نحوه استفاده از دستور nmap برای انجام وظایف مختلف شبکه را توضیح می دهد.
Nmap یک برنامه چند پلتفرمی است که می تواند بر روی تمام سیستم عامل های مختلف نصب شود. در ابتدا فقط به عنوان یک ابزار لینوکسی انتشار یافت و بعداً پای nmap به سیستم های دیگری مانند BSD، Windows و macOS باز شد.
اگر GUI را به خط فرمان ترجیح می دهید، Nmap یک رابط کاربری گرافیکی به نام Zenmap نیز دارد که از این لینک می توانید آن را دانلود کنید.
مراحل نصب ساده است و بسته به سیستم عامل شما این مراحل متفاوت است.
نحوه نصب Nmap در اوبونتو و دبیان
Nmap از مخازن پیشفرض اوبونتو و دبیان در دسترس است. برای نصب Nmap، دستور زیر را اجرا کنید:sudo apt update
sudo apt install nmap
نحوه نصب Nmap در Fedora و CentOS
در CentOS و سایر مشتقات Red Hat دستور زیر را اجرا کنید:sudo dnf install nmap
نحوه نصب Nmap در macOS
کاربران macOS میتوانند Nmap را با دانلود پکیج نصب «.dmg» از سایت Nmap یا از طریق Homebrew نصب کنند:brew install nmap
Nmap معمولاً برای بررسی امنیت شبکه، network mapping، شناسایی پورتهای باز و جستجوی دستگاههای آنلاین استفاده میشود. syntax استفاده از دستور nmap به صورت زیر است:
nmap [Options] [Target...]
ابتدایی ترین مثال استفاده از Nmap اسکن یک سیستم(target) به عنوان یک کاربر استاندارد بدون تعیین هیچ گزینه ای(Options) است:
nmap scanme.nmap.org
هنگامی که nmap به عنوان یک کاربر غیر root که دارای امتیازات raw packet نیست، اجرا می شود، اسکن اتصال TCP را اجرا می کند. در خروجی اطلاعاتی از جمله اطلاعات اولیه در مورد اسکن و لیستی از پورت های 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
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
110/tcp open pop3
143/tcp open imap
443/tcp open https
587/tcp open submission
993/tcp open imaps
995/tcp open pop3s
1025/tcp open NFS-or-IIS
1080/tcp open socks
8080/tcp open http-proxy
8081/tcp open blackice-icecap
Nmap done: 1 IP address (1 host up) scanned in 1.78 seconds
محبوب ترین گزینه اسکن، اسکن TCP SYN (-sS) است که سریعتر از گزینه connect بوده و و در برابر همه TCP stack ها سازگار عمل می کند. هنگامی که nmap به عنوان کاربر با امتیازات ادمینی اجرا می شود -sS به طور پیش فرض on می شود:
sudo nmap 192.168.10.121
برای خروجی دقیق تر، -v یا -vv استفاده کنید:
sudo nmap -vv 192.168.10.121
برای انجام اسکن UDP، دستور را با گزینه (-sU) تحت عنوان کاربر root اجرا کنید:
sudo nmap -sU 192.168.10.121
Nmap از IPv6 نیز پشتیبانی می کند. برای تعیین هاست IPv6 از گزینه 6- استفاده کنید:
sudo nmap -6 fd12:3456:789a:1::1
Nmap با تمام آرگومان هایی که گزینه(Options) نیستند به عنوان target Host رفتار می کند. اگر آرگومان ها با یک خط تیره (-، --) مشخص شوند، آنها گزینه در نظر گرفته می شوند.
در دستور زیر ما دو هاست را به عنوان target به nmap پاس دادیم که البته یکی را با IP و دیگری را با نام معرفی کردیم.
nmap 192.168.10.121 host.to.scan
حتی می توانید بصورت زیر محدود شبکه را مشخص کنید که اسکن در آن شبکه صورت بگیرد.
nmap 192.168.10.0/24
اگر محدوده ای از شبکه ها را مد نظر دارید که همگی پشت سر هم هستند، مثلا 192.168.10.1 و 192.168.11.1 , 192.168.12.1 دستور را به صورت زیر اجرا کنید:
nmap 192.168.10-12.1
کاراکتر دیگری که می توانید برای تعیین اهداف استفاده کنید کاما است. همین دستور فوق را به صورت زیر اجرا می کنیم:
nmap 192.168.10,11,12.1
شما می توانید همه فرم ها را ترکیب کنید:
nmap 10.8-10.10,11,12.0/28 192.168.1-2.100,101
برای اطمینان از اینکه هاست های صحیح را قبل از اسکن مشخص کرده اید، از گزینه اسکن لیست (-sL) استفاده کنید، که فقط target ها را بدون اسکن لیست می کند:
nmap -sL 10.8-10.10,11,12.0/28 192.168.1-2.100,101
اگر می خواهید target خاصی را از محدود مشخص شده حذف کنید، از exclude—استقاده کنید.
nmap 10.8-10.10,11,12.0/28 --exclude 10.10.12.12
به طور پیش فرض، Nmap یک اسکن سریع برای 1000 پورت رایج را انجام می دهد. این پورت ها اولین 1000 پورت متوالی نیستند، بلکه 1000 پورت پر استفاده از 1 تا 65389 هستند. برای اسکن تمام پورت ها از 1 تا 65535، از گزینه -p- استفاده کنید:
nmap -p- 192.168.10.121
هر پورت می تواند در یکی از حالت های زیر باشد:
Open برنامه در حال اجرا روی پورت به درخواست پاسخ می دهد.
Closed هیچ برنامه ای روی پورت اجرا نبوده و هاست به درخواست ها پاسخ می دهد.
Filtered هاست به درخواست پاسخ نمی دهد.
پورت ها و محدوده پورت ها با گزینه -p مشخص می شوند. به عنوان مثال، برای اسکن فقط پورت 443، از دستور زیر استفاده کنید:
nmap -p 443 192.168.10.121
برای تعیین بیش از یک پورت، پورت های مورد نظر را با کاما جدا کنید:
nmap -p 80,443 192.168.10.121
محدوده پورت را می توان با علامت دش مشخص کرد. ه عنوان مثال، برای اسکن تمام پورت های UDP از 1 تا 1024، دستور زیر را اجرا کنید:
sudo nmap -sU -p 1-1024 192.168.10.121
و بصورت ترکیبی:
nmap -p 1-1024,8080,9000 192.168.10.121
پورت ها را می توان با استفاده از نام پورت نیز مشخص کرد. به عنوان مثال، برای اسکن پورت 22، ssh، می توانید بصورت زیر دستور را اجرا کنید:
nmap -p ssh 192.168.10.121
برای انجام ping scanning یا host discovery دستور nmap را با گزینه -sn اجرا کنید:
sudo nmap -sn 192.168.10.0/24
گزینه sn- به Nmap می گوید فقط هاست های آنلاین را شناسایی کرده و پورت اسکن را انجام ندهد. این گزینه زمانی کاربردی است که بخواهید به سرعت تعیین کنید چه هاست هایی در حال اجرا می باشد.
رفتار پیشفرض Nmap اجرای reverse-DNS resolution برای هر هاست کشفشده است که زمان اسکن را افزایش میدهد. هنگام اسکن شبکه های بزرگ، ایده خوبی است که reverse-DNS resolution را غیرفعال کنید و سرعت اسکن ها را افزایش دهید. برای انجام این کار، دستور را با گزینه n- اجرا کنید:
sudo nmap -n 192.168.10.0/16
به طور پیش فرض، 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 بنویسید. میتوانید از اسکریپها برای شناسایی بدافزارها و backdoor ها، انجام حملات brute-force و موارد دیگر استفاده کنید. به عنوان مثال، برای بررسی اینکه آیا این هاست مشخص شده به خطر افتاده است، می توانید از دستور زیر استفاده کنید:
nmap -sV --script http-malware-host scanme.nmap.org
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: