سیستم مورد نیاز nmap اسکنر شبکه نمونه هایی از استفاده از nmap - اسکنر پورت. اسکن لیست میزبان ها از یک فایل

Nmap یک اسکنر شبکه منبع باز بسیار محبوب است کد منبع، که هم در ویندوز و هم در لینوکس قابل استفاده است. Nmap یا Network Mapper توسط گوردون لون و در حال حاضرتوسط متخصصان امنیتی و مدیران سیستم در سراسر جهان استفاده می شود.

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

به عنوان مثال، اسکریپت ها می توانند به طور خودکار آسیب پذیری های امنیتی جدید در شبکه شما را شناسایی کنند. Namp را می توان با نیت خوب و بد استفاده کرد، مراقب باشید از nmap بر خلاف قانون استفاده نکنید. در این آموزش به نحوه استفاده از namp برای اسکن پورت ها در سیستم عامل لینوکس خواهیم پرداخت. اما ابتدا باید سعی کنید نحوه عملکرد این ابزار را درک کنید.

در شبکه های کامپیوتریهمه دستگاه های متصل آدرس IP مخصوص به خود را دارند. هر کامپیوتر از پروتکل پینگ پشتیبانی می کند که می تواند برای تعیین اینکه آیا به شبکه متصل است یا خیر. ما به سادگی یک درخواست پینگ به کامپیوتر ارسال می کنیم و اگر پاسخ داد، فرض می کنیم که متصل است. Nmap رویکرد کمی متفاوت دارد. کامپیوترها نیز به روش خاصی نسبت به موارد خاص واکنش نشان می دهند بسته های شبکه، ابزار به سادگی بسته های لازم را ارسال می کند و نگاه می کند که کدام میزبان ها پاسخ را ارسال کرده اند.

اما احتمالاً قبلاً در مورد این موضوع می دانید. جالب‌تر این است که Nmap چگونه متوجه می‌شود که چه سرویس‌هایی روی یک ماشین اجرا می‌شوند. اصل کار هر کس برنامه های شبکهبر اساس پورت ها برای دریافت پیام از شبکه، برنامه باید یک پورت در رایانه شما باز کند و منتظر اتصالات ورودی باشد. و برای ارسال پیام از طریق شبکه، باید به پورت برنامه (مقصد) دیگری متصل شوید. سپس برنامه باید درگاهی را که در آن منتظر پاسخ است باز کند.

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

Nmap Syntax

دستور راه اندازی Nmap بسیار ساده است.

آدرس گزینه های $ nmap

حالا بیایید به گزینه های اصلی که در این مقاله نیاز خواهیم داشت نگاه کنیم.

  • -sL- فقط یک لیست از هاست های در حال اجرا ایجاد کنید، اما پورت های nmap را اسکن نکنید.
  • -sP- فقط بررسی کنید که میزبان با استفاده از پینگ قابل دسترسی است یا خیر.
  • -پ.ن- همه هاست ها را در دسترس در نظر بگیرید، حتی اگر به پینگ پاسخ ندهند.
  • -sS/sT/sA/sW/sM- اسکن TCP؛
  • -sU- nmap اسکن UDP.
  • -sN/sF/sX- اسکن TCP NULL و FIN.
  • -sC- اسکریپت را به صورت پیش فرض اجرا کنید.
  • -sI- اسکن Indle تنبل.
  • - محدوده پورت ها را برای بررسی مشخص کنید.
  • -sV- بررسی دقیق پورت ها برای تعیین نسخه های سرویس.
  • -O- تعیین کنید سیستم عامل;
  • -تی- سرعت اسکن، هر چه بیشتر سریعتر باشد.
  • -دی- اسکن ماسک با استفاده از IP های ساختگی.
  • - آدرس IP خود را به آدرس مشخص شده تغییر دهید.
  • -e- از یک رابط خاص استفاده کنید.
  • -- جعل مک- آدرس MAC خود را تنظیم کنید.
  • -الف- تعیین سیستم عامل با استفاده از اسکریپت.

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

نحوه استفاده از Nmap برای اسکن پورت ها در لینوکس

در مرحله بعد، بیایید به نمونه های nmap نگاه کنیم. ابتدا بیایید ببینیم که چگونه می توان تمام دستگاه های متصل به شبکه را برای انجام این کار پیدا کرد، فقط از گزینه -sL استفاده کرده و ماسک شبکه خود را مشخص کنید. در مورد من 192.168.1.1/24 است. ماسک تو شبکه محلیبا اجرای دستور می توانید پیدا کنید:

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

nmap -sL 192.168.1.1/24

گاهی اوقات این اسکن ممکن است هیچ نتیجه ای نداشته باشد زیرا برخی از سیستم عامل ها محافظت در برابر اسکن پورت دارند. اما می توان با استفاده از پینگ برای اسکن تمام آدرس های IP در شبکه، گزینه -sn را دور زد.

nmap -sn 192.168.1.1/24

همانطور که می بینید، این برنامه اکنون دستگاه های فعال در شبکه را شناسایی کرده است. در مرحله بعد، می‌توانیم پورت‌های nmap را برای میزبان مورد نظر با اجرای ابزار بدون گزینه‌ها اسکن کنیم:

sudo nmap 192.168.1.1

اکنون می بینیم که چندین پورت باز داریم که همه آنها توسط برخی از سرویس ها در ماشین مورد نظر استفاده می شود. هر یک از آن‌ها می‌توانند به طور بالقوه آسیب‌پذیر باشند، بنابراین داشتن پورت‌های باز زیادی روی یک دستگاه ایمن نیست. اما این تنها کاری نیست که می توانید انجام دهید، در ادامه نحوه استفاده از nmap را خواهید آموخت.

برای کسب اطلاعات دقیق تر در مورد دستگاه و سرویس های در حال اجرا بر روی آن، می توانید از گزینه -sV استفاده کنید. ابزار به هر پورت متصل می شود و تمام اطلاعات موجود را تعیین می کند:

sudo nmap -sV 192.168.1.1

دستگاه ما ftp را اجرا می‌کند، بنابراین می‌توانیم با استفاده از اسکریپت‌های استاندارد nmap نگاهی دقیق‌تر به این سرویس بیندازیم. اسکریپت ها به شما این امکان را می دهند که پورت را با جزئیات بیشتری بررسی کنید و آسیب پذیری های احتمالی را پیدا کنید. برای انجام این کار، از گزینه -sC و -p برای تنظیم پورت استفاده کنید:

sudo nmap -sC 192.168.56.102 -p 21

ما اسکریپت پیش فرض را اجرا کردیم، اما اسکریپت های دیگری نیز وجود دارد، به عنوان مثال، می توانید تمام اسکریپت های ftp را با دستور زیر پیدا کنید:

sudo find /usr/share/nmap/scripts/ -name "*.nse" | grep ftp

سپس سعی می کنیم از یکی از آنها استفاده کنیم، برای انجام این کار، فقط با استفاده از گزینه --script آن را مشخص کنید. اما ابتدا می توانید به اطلاعات مربوط به اسکریپت نگاه کنید:

sudo nmap --script-help ftp-brute.nse

این اسکریپت سعی می کند تا لاگین و رمز عبور FTP را در میزبان راه دور تعیین کند. سپس اسکریپت را اجرا کنید:

sudo nmap --script ftp-brute.nse 192.168.1.1 -p 21

در نتیجه، اسکریپت لاگین و رمز عبور، admin/admin را انتخاب کرد. به همین دلیل است که شما نیازی به استفاده از گزینه های پیش فرض ورود به سیستم ندارید.

شما همچنین می توانید این ابزار را با گزینه -A اجرا کنید.

sudo nmap -A 192.168.1.1

لطفاً توجه داشته باشید که تقریباً تمام اطلاعاتی که قبلاً دیده‌ایم اینجا هستند. می توان از آن برای افزایش حفاظت این دستگاه استفاده کرد.

یکی از معروف ترین عملکرد Nmap یک تشخیص سیستم عامل از راه دور بر اساس تجزیه و تحلیل پشته TCP/IP است. Nmap مجموعه ای از بسته های TCP و UDP را به میزبان راه دور می فرستد و تقریباً هر بیت پاسخ ها را بررسی می کند. Nmap پس از اجرای ده‌ها آزمایش مانند نمونه‌برداری TCP ISN، پشتیبانی از گزینه TCP، نمونه‌برداری IP ID و تجزیه و تحلیل زمان اولیه، نتایج را با پایگاه داده nmap-os-db خود مقایسه می‌کند که شامل بیش از هزار مجموعه شناخته شده از نتایج معمولی برای انواع مختلف است. سیستم عامل و هنگامی که مطابقت پیدا می شود، اطلاعات مربوط به سیستم عامل را نمایش می دهد. هر مجموعه شامل یک توصیف متنی رایگان از سیستم عامل و یک طبقه بندی است که شامل نام سازنده (به عنوان مثال Sun)، نام سیستم عامل (به عنوان مثال Solaris)، تولید سیستم عامل (مثلاً 10)، و نوع دستگاه () می باشد. سیستم عامل، و طبقه بندی که نام فروشنده (مانند Sun)، سیستم عامل اصلی (مانند Solaris)، تولید سیستم عامل (مثلاً 10) و نوع دستگاه (برای اهداف عمومی، روتر، سوئیچ) را ارائه می دهد.کنسول بازی

و غیره).

اگر Nmap نمی تواند سیستم عامل را تعیین کند، اما دلایل خوبی برای انجام این کار وجود دارد (به عنوان مثال، حداقل یک پورت باز و یک پورت بسته پیدا شده است)، اگر می دانید دقیقاً از چه سیستم عاملی استفاده می شود، Nmap یک URL ارائه می دهد. ، می توانید مجموعه ای از ویژگی های آن را ارائه دهید. با انجام این کار، به پایگاه داده Nmap از سیستم عامل های شناخته شده کمک می کنید و آن را برای دیگران مفیدتر می کنید. گزینه تشخیص سیستم عامل برخی تست های دیگر را نیز فعال می کند که به شما امکان می دهد از اطلاعات جمع آوری شده در حین کار استفاده کنید. یکی از آنها TCP Sequence Predictability Classification است. این به شما امکان می دهد تقریباً تعیین کنید که ایجاد یک اتصال TCP نادرست با یک میزبان راه دور چقدر دشوار است. این می تواند برای هک و بهره برداری از برنامه های مبتنی بر مفید باشدروابط اعتماد « (rlogin، فیلترهای فایروال و غیره) یا برای پنهان کردن منبع حمله. این نوع جعل دیگر به ندرت مورد استفاده قرار می گیرد، اما بسیاری از ماشین ها هنوز در برابر این نوع حملات آسیب پذیر هستند. عدد دشواری بر اساس نمونه گیری آماری است و ممکن است نوسان داشته باشد. معمولاً بهتر است با استفاده از عبارات انگلیسی مانند» چالش شایسته « یا» شوخی بی اهمیت « افزایشی» ، به این معنی که آنها فیلد ID را در هدر IP برای هر بسته ارسالی افزایش می دهند. این آنها را در برابر جعل و حملات جمع آوری اطلاعات پیشرفته آسیب پذیر می کند.

همچنین در حین تشخیص سیستم عامل، سعی می شود زمان کارکرد ماشین مورد نظر مشخص شود. با استفاده از مهرهای زمانی TCP (RFC 1323)، Nmap سعی می‌کند حدس بزند که دستگاه آخرین بار کی راه‌اندازی شده است. اطلاعات ممکن است دقیق نباشد زیرا ... شمارنده مهر زمان بازنشانی نشد، سرریز شده بود، یا به نحوی پنهان شده بود. اطلاعات فقط به صورت شفاهی نمایش داده می شود.

اسناد کاغذی در مورد عملکرد، استفاده و پیکربندی گزینه تشخیص سیستم عامل قرار دارد.

ویژگی تشخیص سیستم عامل با استفاده از گزینه های زیر فعال و کنترل می شود:

