- معرفی nmap و NMapWinاگر بخواهید مهمترین ابزاری را که یک هکر برای footprinting استفاده میکند بدانید، آن نرمافزار nmap خواهد بود که برای سیستمهای لینوکس و یونیکس طراحی شده است. برای هکرهای تازهکار که سیستمعامل ویندوز را به کار میبرند، نسخه گرافیکی و تحت ویندوزی طراحی شده است که NMapWin نام دارد و همان امکانات را فراهم میآورد. بحث این جلسه درباره این نرمافزار است.اندازه برنامه 6.18 مگابایت است و اگر اتصالتان dial-up است، کمی طول خواهد کشید. ضمنا توجه کنید که این برنامه مخصوص ویندوز ۲۰۰۰ و xp است.این نرمافزار مجموعه ابزارهای footprinting مثل پورت اسکن، آیپی اسکن، تشخیص
سیستمعامل کامپیوتر مورد نظر (OS detection) و … را گرد هم آورده است.
- بررسی ظاهر برنامهشکل
ظاهری برنامه چهار قسمت دارد:
۱- Network Section :
بالاترین قسمت پنجره
برنامه است که محلی برای ورود ip یا ip ها دارد به نام Host. بعد از وارد کردن ip
و تنظیم کردن پارامترها، دکمه Scan را کلیک میکنیم تا کار اسکن شروع شود.
اگر
قرار باشد بیش از یک ip وارد شود، این کار را میتوان به صورتهای مختلف انجام داد.
مثلا: *.*.192.130 یعنی تمام ip هایی که با 192.130 شروع میشوند ولی دو عدد بعدی
هرچیزی میتواند باشد. و نوشتن به صورت 15-192.130.120.12 یعنی عدد آخری میتواند
از ۱۲ تا ۱۵ باشد.
۲- Option Folder :
این قسمت در واقع محل تنظیمات است
و به کمک آن مشخص میکنیم که از برنامه میخواهیم که چهکاری انجام دهد که مفصلا در
موردش صحبت خواهم کرد. در این قسمت، برگههایی با نامهای Option , Discover , Scan
, ... وجود دارد.
۳- Log Output :
محل ظاهر شدن نتایج است. در حالتی که
اسکن شروع نشده باشد، خالی است.
۴- Status bar :
پایینترین بخش پنجره
برنامه است و دو بخش مهم دارد:
قسمت سمت چپ نشان میدهد که اگر بخواهیم در nmap
همین کار رو انجام بدیم، چه سویچهایی را باید بکار بریم ( دقت کنید که nmap برخلاف
NMapWin گرافیکی نیست ). هر تغییری که در قسمت Option Folder اعمال کنیم، در این
قسمت تغییری را مشاهده میکنیم و توصیه میکنم که حتما به این قسمت توجه ویژهای
داشته باشید.
اما در سمت راست آن، یک مربع کوچک مشاهده میشود که میتواند به
رنگهای سبز یا قرمز باشد. سبز یعنی اینکه برنامه آماده برای اجرای دستورات شماست و
قرمز یعنی در حال انجام دستورات وارد شده است و فعلا دستور جدید
نمیپذیرد.
- شروع کار با NMapWinفرض
کنید که میخواهم سایت far30.com رو میخواهم مورد بررسی قرار دهم. برای اینکار
ابتدا ip رو بدست آورده (63.148.227.65) و در قسمت Host تایپ میکنیم. حالا فعلا
بدون اعمال تغییری در قسمت Option Folder ، دکمه Scan رو کلیک میکنیم. اسکن شروع
میشود و بعد از چند دقیقه، نتایج زیر در قسمت Log Output ظاهر میشود:
Starting nmap V. 3.00 ( www.insecure.org/nmap )
Interesting ports on (63.148.227.65):
(The 1583 ports scanned but not shown below are in state: closed)
Port State Service
21/tcp open ftp
25/tcp open smtp
31/tcp open msg-auth
53/tcp open domain
80/tcp open http
110/tcp open pop-3
135/tcp open loc-srv
143/tcp open imap2
443/tcp open https
445/tcp open microsoft-ds
1025/tcp open NFS-or-IIS
1026/tcp open LSA-or-nterm
1050/tcp open java-or-OTGfileshare
1433/tcp open ms-sql-s
3372/tcp open msdtc
3389/tcp open ms-term-serv
6666/tcp open irc-serv
7007/tcp open afs3-bos
Remote operating system guess: Windows 2000/XP/ME
Nmap .... -- 1 IP address (1 host up) scanned in 156 seconds
در
همینجا سه نوع اطلاعات قابل دسترسی است:
۱- لیست پورتهای باز روی کامپیوتر
سرور و کاربرد آن پورتها
۲- تشخیص سیستم عامل که Windows 2000/XP/ME حدس زده
شده است (سطر ماقبل آخر)
۳- و سطر آخر میگوید که این ip روشن (up)
است.
- بررسی برگه Scan از قسمت Option
Folderاین برگه خود ۲ بخش دارد:
+> بخش Mode
:در درسهای قبلی گفتم که اسکنینگ انواع مختلفی داره، و اینجا جایی است که
نوع اسکنینگ رو مشخص میکنیم:
- Connect : اسکن از نوع TCP connect scan است که
قبلا در درس هفتم دربارهاش بحث کردهام.
- SYN Stealth : در درس هفتم درباره
این هم گفتهام. - پیشفرض هم همین است
- Null Scan , Xmas tree , FIN Stealth :
برای سرورهای غیر از ویندوز کار میکنند.
- UDP Scan : برای اسکن کردن پورتهای
udp است.
- Ping Sweep : برای عمل ip scanning است که بدانیم که از بین یک سری
ip کدامها فعال هستند.
- List Scan : همان Ping Sweep است ولی به طوری که ip
مان لو نرود.
- ACK Scan : معمولا برای تشخیص فایروالها کاربرد دارد.
-
Window Scan : همان ACK Scan است ولی کاملتر
- RCP Scan : جزو کاملترین
حالتهای اسکنینگ است با اطلاعات فراوان.
+> بخش Scan Options
:این قسمت شش گزینه دارد که فقط یکیشان به درد میخوره:
- Port Range :
مشخص میکند که چه پورتهایی باید اسکن شود: اگر خالی بماند، یعنی همه پورتها ،
اگر یک عدد نوشته شود یعنی فقط آن پورت و اگر بهصورت n-m نوشته شود (که n و m عدد
هستند) یعنی از پورت n تا پورت m اسکن شود.
- بررسی
برگه Discover از قسمت Option Folderاین برگه دارای چهار گزینه
است:
- TCP Ping : برای بررسی فعال بودن کامپیوتر مورد نظر میتواند بهکار
رود.
- ICMP Ping : پینگ فقط از نوع ICMP باشد.
- TCP+ICMP : برای بررسی
فایروالها مناسب است (پیشفرض)
- Don"t Ping : پینگ نکند.
- بررسی برگه Options از قسمت Option Folderاین برگه
خود ۲ بخش دارد:
+> بخش Options :- Fragmentation : اگر
بخواهیم در اسکنینگهایی از نوع Null, Xmas, FIN, SYN تا حدودی تغییرات اعمال کنیم
تا حداقل خطر را برای ما داشته باشند، میتوان این گزینه را انتخاب کرد. ولی باید
توجه داشت که گاهی با انتخاب این گزینه اسکنینگ موفقیت آمیز نخواهد بود.
- Get
Idented Info : اگر بخواهیم اسکنینگ از نوع connect صورت دهیم، با انتخاب این گزینه
گاه اطلاعات ذیقیمتی برای ما به ارمغان میآورد.
- Resolve All : در حالت
پیشفرض، این نرمافزار روی ip هایی که up هستند، عمل Reverse Whois را انجام
میدهد (یعنی از روی ip، به دنبال اسم DNS مربوطه میگردد). اگر Resolve All را
انتخاب کرده باشیم، روی همه ip ها، چه up و چه down عمل Reverse Whois انجام خواهد
شد.
- Don"t Resolve : هرگز Reverse Whois نخواهد کرد.
- OS Detection : از
جمله مهمترین گزینههای این نرمافزار است که اگر انتخابشده باشد، برنامه سعی
میکند که سیستمعامل کامپیوتر مقابل را حدس بزند.
- Random Host : به صورت
تصادفی ip هایی را تست میکند، و هرگز هم به پایان نمیرسد.
+> بخش
Debug :- Debug : اگر مارک شده باشد، نتایج دیباگ مرحله به مرحله در
خروجی نشان داده میشود.
- Verbose : اگر انتخابشده باشد، پیشرفت کار را نشان
میدهد.
- Very Verbose : پیشرفت کار را با نهایت جزئیات نشان
میدهد.
- بررسی برگه Timing از قسمت Option
Folderاین برگه خود ۲ بخش دارد:
+> بخش Throttle
:در این بخش هرچه گزینههای بالاتر را انتخاب کنید، کار کندتر و
دقیقتر است و احتمال detection (لو رفتن) شما کمتر است و هرچه پایین تر برعکس. به
نظر میرسد، Normal بهترین انتخاب باشد.
+> بخش Timeouts
:- Host Timeout : حداکثر زمانی را مشخص میکند که برای یک ip میتواند
صرف شود.
- Max RTT : حداکثر زمانی را مشخص میکند که برای یک probe میتواند
صرف شود. پیشفرض، 9000 است (یعنی ۹ ثانیه)
- Min RTT : برای هر probe حداقل به
این اندازه صبر میکند.
- Initial RTT : این گزینه خصوصا در ip هایی که فایروال
دارند، مفید است.
- Parallelism : اگر در مورد acw_spscan دقت کرده باشید، این
برنامه هر بار فقط یک پورت را پروب میکند و نه بیشتر ( به همین خاطر است که اول
اسم آن simple دارد ). ولی محصولات واقعی باید همزمان تعدادی پورت را تست کنند. در
این قسمت میتوان حداکثر تعداد پورتهایی که میتواند همزمان پروب شوند را مشخص
میکنیم.
- Scan Delay : بین هر اسکن، حداقل به این میزان صبر
میکند.
- بررسی برگه Files از قسمت Option
Folderاین برگه خود ۲ بخش دارد:
+> بخش Input
:برای اینکه روند کارها را سریعتر کنیم، میتوان از این بخش استفاده
کرد. در این حالت ورودی از یک فایل خوانده میشود.
+> بخش Output
:این قسمت برای آن است که نتایج را در یک فایل ذخیره کنیم. این فایل
میتواند بهصورت Normal (متنی معمولی)، Grep (که الان دیگه بهکار نمیره)، XML و
یا All (هر سه مورد) باشد.
- بررسی برگه Service از
قسمت Option Folderفرض کنید میخواهید اول هر هفته فلان ip رو تست
کنید و کارهایی از ایندست... این برگه برای همینجور کارهاست (میشه گفت یک نوع
اتوماسیون)
- بررسی برگه Win32 از قسمت Option
Folderاین برگه دو بخش دارد به نامهای Options , Commands که فقط
Options رو بررسی میکنم:
- No Pcap : وقتی که NMapWin را نصب میکنیم، Pcap
هم نصب میشود ( که فقط روی سیستمهای ویندوز ۲۰۰۰ و xp میتواند نصب شود) و کارها
را برعهده میگیرد. اگر بخواهیم که از آن استفاده نشود و بهجای آن از Raw Socket
استفاده شود، این گزینه را مارک میکنیم.
- No IP HLP Api : مثل بالایی فقط
اینکه بین ارسال هر پکت، ۱۵ ثانیه منتظر میماند.
- No Raw Sockets : با انتخاب
آن Raw Socket بهکار نمیرود.
- Force Raw Socket : باعث میشود که فقط Raw
Socket بهکار رود.
- Win Trace : برای سیستمهای Win32 کمی اطلاعات بیشتری
بهدست میدهد.
- استفاده از NMapWin برای تعیین نوع
سیستم عاملاگر مهمترین کاربردهای nmap را بخواهیم بدانیم، یکی
port scanning و دیگری OS detection (تشخیص سیستمعامل مقابل) است که ویژگی دوم به
قدری مهم است که گاه nmap را با همین ویژگی میشناسند. برای اینکه نوع سیستمعامل
را تعیین کنیم، باید در برگه Options از NMapWin، گزینه OS detection انتخاب شده
باشد.
حالا چند مثال را بررسی میکنیم (شما خودتان این ip ها و ip های دیگر را
تست و تمرین کنید) :
194.225.184.15Remote operating system
guess:
Windows 2000 server SP2195.219.176.5Remote
operating system guess:
Linux Kernel 2.4.0 -
2.5.20206.104.238.208Remote operating system guess:
Linux 2.1.19 - 2.2.20217.66.199.6(Remote operating
system guess:
Cisco router running IOS
12.1.5-12.2(6a63.148.227.65Remote operating system guess:
Windows 2000/XP/ME194.225.184.2No exact OS matches
for host (If you know what OS is running on it, see
http://www.insecure.org/cgi-bin/nmap-submit.cgi).
در این مورد میبینید که
nmap موفق به تعیین نوع سیستمعامل نشده است. ممکن است دلیلش این باشد که ip در آن
لحظه up نبوده است.
نکتهای که باید در نظر داشت این است که گاه باید از یک
سری اطلاعات فنی هم استفاده کرد تا به جواب قطعی رسید :
- مثلا ip ماقبل آخر که
نتیجه آن به صورت Windows 2000/XP/ME ظاهر شده است، متعلق به sazin.com است که چون
یک سایت است و باید در یک سرور باشد و هیچ سروری نمیتواند ME یا XP باشد، پس
سیستمعامل آن Win 2000 خواهد بود.
- یا یک حالت دیگر موردی است که ببینید صفحات
یک وب سایت با asp یا asp.net درست شده است (مثلا اسم صفحه به صورت zzzzzz.asp یا
zzzzzz.aspx باشد، که نمونه آن سایت far30.com است که اسم همین صفحه default.asp
است). در این حالت سرور آن حتما سروری از محصولات مایکروسافت است مثل Win NT و یا
Win 2000 و نمیتواند Linux یا Unix یا Sun Solaris و... باشد.
- چگونه از nmap استفاده کنیم؟قبلا با نرمافزار
NMapWin آشنا شدید که نسخه گرافیکی nmap برای ویندوز بود. nmap در واقع نرمافزار
اصلی است که هم برای یونیکس (لینوکس) و هم برای ویندوز نسخههایی را دارد. nmap
برخلاف NMapWin، حالت خط فرمانی (command prompt) دارد. در این قسمت میخواهیم با
nmap مخصوص ویندوز آشنا شویم. (اگر قبلا NMapWin را نصب نکردهاید، باید از یک نسخه دیگر از nmap که
اصطلاحا nmap installer نام دارد، استفاده کنید.)
همانطور که میدانید، در نرمافزارهای خط فرمانی، باید از
پارامترها استفاده کنیم. با توجه به اینکه پارامترهای nmap بسیار زیاد و یادگیری
آنها مشکل است، ما برای پیدا کردن پارامترهای درست برای یک عمل خاص ( که معمولا ip
scanning یا port scanning است) از NMapWin استفاده میکنیم. به این ترتیب که در
NMapWin تنظیمات را انجام میدهیم و بعد در پایین پنجره آن مشاهده میکنید که در
قسمت :CMD لیست پارامترها را به دست میآوریم. این مراحل را با دو مثال شرح
میدم:
۱- میخواهیم برای پورتهای ۱ تا ۲۰۰ در کامپیوتری که ip آن
63.148.227.65 است، یک پورت اسکننیگ انجام دهیم. برای اینکار در NMapWin، برگه
Scan را درحالت SYN Stealth تنظیم میکنیم و Port Range را مینویسیم: 200-1 و بعد
برگه Discover باید در حالت TCP+ICMP باشد و اگر بخواهیم نوع سیستمعامل را هم مشخص
کنیم، در برگه Options، گزینه OS detection را در حالت انتخاب شده قرار میدهیم. ip
را هم در بالای پنجره، 63.148.227.65 مینویسیم. حالا آماده اسکن هستیم ولی ما
میخواهیم این کار را با nmap انجام دهیم، پس فقط باید قسمت CMD را از پایین پنجره
ببینید، ملاحظه میکنید که نوشته شده:
CMD: -sS -PT -PI -p 1-200 -O -T 3 63.148.227.65
با حذف کلمه :CMD به
عبارت زیر میرسیم:
-sS -PT -PI -p 1-200 -O -T 3 63.148.227.65
اینها پارامترهایی است که
باید در nmap استفاده کنید. به این صورت که مینویسید:
nmap -sS -PT -PI -p 1-200 -O -T 3 63.148.227.65
و بعد از اجرای دستور
و صبر کردن برای چند دقیقه، نتایج را میبینیم.
بعد از مدتی که با nmap کار
کنید، این پارامترها را میآموزید و دیگه نیازی به NMapWin نخواهید داشت. مثلا همین
O- یعنی OS detection، و 200-p 1 یعنی پورتهای ۱ تا ۲۰۰ میباشد. بعدها خودتان
میبینید که کار کردن با nmap بسیار دلچسبتر از NMapWin است.
۲- میخواهیم
یک ip scanning انجام دهیم برای 195.219.176.0 تا 195.219.176.10 . برای اینکار در
NMapWin، در برگه Mode، گزینه Ping Sweep را انتخاب میکنیم. در برگه Discovery،
گزینه ICMP Ping را انتخاب کرده و در برگه Options، گزینه OS detection را در حالت
انتخاب نشده قرار میدهیم. برای نوشتن ip ملاحظه میفرمایید که 195.219.176 در هر
دو مشترک است، پس مینویسیم: 10-195.219.176.0 .حالا میبینیم که پارامترها به صورت
زیر است:
-sP -PI -T 3 195.219.176.0-10
پس ما مینویسیم:
nmap -sP -PI -T 3 195.219.176.0-10