آموزش تخصصی ابزار nmap و znmap در کالی لینوکس + آموزش تصویری
توی این آموزش تخصصی ابزار nmap و znmap در کالی لینوکس به معرفی دو ابزار جمع آوری اطلاعات nmap و znmap می پردازیم، ابزار nmap یک ابزار بسیار قوی و کاربردی می باشد.
Nmap انمپ چیست ؟ بهتر است این گونه آغاز کنیم. اولین پروسه تست نفوذ جمع آوری اطلاعات قربانی هدف است. رایج ترین و بهترین ابزار به منظور جستجو و اسکن شبکه هدف ابزار Nmap میباشد. از مهمترین ویژگیهای انمپ Nmap میتوان به شناسایی کامل میزبان هدف، اسکن پورت ها، تشخیص نسخه اپلیکیشن ها و سرویس ها و تشخیص سیستم عامل اشاره کرد.
از دیگر ویژگیهای کاربردی ابزار انمپ میتوان به بازرسی امنیتی فایروال ها و ابزارهای تشخیص نفوذ، شناسایی پورت های باز بر روی میزبان هدف، جمع آوری اطلاعات و اکتشاف شبکه هدف، بازرسی سرورها، جمع آوری ترافیک میزبان ها بر روی یک شبکه و همچنین پیدا کردن آسیبپذیری های موجود در یک شبکه اشاره کرد.
انمپ یک ابزار خط فرمان میباشد و به منظور استفاده از آن بایستی دستورات ویژه ای را یاد بگیرید. علاوه بر این به منظور راحتی کار کاربران یک رابط گرافیکی ویژه با نام زنمپ ایجاد شده است.
قابلیتهای نرم افزار nmap
- اسکن سریع تمامی پورتها
- شناسایی سیستم عامل هدف
- ارسال پکت ناشناس جهت رد کردن فایروال
- قابلیت اسکن محدوده خاصی از پورتها
- قابلیت Spoofing
- قابلیت ذخیره سازی نتیجه اسکن با فرمت های مختلف
- قبلیت تنظیم TTL برای رد کردن فایروال هوشمند
- قابلیت زمانبندی ارسال پکتها جهت اسکن هوشمند
- قابلیت شناسایی سرویسها با پورت باز
- قابلیت تنظیم تکنیکهای مختلف اسکن
نرم افزار nmap و znmap را می توانید از قسمت information gathering پیدا کنید.
برخی از دستورات مهم nmap را میتوایند در زیر ببیند :
با استفاده از دستور زیر میتوانید یک آی پی را اسکن کنید
nmap -F 192.168.1.1
اسکن سریع همراه با ارائه جزئیات و نسخه پورتها
nmap -v 192.168.1.1
شناسایی سیستم عامل به همراه اسکن با جزئیات
nmap -v -A 192.168.1.1
اسکن کامل با بازه دلخواه شماره پورتها
nmap -v -p 1-100 192.168.1.1
در دستور بالا تنها پورت های بازه 1 تا 100 اسکن شده و گزارش داده می شود.
اسکن با ارسال پکتهای تصادفی جهت جلوگیری از بلاک شدن در فایروال سیستم مقصد
nmap -v -f
ارسال پکت از یک پورت خاص جهت اسکن ناشناس
nmap -v 192.168.1.1 -g 80
در دستور بالا nmap تمامی پکتها را از طریق پورت 80 شما ارسال می کند و سیستم مقصد به عنوان یک درخواست وب به آن نگاه می کند.
اسکن یک سیستم در مواقعی که سیستم مقصد ping را بلاک کرده باشد.
nmap -v -Pn
نرم افزار nmap برای چک کردن وضعیت سیستم از پروتکل ICMP استفاده می کند و در صورتی که کاربر این پروتکل را بلاک کرده باشد باید از سوییچ Pn-استفاده کنید.
نمونه ای از یک دستور کامل برای استفاده از nmap
nmap -v -A -Pn -f -p 1-65535 192.168.1.1 -g 80
اجرای یک سری دستورات کاربردی Nmap در کارگاه عملی
حوزه یافتن Host های موجود در شبکه
در این مثال هر دو ماشین در شبکه اختصاصی رنج 192.168.56.0/24 هستند. ماشین کالی با ip آدرس 192.168.56.101 و ماشین metasploitable که باید اسکن شود ip آدرس 192.168.56.102 را دارند.
یک اسکن سریع nmap میتواند برای تشخیص این که چه ماشین هایی روی شبکه خاص موجود هستند کمک کند، این اسکن با عنوان اسکن simple list شناخته میشود و آپشن -sL برای این منظور باید به دستور nmap پاس داده شود.
کد :
PHP:# nmap -sL 192.168.56.0/24
متاسفانه این اسکن ابتدایی هیچ هاست موجودی را نمایش نداد. بعضی اوقات این مورد گواهی بر این که سیستم عامل ها با استفاده از تجهیزات دفاعی خود (مثلا وجود فایروال) با ترافیک port scan شبکه مقابله و آن را مدیریت و کنترل می کنند.
پیدا کردن و Ping کردن تمام Host های موجود روی شبکه من
ترفندهایی وجود دارد که Nmap ماشین ها را پیدا کند. این ترفند به nmap می گوید که به سادگی تمامی آدرس های روی شبکه 192.168.56.0/24 را ping کند. آی پی ذکر شده در سه رنج اول ثابت می باشد ولی در رنج چهارم رنج آی پی برای 24 اسکن یعنی تا 24 آی پی متغیر می شود.
کد:
PHP:# nmap -sn 192.168.56.0/24
این بار Nmap یکسری اطلاعات هاست برمی گرداند. در این کامند آپشن -sn رفتار پیش فرض nmap را (تلاش برای اسکن پورتهای یک هاست) غیرفعال می کند و به سادگی host را ping میکند.
پیدا کردن پورت های باز روی Host ها
اکنون میخواهیم که Nmap این هاست های خاص را port scan کند و ببینیم چه اتفاقی خواهد افتاد.
کد :
PHP:# nmap 192.168.56.1,100-102
این بار nmap موفق به انجام کار شد این host خاص یکسری پورت های باز روی شبکه اش دارد.
این port ها همه نشانگر این هستند که یکسری از سرویس ها روی این ماشین خاص در حال listen کردن روی آن پورت ها هستند. همانطور که قبلا گفتیم ip آدرس 192.168.56.102 مربوط به ماشین metasploitable هست، علاوه براین چرا این تعداد port باز روی این Host وجو دارد.
داشتن این تعداد پورت باز روی ماشین ها بسیار غیر نرمال است در نتیجه بررسی موشکافانه تر این ماشین یک ایده عاقلانه ای میباشد. admin ها می توانند ماشین ها را روی شبکه و به صورت فیزیکال پیگیری کنند و به صورت local ماشین ها را بررسی کنند اما به نظرم کار جالبی نیست، با توجه به اینکه nmap میتواند این کار را برای ما بسیار سریع تر انجام دهد.
پیدا کردن سرویس هایی که روی پورت ها listen میکنند
اسکن بعدی service scan میباشد و قالبا برای تشخیص اینکه چه سرویس هایی روی یک ماشین روی پورت های خاص listen میکنند مورد استفاده قرار میگیرد.
nmap تمامی پورت های باز را پیدا می کند و تلاش میکند که اطلاعات سرویس هایی که روی هر پورت در حال اجرا هستند را برای ما برگرداند.
کد:
PHP:# nmap -sV 192.168.56.102
دقت کنید این بار nmap یکسری سرویس را برمی گرداند که ممکن است روی هر پورت خاص در حال اجرا باشد. همچنین nmap تلاش میکند که اطلاعات درباره سیستم عاملی که روی این ماشین نصب شده و همچنین hostname آن را نمایش دهد.
با توجه به بررسی این خروجی توجه یک ادمین شبکه جلب می شود. اولین خط اشاره به این دارد که ورژن vsftpd در حال اجرا روی این ماشین 2.3.4 می باشد. که یک ورژن واقعا قدیمی از vsftpd می باشد.
با جستجو در سایت ExploitDB خواهید دید که یک حفره های امنیتی جدی روی این ورژن خاص در سال 2011 دوباره پیدا شده است. (ExploitDB ID – 17491)
پیدا کردن Login های Anonymous روی FTP در Host
اکنون بررسی دقیق تری روی پورت خاص داشته باشیم تا ببینیم چه مواردی یافت خواهد شد.
کد:
PHP:# nmap -sC 192.168.56.102 -p 21
با این دستور Nmap اسکریپت پیش فرضش (-sC) را روی پورت FTP (با آپشن -p 21) روی هاست اجرا می کند. nmap می فهمد که لاگین anonymous روی ftp روی این سرور خاص مجاز است خواه این قضیه ایجاد مشکل بکند یا نکند.
بررسی حفره های امنیتی روی Host ها
با توجه به اطلاعات قبلی در مورد vsftpd که یک حفره امنیتی قدیمی دارد باید توجهی خاصی به این مورد داشت. بیاید بررسی کنیم که آیا nmap اسکریپتی برای چک کردن حفره های امنیتی vsftpd دارد؟
کد :
PHP:# locate .nse | grep ftp
دقت کنید که nmap یک اسکریپت NSE از قبل ایجاد شده برای مشکلات backdoor در vsftpd دارد. اکنون این script را برای این هاست اجرا می کنیم و نتیجه را می بینیم. اما قبل از آن مهم است که بدانیم چگونه اسکریپت را استفاده کنیم. با خواندن این توضیحات واضح هست که این اسکریپت برای مشاهده حفره های امنیتی ExploitDB مورد استفاده قرار می گیرد.
کد :
PHP:# nmap --script-help=ftp-vsftd-backdoor.nse
بیایید اسکریپت را اجرا کنیم و ببینیم چه اتفاقی می افتد.
کد:
PHP:# nmap --script=ftp-vsftpd-backdoor.nse 192.168.56.102 -p 21
اسکریپت nmap یکسری اخبار خطرناک برمی گرداند. این ماشین یک انتخاب خوب برای تحقیقات می باشد. این به این معنا نیست که ماشین در معرض خطر است و برای امور خطرناک مورد استفاده قرار خواهد گرفت اما این موضوع باید مورد توجه تیم های شبکه و امنیت قرار گیرد.
به هر حال اسکن ترافیک شبکه ای شخصی در این حالت می تواند زمان بسیار زیادی را مصرف کند. nmap قادر است scan های تهاجمی تری را انجام دهد که غالبا اطلاعات یکسانی رو برخواهد گرداند، اما با این تفاوت که به جای استفاده از چندین کامند تنها از یک کامند استفاده می شود. در مثال زیر خروجی یک scan تهاجمی را بررسی خواهیم کرد. یک اسکن تهاجمی می تواند سیستم های تشخیص/جلوگیری از نفوذ را start بزند.
کد :
PHP:# nmap -A 192.168.56.102
دقت کنید این بار با یک کامند Nmap اطلاعات بی شماری را برمی گرداند که قبلا درباره پورتهای باز سرویس ها و تنظیمات در حال اجرا روی این ماشین خاص برگردانده بود. بیشتر این اطلاعات میتوانند برای کمک به تشخیص چگونگی محافظت از این ماشین و ارزیابی این که چه نرم افزارهایی ممکن است روی شبکه باشند مورد استفاده قرار می گیرند.