O (فعال کردن تشخیص سیستم عامل)

عملکرد تشخیص سیستم عامل را فعال می کند که عملکرد آن در بالا توضیح داده شده است. همچنین می توانید از گزینه -A استفاده کنید که تشخیص سیستم عامل را در میان سایر عملکردها فعال می کند.

--osscan-limit (از تابع تشخیص سیستم عامل فقط برای میزبان های "امیدبخش" استفاده کنید)

اگر حداقل یک پورت TCP باز و یک پورت بسته شناسایی شود، ویژگی تشخیص سیستم عامل بسیار موثرتر است. این گزینه را تنظیم کنید و Nmap حتی برای شناسایی سیستم عامل هاست هایی که این معیار را ندارند، تلاش نمی کند. این می تواند در زمان زیادی صرفه جویی کند، به خصوص زمانی که -PN بسیاری از هاست ها را اسکن می کند. این گزینه تنها در صورتی تأثیر خواهد داشت که ویژگی سیستم عامل را با تعیین گزینه های -O یا -A فعال کنید.

--osscan-guess ; - فازی (نتایج تشخیص سیستم عامل را حدس بزنید)

هنگامی که Nmap قادر به تعیین تطابق دقیق نباشد، گاهی اوقات نزدیکترین تطابق را با نتایج اسکن ارائه می دهد. برای اینکه Nmap به طور پیش فرض این کار را انجام دهد، مطابقت ها باید بسیار نزدیک باشند. هر یک از این گزینه ها (برابر) باعث می شود Nmap نتایج را با شدت بیشتری تجزیه و تحلیل کند. Nmap همچنان در صورت یافتن یک تطابق غیر کامل گزارش می‌دهد و همچنین درصد تطابق را برای هر مجموعه از ویژگی‌ها نمایش می‌دهد.

--max-os-tries (حداکثر تعداد تلاش برای شناسایی سیستم عامل را تنظیم می کند)

هنگامی که Nmap سعی می کند سیستم عامل را در یک میزبان هدف تعیین کند و نتواند مطابقت کامل را پیدا کند، معمولاً دوباره تلاش می کند. به طور پیش فرض، Nmap در صورت وجود شرایط مساعد برای شناسایی سیستم عامل پنج بار و در غیر این صورت دو بار تلاش می کند. تنظیم --max-os-tries به مقدار کمتر (مثلاً 1) Nmap را سرعت می بخشد، اما برخی از ورودی هایی را که احتمالاً می توان برای تعیین سیستم عامل استفاده کرد را از دست می دهید. مقدار زیادی را می توان تنظیم کرد تا در شرایط مساعد، تلاش بیشتری انجام شود. این به ندرت انجام می شود، به جز زمانی که لازم است مجموعه ای دقیق تر از ویژگی های سیستم عامل برای گنجاندن در پایگاه داده Nmap ایجاد شود.

مارس 19, 2010 در 10:48 ق.ظ

Nmap. شروع کردن

  • امنیت اطلاعات

آیا تا به حال فکر کرده اید که چگونه یک مهاجم می داند کدام پورت ها در یک سیستم باز هستند؟ یا چگونه می توانید بدون پرسیدن از مدیر متوجه شوید چه برنامه هایی روی سرور در حال اجرا هستند؟ شما می توانید همه اینها و بیشتر را با ابزار کوچکی به نام Nmap انجام دهید.


Nmap چیست؟ نام Nmap مخفف "نقشه شبکه" است. می توان از آن برای بررسی امنیت، به سادگی برای تعیین سرویس های در حال اجرا بر روی هاست، شناسایی سیستم عامل و برنامه ها و تعیین نوع فایروال مورد استفاده در میزبان اسکن شده استفاده کرد.
Nmap یک ابزار معروف است. هنگامی که درباره Nmap اطلاعات بیشتری کسب کردید، متوجه خواهید شد که در قسمت‌هایی از فیلم‌هایی مانند The Matrix Reloaded، The Bourne Ultimatum، Hottabych و موارد دیگر چه می‌کند.
این آموزش اصول استفاده از Nmap را پوشش می دهد و نمونه هایی را ارائه می دهد که می توانید از آنها استفاده کنید.

Nmap را از کجا می توانم تهیه کنم؟
اگر از لینوکس استفاده می کنید، می توانید بسته های Nmap را در مخازن اکثر توزیع ها پیدا کنید. Nmap آخرین بار در اوایل سال 2010 منتشر شد، بنابراین ممکن است آخرین نسخه در شاخه های پایدار فعلی نباشد. می توانید منابع و برخی از مجموعه های باینری را در صفحه دانلود پیدا کنید. نسخه ویندوز هم هست.
اصول استفاده از Nmap
نحو Nmap به شرح زیر است:

Nmap Scan_options Scan_target.

فرض کنید می خواهید یک گره را اسکن کنید و بفهمید چه سیستم عاملی روی آن اجرا می شود. برای انجام این کار موارد زیر را انجام دهید:

Nmap -O target.host.com

توجه داشته باشید که Nmap برای اجرای این نوع اسکن به امتیازات superuser نیاز دارد. فرآیند اسکن ممکن است حدود یک دقیقه طول بکشد، بنابراین صبور باشید. هنگامی که فرآیند به پایان رسید، چیزی شبیه به این خواهید دید:

شروع Nmap 5.21 (nmap.org) در 27/02/2010 23:52 EST
گزارش اسکن Nmap برای 10.0.0.1
میزبان فعال است (تأخیر 0.0015 ثانیه).
نشان داده نشده: 997 پورت بسته
خدمات ایالت بندر
دامنه باز 53/tcp
5009/tcp open Airport-admin
10000/tcp open snet-sensor-mgmt
آدرس MAC: 00:11:24:6B:43:E2 (رایانه اپل)
نوع دستگاه: WAP|چاپگر
در حال اجرا: Apple Embedded، Canon Embedded، Kyocera Embedded، Xerox Embedded
جزئیات سیستم عامل: VxWorks: Apple AirPort Extreme v5.7 یا AirPort Express v6.3. چاپگر Canon imageRUNNER (5055، C3045، C3380، یا C5185)؛ چاپگر Kyocera FS-4020DN; یا چاپگر Xerox Phaser 8860MFP
فاصله شبکه: 1 پرش

همانطور که می بینید، Nmap اطلاعات زیادی ارائه می دهد. در اینجا یک حدس در مورد سیستم عاملی که روی گره در حال اجرا بود را نشان می دهد. در این مورد، روتر Apple Airport Extreme اسکن شد. به عنوان یک امتیاز اضافی، Nmap گزارش داد که چه دستگاهی با یک پرش فاصله دارد، همچنین آدرس MAC سازنده دستگاه و کارت شبکه، پورت‌های باز و مدت زمان اسکن.
در زیر نتایج یک اسکن دیگر، روی یک کامپیوتر خانگی که اوبونتو 9.10 را اجرا می کند، آمده است:

شروع Nmap 5.21 (nmap.org) در 28/02/2010 ساعت 00:00 EST
گزارش اسکن Nmap برای 10.0.0.6
میزبان فعال است (تأخیر 0.0039 ثانیه).
نشان داده نشده: 999 پورت بسته
خدمات ایالت بندر
22/tcp ssh را باز کنید
آدرس MAC: 00:17:08:2A:D6:F0 (هولت پاکارد)
نوع دستگاه: منظور عمومی
اجرا: Linux 2.6.X
جزئیات سیستم عامل: Linux 2.6.19 - 2.6.31
فاصله شبکه: 1 پرش

تشخیص سیستم عامل انجام شد. لطفاً هر گونه نتیجه نادرست را در nmap.org/submit گزارش دهید.
Nmap انجام شد: 1 آدرس IP (1 میزبان بالا) در 3.40 ثانیه اسکن شد

در اینجا می بینیم که سیستم دارد کارت شبکه HP، لینوکس را بین نسخه های 2.6.19 و 2.6.31 اجرا می کند. به هر حال، شما نمی توانید به وضوح توزیع را شناسایی کنید، فقط نسخه هسته لینوکس را تشخیص خواهید داد.

اسکن گره های خارجی

در مثال های بالا، روتر محلی و یکی از ایستگاه های کاری برای اسکن انتخاب شدند، زیرا ما مجوز اسکن آنها را داشتیم. با این حال، اگر آنها را کنترل نمی کنید یا حق اسکن کردن آنها را ندارید، اجرای چندین اسکن روی گره شخص دیگری ایده بدی است. برای آزمایش، Nmap یک سرور آزمایشی عمومی scanme.nmap.org دارد که می توانید از آن استفاده کنید.
بسیاری از مدیران اسکن غیرمجاز سرورهای خود را دوست ندارند، بنابراین بهترین گزینه این است که اسکن را به میزبان های شبکه محلی خود یا آنهایی که حق اسکن برای آنها دارید محدود کنید. همچنین در برخی موارد ممکن است با استفاده از برخی از روش‌های اسکن تهاجمی Nmap قرارداد خود را با ISP خود نقض کنید، بنابراین مراقب باشید.

چندین گره را اسکن کنید.

شما می توانید همزمان بیش از یک گره را با استفاده از nmap اسکن کنید. اگر با آدرس IP اسکن می کنید، می توانید محدوده 10.0.0.1-6 یا 10.0.0/24 را تعیین کنید، میزبان ها از 10.0.0.1 تا 10.0.0.6 اسکن می شوند. با استفاده از تعریف /24، کل محدوده هاست از 10.0.0.0 تا 10.0.0.255 اسکن می شود. به عنوان مثال، اگر باید گره‌ها را از 10.0.0.1 تا 10.0.0.42 اسکن کنید و متوجه شوید که کدام سیستم عامل احتمالاً در حال اجرا است، از این استفاده کنید:

Nmap –O 10.0.0.1-42

اگر به جای آدرس IP فهرستی از نام دامنه دارید، می توانید آنها را در خط فرمان جدا کنید، مانند این:

Nmap -O host1.target.com host2.target.com

بررسی پورت های باز

اگر nmap را بدون هیچ گزینه ای اجرا کنید و یک میزبان مشخص کنید، پورت ها را اسکن می کند و تمام پورت های باز یافت شده و سرویس های در حال اجرا روی آنها را نشان می دهد. به عنوان مثال اجرا کنید:
nmap target.hostname.com
پس از آن باید چیزی شبیه به این خروجی بگیرد:

پورت های جالب در target.hostname.com (10.0.0.88):
نشان داده نشده: 1711 پورت بسته
خدمات ایالت بندر
22/tcp ssh را باز کنید
80/tcp http را باز کنید
3306/tcp mysql را باز کنید

Nmap انجام شد: 1 آدرس IP (1 میزبان بالا) در 0.228 ثانیه اسکن شد

اگر از گزینه -v (کلمه) استفاده کنید، Nmap اطلاعات بیشتری را ارائه می دهد.

اسکن خدمات در حال اجرا

اگر می خواهید بدانید چه سرویسی ممکن است در حال اجرا باشد، گزینه –sV را امتحان کنید. این گزینه اسکن تهاجمی‌تری را انجام می‌دهد و سعی می‌کند بفهمد چه نسخه‌ای از سرویس‌ها در یک گره مشخص اجرا می‌شود، و همچنین می‌تواند به تعیین دقیق‌تر سیستم‌عاملی که در حال اجرا است کمک کند. به عنوان مثال، اجازه دهید nmap –sV را روی سرور آزمایشی اجرا کنیم و پاسخ زیر را دریافت کنیم:

شروع Nmap 5.21 (nmap.org) در 2010-02-28 00:15 EST
گزارش اسکن Nmap برای test.host.net (XXX.XXX.XXX.XX)
میزبان فعال است (تاخیر 0.090s).
نشان داده نشده: 965 پورت بسته، 33 پورت فیلتر شده
نسخه خدمات ایالت بندر
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1.2 (پروتکل 2.0)
80/tcp باز http Apache httpd 2.2.8 ((اوبونتو) PHP/5.2.4-2ubuntu5.10 با Suhosin-Patch)
اطلاعات سرویس: سیستم عامل: لینوکس

شناسایی سرویس انجام شد. لطفاً هر گونه نتیجه نادرست را در nmap.org/submit گزارش دهید.
Nmap انجام شد: 1 آدرس IP (1 میزبان بالا) در 11.43 ثانیه اسکن شد

همانطور که می بینید، Nmap می تواند بسته ها را تجزیه و تحلیل کند و نسخه را تعیین کند در حال اجرا برنامه هادر پورت های SSH و HTTP در اینجا می بینید که سیستم مورد نظرسنجی اوبونتو با آپاچی 2.2.8 و OpenSSH 4.7p1 است. این اطلاعات به دلایل مختلفی می تواند مفید باشد. اسکن Nmap می‌تواند سیستمی را که سرویس‌های قدیمی را اجرا می‌کند و ممکن است در برابر اکسپلویت‌های شناخته شده آسیب‌پذیر باشد، شناسایی کند.

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

نمی دانید چند نود آنلاین در شبکه شما وجود دارد؟ سعی کنید از nmap –sP استفاده کنید که یک اسکن پینگ از شبکه مشخص شده را اجرا می کند. به عنوان مثال، nmap –sP 10.0.0.0/24 256 گره را از 10.0.0.0 تا 10.0.0.255 اسکن می کند، بررسی می کند که آیا در دسترس هستند یا خیر و در این مورد گزارش می دهد. شما همچنین می توانید از یک محدوده استفاده کنید، به عنوان مثال:

Nmap –sP 10.0.0.1-15

Zenmap

بالاخره اگر این همه خوشی خط فرماننه برای شما، nmap دارای یک رابط کاربری گرافیکی است که می توانید از آن برای ساخت و اجرای دستورات استفاده کنید. اسمش Zenmap هست. این به شما امکان می دهد یک هدف را انتخاب کنید، یک اسکن را شروع کنید، نتایج را نمایش دهید، و همچنین آنها را ذخیره کنید و آنها را با دیگران مقایسه کنید.
رابط کاربری گرافیکی Zenmap است راه خوببا Nmap آشنا شوید، اما اگر قصد دارید مکرراً از Nmap استفاده کنید، بهتر است بدانید که چگونه از Nmap در خط فرمان استفاده کنید.
در راهنمای آینده، نگاهی عمیق‌تر به Nmap و وظایف خاصی که می‌توانید حل کنید خواهیم داشت.

این پست ترجمه رایگان مقاله است

مدیر سیستم خود را خدای شبکه تصور می کرد،
اما برقکار بی ادبانه این افسانه را از بین برد.

طنز فناوری اطلاعات

مقدمه

اسکن شبکه یکی از اولین مراحل در فرآیند هک یا جلوگیری از آن است، زیرا به شما امکان می دهد آسیب پذیرترین و بالقوه خطرناک ترین پورت های باز رایانه را تعیین کنید. از آنجایی که هر رایانه دارای مجموعه ای از ویژگی های خاص است، با استفاده از یک پورت اسکنر می توانید تعیین کنید که کدام سرویس ها (FTP-, web-, سرور پست الکترونیکیو غیره) در حال اجرا بر روی کامپیوتر، و همچنین سیستم عاملی که آن را کنترل می کند. هر چه تعداد سرویس‌های بیشتری در رایانه اجرا شود، احتمال هک شدن آن بیشتر می‌شود – در نهایت، هر نرم‌افزاری دارای آسیب‌پذیری‌هایی است.

اسکنرهای شبکه برای اسکن یک آدرس شبکه خاص (آدرس IP) یا آدرس‌ها و شناسایی پورت‌های باز و احتمالاً ناامن در رایانه تحت بررسی طراحی شده‌اند. با این حال، معمولاً هکرها از چنین برنامه‌هایی برای شناسایی آسیب‌پذیری‌های احتمالی و متعاقباً هک رایانه استفاده می‌کنند و اصلاً برای اطمینان از امنیت آن نیست. به نظر می رسد که امنیت و هک، اگرچه در ذات خود آنتی پاد هستند، اما امکان استفاده از ابزارهای مشابه را فراهم می کنند.

مبانی TCP

برای درک نحوه انجام اسکن، باید بدانید از چه الگوریتمی برای ایجاد یک اتصال TCP بین رایانه ها استفاده می شود. برای ایجاد یک اتصال TCP بین یک کلاینت و یک سرور، مشتری یک درخواست (بسته TCP) با پرچم SYN برای شروع اتصال ارسال می کند. اگر سرور در حال گوش دادن به این پورت باشد، بسته ای را با پرچم های SYN و ACK به مشتری ارسال می کند و به این ترتیب همزمان درخواست مشتری را تایید می کند و از او می خواهد که یک اتصال معکوس برقرار کند. سپس مشتری یک بسته با مجموعه پرچم ACK ارسال می کند و درخواست سرور SYN را تأیید می کند. در مرحله بعد، داده ها منتقل می شوند که برای تأیید دریافت آن، هر بار بسته ای با پرچم ACK ارسال می شود. هنگامی که سرور یا سرویس گیرنده انتقال داده ها را به طور کامل به پایان رساند، بسته ای را با مجموعه پرچم FIN ارسال می کند و از این طریق به طرف مقابل اطلاع می دهد که اتصال را قطع کند. طرف مقابل با دریافت بسته ای با پرچم FIN، بسته بازگشتی را با مجموعه پرچم FIN ارسال می کند و پایان اتصال را تأیید می کند. به منظور پایان دادن به اتصال، هر دو طرف می توانند بسته ای با پرچم RST ارسال کنند. فرآیند تبادل بسته به وضوح در جدول نشان داده شده است. 1.

جدول 1. ایجاد اتصال و فرآیند تبادل بسته

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

اسکنر شبکه Nmap و قابلیت های آن

از آنجایی که سیستم‌های مبتنی بر لینوکس و سیستم‌عامل BSD اخیراً به طور فزاینده‌ای محبوب شده‌اند، در این نشریه به پیشرفته‌ترین اسکنر شبکه برای سیستم‌های عامل خواهیم پرداخت. سیستم های لینوکس- Nmap این برنامه یکی از رایج ترین برنامه ها در محیط است کاربران لینوکسو دارای ابزارهای قدرتمند و سرعت بالاکار کردن

اسکنر شبکه Nmap در سال 1997 برای سیستم عامل های مبتنی بر یونیکس ظاهر شد و تا به امروز به پیشرفت خود ادامه می دهد. از برنامه های مشابه برای سیستم عامل در مبتنی بر ویندوزبا ابزارهای داخلی قدرتمند، سرعت بالا، ابزارهای مختلف مرتبط، انواع روش های اسکن و محبوبیت متمایز است، زیرا تقریباً هر توزیع لینوکسمجهز به این اسکنر امنیتی شبکه با این حال، مانند اکثر برنامه های بسیار تخصصی برای لینوکس، پوسته ای برای کاربر نهایی ندارد و از خط فرمان راه اندازی می شود. البته رابط های اضافی برای مدیریت این ابزار وجود دارد، به عنوان مثال، مانند Umit، Nmapfe که از موتور Nmap استفاده می کنند و اطلاعات را در حالت پنجره ای به جای خط فرمان نمایش می دهند. اما با این حال، این ابزار در ابتدا برای کار در خط فرمان توسعه داده شد و ابزارهای "ضمیمه" زمان عملیات را افزایش می دهند و در مقایسه با نسخه اصلی دارای معایب زیادی هستند، از جمله در سبک طراحی. علاوه بر این، نسخه ای از این برنامه برای سیستم عامل های مبتنی بر ویندوز وجود دارد. از آنجایی که روش های کار و بسیاری از دستورات برای هر دو پلتفرم یکسان است، در این مقاله نسخه Nmap 4.1 برای سیستم های لینوکس مورد بحث قرار خواهد گرفت. از آنجایی که Nmap تقریباً در هر توزیع لینوکس گنجانده شده است، می توانید از LiveCD ها برای اسکن شبکه بدون نصب مجدد سیستم عامل استفاده کنید. دیسک های قابل بوت از این نوع نیازی به نصب ندارند و بدون نیاز به پارتیشن بندی از درایو CD/DVD بوت می شوند. هارد دیسکو ایجاد پارتیشن های اضافی - هارد دیسکدر این مورد، بخش خدمت می کند RAMکامپیوتر

در حال حاضر، اسکنرهای شبکه به شما این امکان را می دهند که بسیاری را شناسایی کنید پارامترهای اضافیکامپیوتر در حال اسکن شدن Nmap می تواند اکثر پارامترهای اساسی را شناسایی کند آداپتور شبکه: آدرس MAC، نام کامپیوتر در دامنه، پورت های باز، پورت های بسته شده توسط فایروال، سازنده چیپست آداپتور شبکه کامپیوتر مورد مطالعه، نسخه سیستم عامل و خدمات. توجه داشته باشید که اطلاعات مربوط به آدرس‌های MAC و سازنده چیپ‌ست را فقط برای رایانه‌هایی می‌توان دریافت کرد که در همان زیرشبکه رایانه اسکن کننده قرار دارند. برای درک تمام مزایای این برنامه، بیایید به کلیدهایی که بیشتر در عملکرد آن استفاده می شود نگاه کنیم.

همانطور که قبلا ذکر شد، Nmap از خط فرمان راه اندازی می شود. هنگامی که برنامه را بدون هیچ کلیدی یا با یا بدون سوئیچ Nmap -h (--help) شروع می کنید، لیستی از کلیدهای موجود و پارامترهای تنظیم شده روی صفحه نمایش داده می شود (شکل 1).

برنج. 1. لیست سوئیچ ها هنگام وارد کردن دستور Nmap

سینتکس اجرای برنامه به صورت زیر است: Nmap (مشخصات هدف)، جایی که به جای Scan type نوع اسکن نشان داده شده است (به طور پیش فرض، اگر این فضا خالی بماند، Nmap به طور آشکار پورت های موجود را اسکن می کند). به عنوان گزینه، انواع کلیدها و پارامترهای اسکن وارد می شوند، و به جای مشخصات هدف - آدرس IP رایانه، یا محدوده ای از آدرس های IP (که توسط ماسک زیر شبکه تعیین می شود)، یا نام میزبان.

ماسک های زیر شبکه

به احتمال زیاد، کاربرانی که با تنظیمات آداپتورهای شبکه سر و کار داشتند، مجبور بودند با پارامتری مانند ماسک زیر شبکه (Netmask) سر و کار داشته باشند. با این حال، همه نمی دانند که چیست.

همانطور که می دانید یک آدرس IP از چهار مقدار صحیح (octet) تشکیل شده است و به شکل xxx.xxx.xxx.xxx نشان داده می شود که xxx می تواند مقادیری از 0 تا 254 بگیرد. اما آدرس IP به خودی خود چنین است. کافی نیست و برای اینکه یک دستگاه شبکه تشخیص دهد یک کامپیوتر متعلق به کدام زیرشبکه است، به یک ماسک زیر شبکه نیز نیاز دارد تا مشخص کند کدام قسمت از آدرس IP شناسه شبکه و کدام قسمت شناسه میزبان است. شناسه شبکه در اصل آدرس خود شبکه است و شناسه میزبان آدرس خود گره در شبکه است. میزبانی با آدرس IP 10.242.10.242 و زیر شبکه ماسک 255.0.0.0 را در نظر بگیرید - در این مورد، رایانه متعلق به شبکه 10.0.0.0 است. در اینجا شناسه شبکه 10.0.0.0 و شناسه میزبان 242.10.242 است. برای به دست آوردن آدرس شبکه، با دانستن آدرس IP و ماسک زیر شبکه، باید عملیات پیوند بیتی را روی آنها اعمال کنید. نتیجه به صورت بیتی AND بین آدرس IP و ماسک زیر شبکه است:

به عنوان مثال، در مورد یک ماسک پیچیده تر:

آدرس IP: 00001100 00100010 00111000 1001110 (12.34.56.78)

ماسک زیر شبکه: 11111111 11111111 11100000 0000000 (255.255.224.0)

آدرس شبکه: 00001100 00100010 00100000 0000000 (12.34.32.0)

با این حال، به منظور اسکن شبکه و نوشتن متن کمتر، می توانید استفاده کنید ورودی جایگزینماسک های زیر شبکه با استفاده از پیشوندها. در بیشتر موارد برای شبکه های سادهمی توانید خود را به ماسک های زیر شبکه ساده مانند 255.0.0.0، 255.255.0.0 و 255.255.255.0 محدود کنید. ماسک زیر شبکه اغلب همراه با آدرس IP در قالب "آدرس IP/تعداد یک بیت در ماسک" نوشته می شود. به عنوان مثال، آدرس IP 12.34.56.78 با ماسک 255.255.224.0 (یعنی متشکل از 19 یک و 13 صفر) را می توان به صورت 12.34.56.78/19 نوشت. برای سه نوع در نظر گرفته شده، یک ورودی جایگزین از فرم های ip/8، ip/16 و ip/24 وجود دارد که به شما امکان می دهد تعداد ارقام تایپ شده را هنگام وارد کردن در خط فرمان کاهش دهید. برای مثال بالا، زیر شبکه ماسک را می توان به این صورت نوشت: 10.242.10.242/8، که به طور قابل توجهی کوتاهتر از 10.242.10.242 mask 255.0.0.0 است. بنابراین، محدوده آدرس IP برای شبکه 10.0.0.0 را می توان به صورت 10.0.0.0/8 نوشت.

اولین تلاش برای اسکن

بیایید به اسکنر شبکه Nmap برگردیم. همانطور که قبلا ذکر شد، به عنوان مشخصات هدف می توانید یک آدرس IP، طیف وسیعی از آدرس ها و یک نام میزبان را مشخص کنید. اگر نیاز به اسکن بسیاری از آدرس های IP و میزبان های مختلف دارید، وارد کردن همه چیز به صورت دستی در خط فرمان خیلی راحت نیست (مخصوصا اگر تعداد آدرس ها از 20 بیشتر شود) - برای این Nmap از بارگیری یک فایل با آدرس ها پشتیبانی می کند. در جدول 2 کلیدهای ممکن مرتبط با وارد کردن آدرس های اسکن شده را فهرست می کند.

جدول 2. کلیدهای مسئول وارد کردن آدرس ها

شایان ذکر است که فایل حاوی لیست آدرس ها باید فرمت شده باشد فرم متن. آدرس جدید یا محدوده آدرس ها باید از یک خط جدید شروع شود. نمونه هایی از وارد کردن آدرس های اسکن شده در شکل نشان داده شده است. 2 و 3.

برنج. 2. استفاده از خط فرمان ورودی آدرس ها

با دانستن اینکه چگونه می توانید آدرس رایانه های مورد مطالعه را تنظیم کنید، بیایید ببینیم در نهایت چه چیزی روی صفحه نمایش داده می شود. جذب یک تیم Nmap 10.0.0.62 10.0.0.53برای اسکن پورت های باز در رایانه با این آدرس ها.

برنج. 3. تعیین آدرس های اسکن شده از یک فایل

اسکن نتایج و تجزیه و تحلیل آنها

در شکل شکل 4 خروجی نتایج اسکن را نشان می دهد. ابتدا، با استفاده از سرور DNS، Nmap سعی می کند تعیین کند که آیا نام با آدرس IP در حال اسکن مطابقت دارد یا خیر. اگر عملیات موفقیت آمیز بود، در همان ابتدا Nmap نام واقعی رایانه را نشان می دهد. همانطور که از شکل مشخص است، آدرس IP 10.0.0.62 با نام pakhomov.computerpresspublishing.ru مطابقت دارد. اما برای آدرس مورد بررسی بعدی - 10.0.0.53 - چنین مکاتباتی وجود ندارد. در مرحله بعد، Nmap اطلاعات مربوط به پورت های بسته یا مسدود شده را نمایش می دهد (1674 پورت بسته نشان داده نشده است)، و سپس پورت هایی را که وضعیت متفاوتی دارند (در سه ستون) نمایش می دهد. ستون اول شماره پورت فعلی را نشان می دهد، دومی می تواند مقادیر مختلفی را به خود بگیرد که وضعیت پورت تعیین شده توسط Nmap را نشان می دهد:

  • باز (پورت باز) - پورت باز است و سرویس اتصالات TCP یا UDP را در این پورت می پذیرد (این پورت در برابر هک آسیب پذیرترین است).
  • فیلتر شده - پورت توسط فایروال، سایر برنامه ها یا خدمات مسدود کننده (قوانین روتر، فایروال سخت افزاری و غیره) بسته می شود.
  • بسته - درگاه بسته است زیرا هیچ سرویس یا برنامه دیگری در این پورت در رایانه گوش نمی دهد.

برنج. 4. نتیجه را اسکن کنید

اگر یک پورت روی فیلتر نشده تنظیم شود، نشان می‌دهد که Nmap قادر به تعیین دقیق باز یا بسته بودن پورت نیست، که معمولاً توسط اسکن ACK اختصاص داده می‌شود (در ادامه بحث شد). همچنین دو مقدار معتبر وجود دارد: open|filtered و بسته|filtered - در هر دو مورد Nmap قادر به تعیین وضعیت پورت نبود. برای تعیین دقیق‌تر مقدار مورد اول، باید از روش اسکن FIN، Null، Xmas یا UDP استفاده کنید. این احتمال وجود دارد که این روش های اسکن بیشتر ارائه دهند اطلاعات دقیق. در مورد مقدار بسته|فیلتر شده، تنها در صورتی ظاهر می شود که از روش اسکن Idlescan استفاده شود.

ستون آخر اطلاعات کمی در مورد سرویس مورد نظر با استفاده از این پورت می دهد. فرض کنید اگر پورت شماره 80 باز باشد، Nmap به شما اطلاع می دهد که این پورت معمولا توسط وب سرورها (http) استفاده می شود. لازم به ذکر است که برای امنیت بیشتر، برخی از سرویس ها نه بر روی پورت استاندارد خود، بلکه در پورت دیگری راه اندازی می شوند، بنابراین نمی توان گفت که وب سرور بر روی پورت 80 اجرا می شود (برای تعیین دقیق تر سرویس در حال اجرا، روش اسکن نسخه در نظر گرفته شده است). پس از نمایش لیست پورت های باز، Nmap آدرس فیزیکی (MAC) دستگاه شبکه را نمایش می دهد و همچنین در صورت امکان سازنده چیپست آداپتور شبکه کامپیوتر مورد بررسی و در برخی موارد حتی نام آن را مشخص می کند.

روش های اسکن برای حضور رایانه در شبکه

مثال‌های مورد بحث در بالا بسیار ساده هستند و نیازی به وارد کردن کلیدهای اضافی ندارند، اما معمولاً برای اکثر رایانه‌های موجود در شبکه مناسب هستند. با این حال، برای اسکن تهاجمی به منظور به دست آوردن حداکثر اطلاعات ممکن در مورد کامپیوتر مورد بررسی، لازم است که پارامترهای اسکن را به درستی تنظیم کنید. برای تعیین اینکه کدام کامپیوترها در یک شبکه در حال اجرا هستند، Nmap به شما امکان می دهد از چندین روش اسکن شبکه استفاده کنید - که همه آنها در بخش Host Discovery قرار می گیرند.

تشخیص کامپیوتر با استفاده از روش پینگ

ساده ترین روش تشخیص رایانه های در حال اجرا با استفاده از پینگ است. برای این کار باید از سوئیچ -sP در خط فرمان استفاده کنید. اسکنر شبکه Nmap درخواست های اکو ICMP را به آدرس یا آدرس های IP داده شده ارسال می کند و منتظر پاسخ می ماند. اگر پاسخی دریافت شود، به این معنی است که کامپیوتر در حال اسکن کار می کند که به عنوان نتیجه اسکن نمایش داده می شود. در شکل شکل 5 نتیجه استفاده از این روش را نشان می دهد.

برنج. 5. اسکن نتیجه با استفاده از -sP

با این حال، امروزه بسیاری از رایانه‌هایی که حداقل نوعی فایروال دارند، درخواست‌های ICMP را مسدود می‌کنند، بنابراین حتی اگر رایانه روشن باشد، Nmap گزارش می‌دهد که رایانه در شبکه وجود ندارد. در این مورد، Nmap از روش دیگری برای تعیین اینکه آیا رایانه در شبکه است استفاده می کند. مثال اسکن پینگ مورد بحث بر اساس جدول ترتیب برقراری اتصال ارائه شده است.

کشف با استفاده از بسته های SYN/ACK و UDP

اگر سرویسی در حال گوش دادن به یک پورت باشد و Nmap سعی کند به آن ارتباط برقرار کند (بسته ای را با پرچم SYN ارسال می کند)، سرویس می تواند با بسته ای با پرچم های SYN/ACK پاسخ دهد، که نشان می دهد رایانه در آن وجود دارد. شبکه اما اگر سرویسی در این پورت وجود نداشته باشد، سرور با بسته ای با پرچم RST پاسخ می دهد که نشان می دهد کامپیوتری در آدرس IP داده شده وجود دارد. اگر در پاسخ به بسته SYN ارسال شده چیزی از سرور دریافت نشد، به این معنی است که یا کامپیوتر خاموش است یا ترافیک توسط فایروال مسدود شده است. برای دور زدن مسدود کردن فایروال، روش اسکن دیگری توسعه یافته است. اسکنر Nmap معمولا بسته هایی را با پرچم های SYN/ACK و یک بسته UDP روی پورت استاندارد 80 ارسال می کند که اغلب برای ترافیک وب استفاده می شود و بنابراین به ندرت توسط فایروال مسدود می شود. با استفاده از سوئیچ های -PS، -PA و -PU می توانید مشخص کنید که کدام بسته به سرور و روی کدام پورت ارسال شود. نمونه ای از این دستورات در شکل نشان داده شده است. 6. ضمنا نام پورت به همراه نوع بسته نوشته شده است: -PS80,81.

برنج. 6. نتیجه اسکن با استفاده از -PA، -PS و -PU

تشخیص کامپیوتر با استفاده از بسته های مختلف ICMP

روش فوق به شما اجازه نمی دهد تا حضور رایانه در شبکه را به دقت تعیین کنید. اسکنر شبکه Nmap توانایی دیگری برای تعیین حضور کامپیوتر در شبکه دارد. برای استفاده از این ویژگی، باید سوئیچ های اضافی -PE، -PP یا -PM را مشخص کنید. روش اول از درخواست‌های اکو ICMP استفاده می‌کند، اما همانطور که گفته شد، ترافیک ICMP اغلب مسدود می‌شود، بنابراین این روش همیشه قابل اجرا نیست، اما به دنبال مشخصات ICMP، درخواست‌های مهر زمانی و درخواست‌های ماسک آدرس نیز وجود دارد. با استفاده از این روش ها می توانید پاسخی نیز دریافت کنید کامپیوتر از راه دوربا این حال، آنها اغلب نتیجه مطلوب را نمی دهند. برای استفاده از روش ICMP echo، باید کلید -PE را برای دو روش توصیف شده دیگر - به ترتیب - کلیدهای -PP و -PM- مشخص کنید. در شکل شکل 7 تلاش های اسکن را با استفاده از سه روش نشان می دهد.

برنج. 7. اسکن نتیجه با استفاده از کلیدهای -PE، -PP و -PM

هنگام اسکن، تشخیص رایانه را غیرفعال کنید

به عنوان یک قاعده، تعیین دقیق اینکه آیا رایانه در شبکه است یا خیر، یا اگر وجود دارد، ممکن است اسکن آن توسط یک فایروال مسدود شود، غیرممکن است. در همین راستا گزینه -P0 معرفی شد که در آن کامپیوتر مورد بررسی از نظر حضور در شبکه اسکن نمی شود (یعنی اصلا پینگ نمی شود) بلکه فقط پورت های کامپیوتر اسکن می شود. هنگام استفاده از این گزینه، Nmap به طور خودکار فرض می‌کند که آدرس‌های IP در حال اسکن در شبکه هستند و درخواستی برای تعیین حضور رایانه در شبکه ارسال نمی‌کند که به طور قابل توجهی سرعت اسکن را افزایش می‌دهد. این گزینه معمولاً برای اسکن مخفی با استفاده از روش هایی استفاده می شود که در زیر توضیح داده خواهد شد، زیرا در این مورد هیچ اطلاعاتی در مورد درخواست های اکو ICMP در رایانه مورد بررسی باقی نمی ماند.

به طور پیش فرض، هنگام اسکن یک آدرس IP، Nmap اطلاعات نام رایانه را از DNS سیستم دریافت می کند. برای افزایش سرعت اسکن می توانید با افزودن کلید -n این گزینه را غیرفعال کنید. به هر حال، تقریباً در تمام برنامه ها و خدماتی که به هر طریقی با محیط شبکه مرتبط هستند، سوئیچ -n به همین معنی استفاده می شود (netstat -n، route -n و غیره). همچنین چندین گزینه وجود دارد که به شما امکان می دهد نام رایانه را نه تنها با استفاده از DNS سیستم، بلکه از طریق خارجی نیز دریافت کنید سرورهای DNS. برای فعال کردن این گزینه باید Nmap را با کلید اجرا کنید --dns-servers ، جایی که serv1 و serv2 آدرس سرورهای DNS هستند. علاوه بر این، می توانید از سوئیچ -R استفاده کنید. همانطور که گفته شد، Nmap به طور پیش فرض از DNS سیستم برای به دست آوردن نام کامپیوتر استفاده می کند. برای تعیین دستی این گزینه باید کلید را وارد کنید --system-dns. در شکل شکل 8 نمونه هایی از استفاده از سوئیچ های -n و -R --dns-servers را نشان می دهد.

برنج. 8. استفاده از سوئیچ های -n و -R --dns-servers

روش‌هایی برای اسکن پورت‌ها در رایانه از راه دور

اسکنر شبکه Nmap شامل استفاده از انواع روش های اسکن برای به دست آوردن اطلاعات لازم است. با این حال، بیایید این را رزرو کنیم که بسیاری از روش‌ها شامل دستکاری‌های مختلف با پرچم‌های بسته TCP در سطح پایین هستند، و بنابراین برای کار کردن به مجوز ریشه (ابر کاربر) در سیستم نیاز دارند. روش های مورد استفاده تنها می توانند به طور جداگانه از یکدیگر عمل کنند. اسکن پورت بر اساس همان روش ارسال بسته ها با پرچم های تغییر یافته هنگام شروع اتصالات TCP و UDP است.

اسکن با استفاده از روش SYN

متداول ترین روش و پیش فرض اسکن TCP SYN است. برای اکثر رایانه های تحت مطالعه، این روش برای تعیین پورت های باز کافی است. اسکن TCP SYN در مقایسه با روش‌های دیگر سریع‌ترین است - می‌تواند چندین صد پورت را در ثانیه اسکن کند، در حالی که کامپیوتر اسکن‌کننده را در سایه نگه می‌دارد زیرا هرگز اتصال TCP را قطع نمی‌کند (اکثر ابزارهای نظارتی داده‌های اتصال را ثبت نمی‌کنند). برای استفاده از این روش باید حقوق superuser (root) داشته باشید. اسکنر Nmap بسته ای را با پرچم SYN به رایانه تحت بررسی می فرستد، گویی که می خواهد یک اتصال TCP معمولی را با پیروی از قوانین ارائه شده در ابتدای مقاله باز کند. اگر یک پاسخ (بسته ای با پرچم های SYN/ACK) از میزبان درخواستی دریافت شود، پورت به عنوان باز تعیین می شود و اگر بسته ای با پرچم RST دریافت شود، به عنوان بسته تعیین می شود. اگر کامپیوتر اسکن شده پاسخ ندهد، فرض بر این است که این پورت توسط فایروال فیلتر شده است. برای استفاده از این روش اسکن، باید Nmap را با سوئیچ -sS اجرا کنید (شکل 9).

برنج. 9. اسکن با استفاده از سوئیچ -sS (اسکن TCP SYN)

همانطور که در تصویر مشاهده می کنید، اکثر پورت ها باز هستند، اما برخی از آنها توسط فایروال مسدود شده اند.

اسکن با استفاده از تابع سیستم ()connect

شرایطی وجود دارد که شما مجوزهای superuser را ندارید، اما لازم است یک رایانه از راه دور را اسکن کنید. در این مورد، Nmap از یک روش مبتنی بر اتصال استفاده می کند عملکرد سیستم connect()، که توسط اکثر برنامه ها - کلاینت های p2p، مرورگرها و برنامه های شبکه استفاده می شود. در این حالت Nmap درخواستی را به خود سیستم عامل ارسال می کند که یک اتصال TCP برقرار می کند. اگر اتصال برقرار شود، پورت به عنوان باز و در غیر این صورت بسته علامت گذاری می شود. پس از تعیین وضعیت پورت، Nmap اتصال را قطع می کند، یعنی با استفاده از تابع connect() بسته ای با پرچم RST ارسال می شود. با این حال، این روش یک اشکال دارد: از آنجایی که اتصال به طور کامل برقرار است، در سیاهه‌ها و گزارش‌های سیستم اسکن شده باقی می‌ماند و بنابراین سیستم‌های نظارت تقریباً همیشه تعیین می‌کنند که کدام رایانه اسکن را انجام داده است. در این راستا، این روش به ندرت مورد استفاده قرار می گیرد. برای اجرای اسکن فوق، باید Nmap را با سوئیچ -sT اجرا کنید. نمونه ای از استفاده از روش اسکن با استفاده از تابع سیستم ()connect در شکل نشان داده شده است. 10.

برنج. 10. با استفاده از سوئیچ -sT (اسکن TCP connect()) اسکن کنید.

اسکن پورت های پروتکل UDP

سرویس های UDP را فراموش نکنید که تقریباً به اندازه سرویس هایی هستند که از پروتکل TCP استفاده می کنند. رایج ترین سرویس هایی که از پروتکل UDP استفاده می کنند DNS، SNMP و DHCP هستند. از آنجایی که اسکن UDP پیچیده تر و کندتر از اسکن TCP است، بسیاری از سیستم های امنیتی از آن غفلت می کنند و گوش دادن (فیلتر کردن) در این پورت ها را نادیده می گیرند. اما در این مورد، سرویس‌هایی که در این پورت‌ها گوش می‌دهند نیز ممکن است در برابر هک آسیب‌پذیر باشند، زیرا Nmap به شما امکان می‌دهد تعیین کنید کدام پورت‌ها باز هستند و چه سرویس‌هایی به آنها گوش می‌دهند. از آنجایی که UDP پروتکلی متفاوت از TCP است، روش اسکن با روش‌هایی که قبلاً بحث شد متفاوت است. Nmap یک بسته UDP با هدر خالی به تمام پورت هایی که بررسی می کند ارسال می کند و منتظر پاسخ می ماند. اگر در پاسخ یک بسته ICMP با خطای unreachable خطا دریافت کند، پورت بسته در نظر گرفته می شود. هنگام دریافت بسته هایی با خطاهای دیگر، Nmap فرض می کند که پورت توسط فایروال فیلتر می شود. بسته پاسخ UDP دریافتی وجود سرویس را نشان می دهد و پورت باز علامت گذاری می شود. اگر پس از چندین بار تلاش پاسخی دریافت نشد، Nmap پورت را به عنوان open|فیلتر شده علامت‌گذاری می‌کند زیرا نمی‌تواند تعیین کند که آیا پورت باز است یا فایروال ترافیک آن پورت را مسدود می‌کند. علاوه بر این، بسیاری از کامپیوترها فقط می توانند تعداد محدودی پیام خطای ICMP را در هر ثانیه ارسال کنند. این کار برای محافظت در برابر اضافه بار شبکه انجام می شود. برای روشن شدن وضعیت یک پورت، می توانید از سوئیچ -sV استفاده کنید (در این مورد، Nmap سعی می کند سرویس در حال اجرا بر روی پورت اسکن شده و نسخه آن را تعیین کند)، اما سپس سرعت اسکن با یک مرتبه کاهش می یابد. اسکن UDP را می توان به طور همزمان با هر یک از روش های اسکن TCP اجرا کرد، زیرا آنها از پروتکل های مختلفی استفاده می کنند. اسکن UDP زمانی راه اندازی می شود که سوئیچ -sU مشخص شده باشد. تفاوت سرعت در شکل 1 نشان داده شده است. 11 که نمونه های متوالی اسکن بدون گزینه -sV و استفاده از آن را ارائه می دهد.

برنج. 11. اسکن UDP با و بدون سوئیچ -sV

شکل نشان می دهد که اسکن با استفاده از گزینه تشخیص نسخه سرویس تقریباً 10 برابر بیشتر از بدون آن (54 ثانیه در مقابل 4 ثانیه) طول کشید. اما این گزینه به باز بودن پورت‌های UDP 53 و 137 کمک کرد، اگرچه اسکن قبلی نمی‌توانست وضعیت آنها را دقیقاً تعیین کند. در عین حال، حتی این گزینه همیشه به به دست آوردن اطلاعات قابل اعتماد کمک نمی کند - از 9 پورت با وضعیت نامشخص، تنها دو پورت به طور دقیق شناسایی شدند (53 و 137). Nmap همچنین به شما امکان می دهد زمان پاسخگویی را برای رایانه مورد بررسی تنظیم کنید، در نتیجه میزبان های کند را حذف کرده و سرعت اسکن UDP را به میزان قابل توجهی افزایش دهید. گزینه ای که مسئول پاسخ کامپیوتر اسکن شده است را می توان نه تنها با اسکن UDP، بلکه با تمام روش های دیگر استفاده کرد. برای استفاده از این گزینه باید کلید را وارد کنید --hosts-timeout ، که در آن sec زمان پاسخگویی به میلی ثانیه است.

اسکن با روش های FIN، Xmas و Null

از آنجایی که یک اتصال TCP بر اساس دست دادن سه طرفه ای است که در ابتدای مقاله به آن پرداخته شد، با قطع توالی اتصال نیز می توان اطلاعاتی در مورد پورت های بسته و باز میزبان مورد بررسی به دست آورد. یک روش اسکن FIN وجود دارد که در آن بسته هایی با پرچم FIN به میزبان راه دور ارسال می شود که معمولاً هنگام بستن اتصال استفاده می شود. در این حالت، پورت کامپیوتر بسته، مطابق با مشخصات پروتکل TCP، باید یک بسته پاسخ با پرچم RST ارسال کند. اگر پورت باز باشد یا توسط فایروال مسدود شود، هیچ پاسخی از آن دریافت نخواهد شد. همانطور که در مورد اسکن SYN، اتصال به طور کامل برقرار نیست، بنابراین ممکن است هیچ اطلاعاتی در لاگ های سیستم میزبان تحت بررسی باقی نماند، در حالی که در همان زمان اکثر سیستم های نظارتی می توانند این نوع اسکن را ضبط کنند. این روش نسبت به اسکن اتصال TCP محرمانه تر است و به شما امکان می دهد بسته بودن یا باز بودن یک پورت (مسدود) را تعیین کنید، بنابراین چندین اصلاح در این روش وجود دارد. هنگام استفاده از روش اسکن تهی، به جای بسته ای با پرچم FIN، یک بسته با هدر خالی (0 بیت، همه پرچم ها غیرفعال) ارسال می شود. این روش طبق اصل توضیح داده شده در بالا کار می کند. روش دیگری که الگوریتم عملیاتی مشابهی دارد، Xmas scanning نام دارد. در این حالت، بسته ای برای میزبان ارسال می شود که با چندین پرچم (FIN، PSH و URG) به سبک درخت کریسمس رنگ شده است. هر یک از روش های در نظر گرفته شده دارای کلیدهای خاص خود هستند: -sN، -sF و -sX (به ترتیب Null-، FIN- و Xmas-scanning). در شکل 12 نمونه هایی از اسکن هر سه نوع را نشان می دهد و برای مقایسه در شکل 1. 13 - روش اسکن SYN.

برنج. 12. اسکن با استفاده از کلیدهای -sN، -sF و -sX

هنگام مقایسه نتایج اسکن با استفاده از SYN و Null، FIN و Xmas، واضح است که با کمک آنها بسیاری از پورت ها دقیقاً باز نیستند، بلکه فقط به عنوان open|فیلتر شده اند. زیرا اکثر سیستم عامل های ویندوز، دستگاه های شبکه سیسکو و سایرین همیشه از مشخصات پیروی نمی کنند، بنابراین نتیجه چنین اسکنی برای این نوع سیستم ها به احتمال زیاد منفی خواهد بود. در عین حال، اسکن با این سه روش برای شناسایی پورت های باز در سیستم های مبتنی بر یونیکس که از مشخصات پروتکل TCP پیروی می کنند مناسب است و همچنین به شما امکان می دهد بسیاری از فایروال ها و فیلتر بسته ها را دور بزنید.

برنج. 13. اسکن SYN

اسکن با استفاده از پرچم های مختلف

Nmap به شما اجازه می دهد تا پرچم هایی را که برای این نوع اسکن استفاده می شود، تنظیم کنید، که برای آن باید برنامه را با سوئیچ --scanflags اجرا کنید. در این مورد، انواع پرچم ها می توانند متفاوت باشند - URG، ACK، PSH، RST، SYN و FIN. دستور دستور به صورت زیر است: Nmap --scanflags URGACKPSHRSTSYNFIN. علاوه بر این دستور، می توانید دو روش اسکن را تعیین کنید: -sA و -sF (اگر آنها مشخص نشده باشند، از روش اسکن پیش فرض SYN استفاده می شود).

اسکن با استفاده از روش های ACK و Window

برای تعیین اینکه کدام پورت های رایانه در وضعیت فیلتر شده و کدام در وضعیت فیلتر نشده هستند، یک نوع اسکن جداگانه وجود دارد - ACK. همچنین می توان آن را با استفاده از سوئیچ --scanflags ACK فعال کرد. از آنجایی که بسیاری از فایروال‌ها فقط بسته‌های SYN را در یک پورت خاص نگاه می‌کنند، در نتیجه با ارسال بسته‌هایی با پرچم ACK، فیلتر را انجام می‌دهند، احتمال زیادی برای تعیین وجود فایروال در رایانه مورد بررسی وجود دارد یا خیر. در این حالت، بسته با پرچم ACK نه به عنوان بخشی از اتصال، بلکه به طور جداگانه ارسال می شود. اگر طرف دریافت کننده بسته بازگشتی را با پرچم RST ارسال کند (بر این اساس، پورت توسط فایروال مسدود نشده است)، درگاه به عنوان فیلتر نشده علامت گذاری می شود، اما اگر میزبان به بسته پاسخ ندهد، فایروال روی آن نصب می شود. و پورت در وضعیت فیلتر شده است. برای فعال کردن این روش باید Nmap را با سوئیچ -sA اجرا کنید. در شکل شکل 14 نمونه ای از این روش اسکن را نشان می دهد.

برنج. 14. با استفاده از روش ACK اسکن کنید

از آنجایی که یک کامپیوتر قبلاً با استفاده از اسکن SYN مورد بررسی قرار گرفته است (شکل 13 را ببینید)، می توان گفت که اسکن ACK می تواند وضعیت تنها برخی از پورت های میزبان را تعیین کند. این روش یک آنالوگ دارد که بر اساس یک اصل کار می کند، اما نتایج دریافت شده از میزبان را کمی متفاوت تفسیر می کند. اسکن پنجره TCP فرض می کند که در برخی هاست ها، سرویس ها از یک فیلد پنجره مثبت در بسته پاسخ (نه صفر) استفاده می کنند. بنابراین با استفاده از این روش Nmap هدر بسته های ورودی را با پرچم RST آنالیز می کند و اگر بسته ورودی دارای مقدار فیلد مثبت باشد، Nmap این پورت را به عنوان باز علامت گذاری می کند. دریافت بسته با مقدار فیلد صفر به معنای بسته بودن پورت است. برای فعال کردن این روش اسکن، باید کلید -sW را وارد کنید.

اسکن میمون

یکی دیگر از روش های اسکن مبتنی بر اتصال سه طرفه، روشی است که توسط متخصصی به نام Uriel Maimon توضیح داده شده است. روش آن تقریباً مشابه متدهای FIN، Xmas و Null است، با این تفاوت که بسته‌ها با پرچم‌های FIN/ACK ارسال می‌شوند. در اینجا، اگر پورت بسته باشد، میزبان باید با یک بسته RST پاسخ دهد. برای فعال کردن این روش اسکن، باید سوئیچ -sM را وارد کنید.

همه روش های فوق بر اساس همان روش اتصال سه طرفه برای اتصال TCP هستند.

اسکن مخفی با استفاده از الگوریتم idlescan

هیچ یک از روش های مورد بحث به شما اجازه نمی دهد تا آدرس IP میزبان اسکن را به طور کامل مخفی کنید. از آنجایی که جعل آدرس IP یک بسته خروجی چندان دشوار نیست، یک روش اسکن پیدا شد که در آن میزبان تحت بررسی نمی تواند آدرس IP دقیق رایانه ای را که اسکن از آن انجام می شود، تعیین کند. روش idlescan تقریباً مشابه اسکن SYN در الگوریتم عملیاتی آن است. برای درک اینکه چگونه آدرس IP رایانه اسکن کننده پنهان می شود، باید بدانید که هر بسته IP شماره شناسایی قطعه (IPID) خود را دارد. بسیاری از سیستم عامل ها این عدد را برای هر بسته ارسالی بعدی افزایش می دهند، بنابراین شما به راحتی می توانید تعیین کنید که میزبان چند بسته ارسال کرده است. شایان ذکر است که اگر کامپیوتری بسته ای با پرچم های SYN/ACK از آدرسی دریافت کند که از آن درخواست اتصال نکرده است، در پاسخ، بسته ای با پرچم RST ارسال می کند. این روش شامل استفاده از یک کامپیوتر "زامبی" دیگر است که از طرف آن بسته ها به رایانه اسکن شده ارسال می شوند. در ادامه، الگوریتم روش idlescan را در نظر خواهیم گرفت.

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

مورد اول - پورت مورد بررسی باز است:

  • مهاجم بسته ای را با پرچم های SYN/ACK به زامبی می فرستد و در پاسخ زامبی بسته ای را با پرچم RST ارسال می کند. این بسته به عنوان مثال دارای شماره شناسایی(IPID) 123;
  • مهاجم بسته ای را با پرچم SYN در پورت مورد نظر از طرف کامپیوتر زامبی ارسال می کند.
  • هدف یک درخواست پاسخ با پرچم های SYN/ACK به کامپیوتر زامبی ارسال می کند. در پاسخ، زامبی بسته ای را با پرچم RST به کامپیوتر مورد نظر ارسال می کند، زیرا زامبی قصد نداشت با آن ارتباط برقرار کند. این بسته یک عدد افزایش یافته است - IPID 124.
  • مهاجم بسته ای را با پرچم SYN/ACK به زامبی کامپیوتر می فرستد، در پاسخ زامبی بسته ای را با پرچم RST ارسال می کند. این بسته دارای IPID افزایش دو - 125 است.

مورد دوم - پورت بسته است:

  • مهاجم بسته ای را با پرچم های SYN/ACK به زامبی می فرستد، در پاسخ زامبی بسته ای را با پرچم RST ارسال می کند. برای مثال، این بسته دارای شماره شناسایی (IPID) 123 است.
  • مهاجم بسته ای را با پرچم SYN در پورت مورد نظر از طرف کامپیوتر زامبی ارسال می کند.
  • target بسته ای را با پرچم RST به کامپیوتر زامبی می فرستد. زامبی در پاسخ چیزی ارسال نمی کند.
  • مهاجم بسته ای را با پرچم SYN/ACK به زامبی کامپیوتر می فرستد، در پاسخ زامبی بسته ای را با پرچم RST ارسال می کند. این بسته دارای IPID افزایش یک - 124 است.

بنابراین، با محاسبات ساده می توانید محاسبه کنید که آیا یک پورت در رایانه مورد مطالعه باز یا بسته است. مزیت این روشاین است که شناسایی آدرس IP رایانه اسکن کننده بسیار دشوار است، زیرا رایانه هدف معتقد است که اسکن توسط رایانه زامبی انجام شده است و درخواست های رایانه اسکن فقط در گزارش های زامبی باقی می مانند. برای فعال کردن این روش اسکن، باید سوئیچ -sI را وارد کنید ، که در آن زامبی نام یا آدرس IP رایانه ای است که اسکن از طرف آن انجام می شود و پورت پورت ارتباط بین رایانه اسکن کننده و زامبی است (به طور پیش فرض 80، زیرا در اکثر رایانه ها این پورت برای ترافیک وب باز است. ). نمونه ای از اسکن با استفاده از این روش در شکل 1 نشان داده شده است. 15، نمونه ای از اسکن SYN نیز برای مقایسه نشان داده شده است.

برنج. 15. اسکن با استفاده از روش idlescan

همانطور که از شکل مشخص است، کامپیوتر "زامبی" یک کامپیوتر با آدرس IP 10.0.0.79 بود و کامپیوتر اسکن شده دارای آدرس IP 10.0.0.62 بود. پس از تجزیه و تحلیل نتایج، می توان استدلال کرد که روش idlescan همیشه وضعیت یک پورت را به درستی تعیین نمی کند (خواه باز باشد یا توسط فایروال مسدود شده باشد). علاوه بر این، اگر زمان اسکن را با هم مقایسه کنیم، سرعت روش SYN بسیار بالاتر است، زیرا هنگام اسکن غیرفعال، Nmap گاهی اوقات مجبور است چندین بار بسته ها را ارسال کند، زیرا یک کامپیوتر زامبی نیز می تواند به شدت کار کند و به طور فعال بسته ها را مبادله کند، در نتیجه بسته ها را از بین می برد. شمارنده IPID، که Nmap محاسبه می شود. در صورت نیاز به پنهان کردن اسکن، این روش ترجیح داده می شود، با این حال، هنوز تصویر دقیقی از پورت های باز روی رایانه مورد بررسی ارائه نمی دهد. این نوعتوصیه می‌شود اسکن‌ها را با سوئیچ -P0 اجرا کنید، زیرا در این مورد Nmap قبل از اسکن از میزبان نظرسنجی نمی‌کند. در برخی موارد، اگر یک کامپیوتر زامبی رفتار تهاجمی داشته باشد و در دریافت نتایج اسکن اختلال ایجاد کند (نمی‌تواند نتایج اسکن را نمایش دهد) و لازم است اطلاعاتی در مورد پورت‌های باز به‌دست آورید، می‌توانید از گزینه -v -v (حالت کلامی) استفاده کنید. در این حالت Nmap تمامی اطلاعات سرویس و دریافتی را به صورت آنلاین روی صفحه نمایش می دهد.

برای پروتکل های باز اسکن کنید

در برخی موارد لازم است که پروتکل های باز روی هاست راه دور تعریف شود. از آنجایی که به هر پروتکل IP لایه انتقال، شماره توالی خاص خود اختصاص داده شده است، و هر بسته IP دارای یک فیلد پروتکل است که نوع هدر بسته ها و شماره پروتکل را نشان می دهد، می توانید بفهمید که چه پروتکل هایی در رایانه ای که در حال آزمایش هستید باز هستند. برای تعیین اینکه آیا یک پروتکل در یک میزبان موجود است یا خیر، Nmap چندین بسته را با هدرهای خالی ارسال می کند که فقط شامل شماره پروتکل در قسمت پروتکل است. اگر پروتکل در دسترس نباشد، رایانه پیغام ICMP «پروتکل در دسترس نیست» را برمی‌گرداند. اگر میزبان با هیچ بسته ای پاسخ ندهد، ممکن است به این معنی باشد که یا پروتکل در دسترس است یا فایروال ترافیک ICMP را مسدود می کند. این وضعیت بسیار شبیه به اسکن UDP است، جایی که تعیین دقیق باز بودن یا فیلتر شدن پورت توسط فایروال غیرممکن است. برای فعال کردن اسکن پروتکل، باید از سوئیچ -sO استفاده کنید. در شکل شکل 16 نمونه ای از استفاده از این روش را نشان می دهد.

برنج. 16. پروتکل های موجود را اسکن کنید

در نتیجه Nmap پروتکل‌ها را باز و فیلتر می‌کند زیرا می‌تواند این وضعیت را به دقت تعیین کند. پروتکل های اسکن شده باقیمانده به عنوان open|filtered علامت گذاری می شوند.

اسکن مخفیانه با استفاده از روش ftp bounce

اسکنر شبکه Nmap از روش ftp bounce scanning پشتیبانی می کند که ماهیت آن توانایی سرور ftp برای ارسال فایل ها به شخص ثالث است. از آنجایی که این تابع اغلب برای مقاصد دیگر (اسکن، تلاش برای هک) استفاده می شود، بسیاری از سرورهای ftp دیگر آن را پشتیبانی نمی کنند یا آن را مسدود می کنند. روش ftp bounce به شما این امکان را می دهد که پورت های یک کامپیوتر راه دور را از طرف یک سرور ftp اسکن کنید. کامپیوتر اسکن کننده درخواستی را به سرور FTP می فرستد تا یک اتصال TCP روی یک پورت خاص با کامپیوتری که برای انتقال فایل اسکن می شود برقرار کند. تجزیه و تحلیل خطاهای دریافتی از سرور ftp به Nmap اجازه می دهد تا مشخص کند که یک پورت باز یا بسته است. در این مورد، محرمانه بودن اسکن تضمین می شود، زیرا برای رایانه مورد بررسی، آغازگر اتصال سرور FTP است و نه رایانه اسکن. این روش در درجه اول راحت است زیرا، به عنوان یک قاعده، فایروال اجازه می دهد تا ترافیک از یک سرور ftp شناخته شده عبور کند، زیرا دومی معمولاً حقوق دسترسی بیشتری به منابع شبکه خارجی و داخلی دارد. بنابراین، دور زدن فیلترهای پورت و فایروال هایی که هنگام اسکن با روش های دیگر اجازه ترافیک را نمی دهند، امکان پذیر می شود. برای اسکن رایانه با استفاده از این روش، باید یک سرور ftp مناسب که از عملکرد توصیف شده پشتیبانی می کند و یک ورود / رمز عبور برای ورود به این سرور ftp پیدا کنید. برای اجرای Nmap هنگام اسکن با این روش باید کلید را مشخص کنید ، که در آن نام کاربری و رمز عبور ورود و رمز ورود به سرور ftp و سرور نام یا آدرس IP سرور است. به طور پیش فرض، اگر از کلید:port استفاده نکنید، Nmap سعی می کند به سرور ftp در پورت استاندارد 21 متصل شود. در شکل شکل 17 نمونه ای از این روش را نشان می دهد.

برنج. 17. اسکن با استفاده از روش ftp bounce

همانطور که از شکل مشخص است، اسکن با این روش نتایج مثبتی به همراه داشت. با این حال، اسکن با این روش همیشه امکان پذیر نیست، زیرا اغلب سرور ftp نمی تواند با استفاده از پورت های ممتاز (زیر 1024) با رایانه راه دور ارتباط برقرار کند. برای چنین خطاهایی، Nmap خط را نمایش می دهد سرور ftp bounce شما اجازه پورت های ممتاز را نمی دهدچالش شایسته مشکل recv از ftp bounce server. مانند اسکن idlescan، برای پنهان کردن حضور، توصیه می‌شود سوئیچ -P0 را مشخص کنید تا Nmap تلاشی برای ارسال درخواست‌های اکو ICMP به رایانه در حال اسکن نکند. توجه به انجماد مکرر Nmap هنگام استفاده از ftp bounce به هاست های خاص ارزش دارد. برای اینکه همچنان اطلاعات لازم را بدست آورید باید Nmap را با گزینه های -v -v اجرا کنید که به کمک آن اسکنر شبکه اطلاعات دریافتی را به صورت آنلاین نمایش می دهد.

تنظیمات پورت اسکن شده

اسکنر Nmap تعداد زیادی دارد تنظیمات اضافی. در جدول 3 تنظیمات مربوط به پورت های اسکن را توضیح می دهد.

جدول 3. تنظیمات پورت را اسکن کنید

به طور پیش‌فرض، Nmap همه پورت‌ها، از جمله پورت‌های دارای امتیاز (0 تا 1024) و پورت‌های تعریف‌شده در فایل Nmap-services را اسکن می‌کند. این فایل به طور مداوم توسط توسعه دهندگان به روز می شود و شامل پورت هایی است که توسط برنامه ها و سرویس های رایج استفاده می شود. فایل حاوی نام سرویس، توضیحات آن و پروتکلی است که استفاده می کند. از آنجایی که Nmap به شما امکان می دهد نه تنها پورت های TCP بلکه پورت های UDP را نیز اسکن کنید، با استفاده از سوئیچ -p می توانید پروتکل و پورت آن را به وضوح مشخص کنید. اسکن 25 امین پورت UDP و 80 امین پورت TCP به این صورت است: Nmap -p U:25,T:80.

تعیین نسخه های سرویس های در حال اجرا

همانطور که در ابتدای مقاله ذکر شد، Nmap با درجه احتمال بالا به شما امکان می دهد نسخه سیستم عاملی را که روی یک کامپیوتر راه دور اجرا می شود، تعیین کنید. در عین حال، Nmap همچنین می‌تواند نسخه‌های سرویس‌هایی را که روی یک رایانه از راه دور اجرا می‌شوند، به شرط باز بودن پورت‌های یک سرویس خاص شناسایی کند. تعیین نسخه سیستم‌عامل و سرویس‌ها به شما کمک می‌کند تصویر واضح‌تری از آسیب‌پذیری رایانه مورد بررسی و اینکه کدام حفره‌های سرویس‌ها ممکن است برای هک باز باقی بماند، به دست آورید. برای به دست آوردن اطلاعات در مورد نسخه سرویس در حال اجرا یا سیستم عامل، Nmap از پایگاه داده خود استفاده می کند که شامل برچسب های خاص مخصوص این نسخه نرم افزار خاص است. اطلاعات پس از هر اسکن با استفاده از هر روشی برای تجزیه و تحلیل پورت های باز جمع آوری می شود. تعیین نسخه‌های برنامه همیشه نتیجه مثبتی به همراه نمی‌آورد، اما در بیشتر موارد، اطلاعات به‌دست‌آمده از این طریق به دریافت ایده از سیستم مورد استفاده در رایانه راه دور کمک می‌کند. در صورتی که Nmap اطلاعاتی در مورد یک میزبان دریافت کند اما نتواند آن را با توضیحات خاصی در پایگاه داده خود مطابقت دهد، برنامه نتیجه را روی صفحه نمایش می دهد. در صورت تمایل، اگر نسخه سیستم عامل یا سرویس شناخته شده است، اما Nmap نمی تواند آن را تعیین کند، می توانید خروجی را کپی کرده و برای توسعه دهنده ارسال کنید - به نسخه بعدیبرنامه، این توصیفگر گنجانده خواهد شد. در جدول شکل 4 کلیدهای تعیین نسخه های سرویس های در حال اجرا در میزبان راه دور را نشان می دهد.

جدول 4. تنظیمات را برای تعیین نسخه های سرویس اسکن کنید

سوئیچ -allports که در جدول نشان داده شده است. 4 به طور کلی استفاده نمی شود، زیرا اگر این گزینه فعال باشد، Nmap بسته ها را روی پورت TCP 9100 نیز ارسال می کند. این به این دلیل است که بسیاری از چاپگرها دارای معایب زیر هستند: هنگامی که بسته ها را در پورت 9100 دریافت می کنند، اطلاعات دریافتی را به طور خودکار چاپ می کنند و در برای جلوگیری از کوه های کاغذ آسیب دیده، درگاه TCP 9100 هنگام تعیین نسخه حذف می شود.

تعیین نسخه سیستم عامل در رایانه از راه دور

البته یکی از جالب ترین گزینه ها تعیین سیستم عامل کامپیوتر راه دور است. در این مورد، یک روش مدرن برای تعیین نسخه های سرویس های در حال اجرا استفاده می شود. Nmap تست های مختلفی را با ارسال بسته ها روی پروتکل های مختلف تحت شرایط مختلف به کامپیوتر مورد آزمایش انجام می دهد. با مقایسه نتایج به دست آمده با مقادیر مرجع مشخص شده در فایل Nmap-os-fingerprints، برنامه یک نتیجه خلاصه برای کامپیوتر تولید می کند. بسته به کمیت و کیفیت اطلاعات دریافتی، Nmap می تواند سازنده سیستم عامل، نسخه تقریبی آن و نوع تجهیزات را تعیین کند، زیرا نتیجه نهایی اسکن همیشه یک کامپیوتر نیست - همچنین می تواند یک روتر، یک سوئیچ مدیریت شده باشد. و غیره برای فعال کردن این روش اسکن، باید سوئیچ -O و همچنین سوئیچ -A را مشخص کنید که تشخیص نسخه سیستم عامل و نسخه های سرویس های در حال اجرا را فعال می کند. در شکل 18 نمونه ای از تعریف یک سیستم عامل را نشان می دهد.

برنج. 18. تعریف سیستم عامل

تنظیمات تاخیر زمانی

سرعت عملیات بالا به طور موقت تعیین می شود سپارامترهای پاسخ و ارسال بسته ها به طور پیش فرض، Nmap از کارآمدترین تنظیمات زمان بندی برای تولید نتایج اسکن قابل قبول استفاده می کند. با این حال، متخصصان امنیتی که از این اسکنر استفاده می‌کنند ممکن است به تنظیمات موقت ویژه برای روش‌های اسکن خاص نیاز داشته باشند. سثابت های x در این راستا، توسعه‌دهندگان Nmap تنظیمات دستی برخی از ثابت‌ها و همچنین امکان تنظیم «زمان‌بندی» اسکن را فراهم کرده‌اند. برخی از سوئیچ ها از تنظیم زمان استفاده می کنند که به طور پیش فرض میلی ثانیه است، اما می توان زمان را به صورت s، m و h نوشت - این آرگومان های تحت اللفظی به انتهای مقدار عددی اضافه می شوند و نماد را بسیار کوتاه می کنند و آن را ساده می کنند. به عنوان مثال، 600000، 600s، 10m هم زمان را نشان می دهد. مشخص کردن کلیدهای احتمالی به طور موقت سپارامترهای x و عملکرد در جدول آورده شده است. 5.

جدول 5. تنظیمات زمان بندی و عملکرد

برنامه اسکن

همانطور که در بالا ذکر شد، Nmap به شما امکان می دهد یک برنامه اسکن را تنظیم کنید تا سعی کنید حضور خود را از فایروال ها و سیستم های امنیتی پنهان کنید. شش برنامه اسکن وجود دارد: پارانوئید، یواشکی، مودب، عادی، تهاجمی و دیوانه، که برنامه عادی پیش‌فرض است. موقت ستأخیرها و سایر عوامل مرتبط در جدول آورده شده است. 6.

جدول 6. ویژگی های برنامه های مختلف اسکن

گزینه های اضافی خط فرمان

تقریباً همه مهم ترین گزینه های خط فرمان در بالا توضیح داده شده اند. در زیر برخی از پارامترهای رایج استفاده می شود:

  • - استفاده از آدرس IP شخص دیگری در بسته های ارسال شده به رایانه. در این صورت سرور پاسخی را توسط آدرس مشخص شده;
  • -e - فقط از یک رابط شبکه خاص، به عنوان مثال Nmap –e eth0 استفاده کنید.
  • -v; -د- نمایش وضعیت اسکن فعلی به صورت آنلاین. دستور -d حالت اشکال زدایی را فعال می کند، جایی که همه اطلاعات احتمالیدر مورد وضعیت فعلی عملیات، و همچنین خطاها و کدهای آنها؛
  • -g (جایگزین ---source-port ) - به شما امکان می دهد پورت منبع را انتخاب کنید که از آن بسته ها در حین اسکن ارسال می شوند.
  • -طول داده - امکان تنظیم اندازه بسته به بایت را فراهم می کند. مقادیر پیش فرض برای درخواست های TCP و ICMP به ترتیب 40 و 28 است.
  • -ttl - به شما امکان می دهد زمان یک بسته IP را در قسمت زمان برای زندگی تنظیم کنید.
  • -spoof-mac - به شما امکان می دهد یک آدرس مک متفاوت (فیزیکی) برای فریم ها تنظیم کنید. مثال کاربردی: Dlink, 0, 01:02:03:04:05:06;
  • -badsum- بسته های TCP و ICMP را با چک جمع خراب ارسال می کند. فایروال ها یا سیستم های امنیتی معمولاً به چنین بسته ای پاسخ می دهند.
  • -6 - از اسکن برای شبکه های IPv6 استفاده کنید. در این مورد، شما باید یک آدرس IPv6 یا نام میزبان را مشخص کنید.
  • -خطاهای ورود- تمام خطاها در یک فایل لاگ ثبت می شوند.
  • -oN; -oM; -oS؛ -oA -oG - ضبط اسکن ها در یک گزارش. انواع رکوردها در روش ذخیره اطلاعات متفاوت است. گزینه -oN پس از ظاهر شدن اطلاعات روی صفحه ضبط می کند، و گزینه -oA همه فرمت های ممکن را به یکباره در فایل هایی با نام فایل و پسوندهای مختلف (*.xml، *.gNmap، *.Nmap) ضبط می کند.

نتیجه گیری

البته همه گزینه های اسکنر به اندازه کافی در نظر گرفته نشده اند. اکثر کاربران محدود هستند روش های استاندارداسکن کردن اسکنر Nmap نه تنها برای کاربران عادی شبکه، بلکه برای کاربران نیز طراحی شده است مدیران سیستمو توسعه دهندگان سیستم های امنیتی و ابزارهای زیادی در کارشان برایشان مفید خواهد بود. Nmap دائما در حال به روز رسانی و بهبود است. از آنجایی که مانند بسیاری از برنامه های دیگر برای سیستم های لینوکس، رایگان است، هر کسی می تواند در نوشتن آن مشارکت کند.

در خاتمه، مایلم یادآوری کنم که اسکنرهای شبکه و سایر برنامه های مشابه در درجه اول برای جلوگیری از هک یا حملات فعال ایجاد می شوند. با اسکن کامپیوتر شما، نه تنها تعداد زیادی پورت باز، بلکه حتی یک تروجان که توسط آنتی ویروس متوجه نشده است کاملاً امکان پذیر است. بنابراین، توانایی کار با چنین نرم افزارهایی همیشه در کار دشوار مبارزه با هک کمک خواهد کرد. اسکنر شبکه ای در نظر گرفته شده وسیع ترین طیف ممکن از انواع مختلف اسکن و ویژگی های اضافیدر مورد نظارت با انتخاب و ترکیب تکنیک های مختلف اسکن، می توانید اطلاعاتی در مورد رایانه یا دستگاه شبکه ای که هر سیستم عاملی را اجرا می کند، بیابید.

در زیر 20 مورد اساسی را خواهید یافت نمونه هایی از استفاده از دستور Nmap.

شما یاد خواهید گرفت که چگونه از Nmap استفاده کنید خط فرمان در لینوکسبرای جستجوی میزبان های فعال در شبکه و اسکن پورت های باز.

خواهید دید که چگونه شناسایی از راه دور سیستم عاملاستفاده از اثر انگشت پشته TCP/IP و نحوه نسخه نرم افزار را پیدا کنیددر حال اجرا بر روی سرور راه دور

من همچنین به شما نشان خواهم داد که چگونه این کار را با استفاده از Nmap انجام دهید اسکن مخفی، چگونه فایروال را تعریف کنیدو چگونه آدرس مک را تغییر دهید.

1. یک هاست یا آدرس IP را اسکن کنید

اسکن کنید آدرس IP جداگانه:

$nmap 192.168.1.1

اسکن سرور توسط نام میزبان:

$ nmap server.site

افزایش دهید سطح جزئیاتنتایج اسکن:

$ nmap -v سرور..سایت

2. اسکن چندین آدرس IP

اسکن کنید چندین آدرس IP:

$nmap 192.168.1.1 192.168.1.2 192.168.1.3 $namp 192.168.1.1،2،3

اسکن کنید زیر شبکه:

$ nmap 192.168.1.0/24 $ nmap 192.168.1.*

اسکن کنید محدوده آدرس IP (192.168.1.0 — 192.168.1.200):

$nmap 192.168.1.0-200

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

توصیه خوب:شبکه خود را فقط با یک اسکن کنید دستورات پینگ! همه رایانه های فعال را پیدا کنید!

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

$ nmap -sn 192.168.1.0/24

4. لیست میزبان را از فایل اسکن کنید

اسکن لیستی از میزبان/شبکه ​​ها از فایل:

$ nmap -iL input.txt

فرمت فایل:

# ورودی‌ها می‌توانند در هر یک از قالب‌هایی باشند که Nmap با آن # از خط فرمان کار می‌کند (آدرس‌های IP، نام میزبان، CIDR، IPv6، یا محدوده # octet). ورودی ها باید با یک یا چند فاصله، تب # یا خط جدید از هم جدا شوند. $ cat input.txt server.site 192.168.1.0/24 192.168.2.1,2,3 192.168.3.0-200

5. مستثنی کردن IP/Host/شبکه ​​ها از اسکن

حذف اهدافاز اسکن Nmap:

$ nmap 192.168.1.0/24 --exclude 192.168.1.1 $ nmap 192.168.1.0/24 --exclude 192.168.1.1 192.168.1.5 nmap 192.168.1.5 $ nmap 192.168.121.2, 192.12.12, 192.121.2, 192.121.164.

فهرست حذف شودهاست های برگرفته از فایل:

$ nmap 192.168.1.0/24 --excludefile exclude.txt

فرمت فایل با میزبان های حذف شده مشابه فرمت بالا است.

6. پورت های خاص را اسکن کنید

اسکن کنید یک بندر:

$ nmap -p 80 192.168.1.1

اسکن کنید پورت های متعدد:

$ nmap -p 80.443 192.168.1.1

اسکن کنید محدوده بندر:

$ nmap -p 80-1000 192.168.1.1

اسکن کنید همه پورت ها:

$ nmap -p "*" 192.168.1.1

اسکن چندین مورد از بیشتر پورت های مشترک:

$ nmap --top-ports 5 192.168.1.1 $ nmap --top-ports 10 192.168.1.1

7. تعیین پروتکل های IP پشتیبانی شده

تعیین کنید کدام پروتکل های IP(TCP، UDP، ICMP، و غیره) از میزبان اسکن شده پشتیبانی می کند:

$ nmap -sO 192.168.1.1

8. اسکن پورت های TCP/UDP

اسکن کنید تمام پورت های TCP:

$ nmap -sT 192.168.1.1

اسکن کنید پورت های TCP خاص:

$ nmap -p T:80 192.168.1.1

اسکن کنید تمام پورت های UDP:

$ nmap -sU 192.168.1.1

اسکن کنید پورت های خاص UDP:

$ nmap -p U:53 192.168.1.1

ترکیب اسکن پورت های مختلف:

$ nmap -p U:53,79,113,T:21-25,80,443,8080 192.168.1.1

9. اسکن سریع

فعال کنید حالت سریعاسکن:

$ nmap -F 192.168.1.1

* پورت های کمتری را نسبت به اسکن معمولی اسکن می کند.

10. نمایش علت وضعیت بندر

نمایش دهید دلیل، که Nmap معتقد است که پورت در وضعیت خاصی است:

$ nmap --reason 192.168.1.1

11. نمایش فقط درگاه های باز

نمایش دهید فقط پورت ها را باز کنید (یا احتمالاً باز):

$ nmap -- باز 192.168.1.1

12. تعریف سیستم عامل

یکی از معروف ترین ویژگی های Nmap تشخیص سیستم عامل از راه دور آن بر اساس تجزیه و تحلیل پشته TCP/IP است.

Nmap یک سری بسته های TCP و UDP را به میزبان راه دور ارسال می کند و پاسخ ها را بررسی می کند.

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

روشن کنید تعریف سیستم عامل:

$ nmap -O 192.168.1.1

13. تعیین نسخه خدمات

روشن کنید تعیین نسخه خدمات:

$ nmap -sV 192.168.1.1

* نسخه های برنامه های در حال اجرا بر روی سرور راه دور را تعیین می کند.

14. تشخیص فایروال

دریابید که آیا رایانه شما توسط هر یک محافظت می شود فیلترهای دسته ایچالش شایسته فایروال:

$ nmap -sA 192.168.1.1

15. جایگزینی آدرس MAC

جایگزین آدرس های MAC:

$ nmap --spoof-mac 00:11:22:33:44:55 192.168.1.1

آدرس MAC را تغییر دهید MAC تصادفی:

$ nmap --spoof-mac 0 192.168.1.1

16. فایروال را برای آسیب پذیری ها اسکن کنید

این سه نوع اسکن از یک حفره ظریف در TCP RFC برای دسته بندی پورت ها به عنوان باز و بسته استفاده می کنند.

هنگامی که یک سیستم سازگار با RFC اسکن می شود، هر بسته ای که حاوی آن نباشد بیت را تنظیم کنیددر صورت بسته بودن درگاه، SYN، RST یا ACK به پاسخ RST یا در صورت باز بودن درگاه پاسخی نمی دهد.

چون هیچ یک از این بیت ها تنظیم نشده است، سپس هر ترکیبی از سه مورد باقی مانده (FIN، PSH و URG) صحیح خواهد بود.

TCP Nullاسکن:

$ nmap -sN 192.168.1.1

* هیچ بیتی تنظیم نشده است (پرچم‌ها در هدر TCP 0).

TCP Finاسکن:

$ nmap -sF 192.168.1.1

* فقط بیت TCP FIN تنظیم شده است.

TCP کریسمساسکن:

$ nmap -sX 192.168.1.1

* پرچم‌های FIN، PSH و URG تنظیم شده‌اند (بسته مانند درخت کریسمس روشن می‌شود).

17. اسکن مخفی

توصیه خوب:هنگام اسکن پورت ها ناشناس بمانید! از Nmap + Tor + ProxyChains استفاده کنید! تست نفوذ ایمن و آسان!

TCP SYNاسکن:

$ nmap -sS 192.168.0.1

* به اسکن نیمه باز معروف است زیرا اتصالات TCP کامل را باز نمی کند.

18. غیرفعال کردن کشف میزبان (بدون پینگ)

قبل از اسکن کردن هاست پینگ نکنید:

$ nmap -Pn 192.168.1.1

19. غیرفعال کردن استفاده از DNS

توصیه خوب:آیا باید امنیت لینوکس خود را تقویت کنید؟ برای محافظت در برابر جعل، ترافیک DNS را رمزگذاری کنید!

هرگز وضوح نام DNS را برای هر آدرس IP فعال کشف شده معکوس نکنید.