پاسخ به:آموزش های تخصصی شبکه و امنیت و ضد امنیت
پنج شنبه 26 مرداد 1391 1:31 AM
بررسی انواع Scanning
- انواع Scanning
دو نوع معمول Scanning وجود دارد:
۱- Port Scanning :
در اين حالت ما IP يا IPهای مورد نظر را انتخاب کردهايم و حالا میخواهيم بدانيم که کدام پورتها روی آن کامپيوترها باز است.
۲- IP Scanning :
در اين اسکنينگ میخواهيم بدانيم که از بين يک مجموعه ip ، کدامها up و کدامها down هستند. يعنی کدام ip ها الان قابل دسترسی هستند (يعنی به يه کامپيوتر در اينترنت نسبت داده شده است! ) فرض کنيد که شما يک سری IP مربوط به يک ISP خاص را داريد و میخواهيد بدانيد که در اين لحظه کدامها فعال (up) هستند تا فقط آنها را بررسی کنيد و نه همه را
- چگونه يک ارتباط TCP برقرار میشود که بگوييم فلان پورت باز است يا نه؟
برای اينکه تعيين کنيم که يک پورت روی يک سرور باز است يا نه، معمولا بايد يک TCP connect scan انجام دهيم. اول اين را بگم که Port Scanning انواع مختلف دارد که فعلا ما نوع TCP connect را مدنظر داريم. اين نوع اسکن سه مرحله دارد که به آن TCP"s 3-way handshakeمیگويند:
۱- اول کامپيوتر ما به سمت سرور يک SYN packet میفرستد که به معنی درخواست اتصال است.
۲- اگر سرور اين درخواست را قبول کند، در مرحله دوم سرور به سمت ما يک SYN/ACK packet میفرستد.
۳- در مرحله آخر کامپيوتر ما يک ACK packet به سمت سرور میفرستد.
نوع ديگری از پورت اسکن TCP SYN scan نام دارد. با توجه به اينکه معمولا اگر پورت اسکن به روش بالا (TCP connect scan) انجام دهيم، معمولا در سرور اين اتصال ذخيره خواهد شد و بعدا میتواند ما را رديابی کنند، به جای آن میتوان از TCP SYN scan استفاده کرد. در اين نوع اسکن، مراحل ۱ و ۲ از بالا انجام میشود ولی مرحله ۳ نه! اگر در مرحله ۲ به ما يک SYN/ACK برسد، آن پورت باز است و اگر يک RST/ACK برسد، يعنی بسته است.
انواع ديگری از پورت اسکنينگ هم وجود دارد مثل UDP scan, TCP Window scan, TCP ACK scan, TCP Null, TCP Xmas Tree, TCP FIN Scan
- چگونه میتوان عمل Port scanning را انجام داد؟
در تمام مطالبی که تا اين مرحله گفتهام سعی کردهام که فقط از ابزارهای موجود در ويندوز استفاده کنم و هيچ ابزار ديگری بهکار نبرم، اما در مبحث پورت اسکنينگ چون هيچ ابزاری در ويندوز برای اين کار نيست، بهناچار بايد يک سری برنامه را از اينترنت داونلود کنيد. (توجه داشته باشيد که فعلا حرفی از لينوکس نزدهام و سعی میکنم فعلا هيچ بحثی را در مورد آن مطرح نکنم)
برای Port Scanning میتوان از ابزارهای مختلفی استفاده کرد که اکثرا برای لينوکس طراحی شدهاند، اما مهمترين پورت اسکنرها برای ويندوز عبارتند از:
۱- نرمافزار NMapWin v1.3.0 :
نسخه گرافيکی و مخصوص ويندوز برای nmap است (nmap در لينوکس استفاده میشود). nmap از کاملترين ابزارهايی است که علاوه بر توانايی انواع پورت اسکنينگها، میتواند کارهای بسياری چون تشخيص سيستمعامل سرور و ... را انجام دهد. اين ابزار را بعدا توضيح خواهم داد ولی فعلا برای کار ما بيش از حد کامله ;-)
۲- NetScanTools Pro 2000 :
اين هم از بهترينهاست ولی چون پولی است به جای داونلود بايد در CD هايی که در بازار هست پيدايش کنيد.
۳- WinScan :
برای اسکن کردن TCP (ونه UDP) میتوانيد از آن استفاده کنيد. من زياد ازش خوشم نيومد.
۴- ipEye v1.2 :
من در این درس از اين نرمافزار استفاده خواهم کرد، برای داونلود آن میتوانيد به سايت http://www.ntsecurity.nu/ مراجعه کنيد يا مستقيما با کليک روی اين لينک آن را داونلود کنيد. لازم است بگويم که اين نرمافزار فقط در ويندوز ۲۰۰۰ و xp کار میکند و نيز در يک بار اجرا فقط يک ip را میتواند تست کند. ضمنا فقط TCP را تست میکند.
- چگونه از ipEye برای پورت اسکنينگ استفاده کنيم؟
با تايپ ipEye در command prompt اين نتايج ظاهر میشود:
ipEye 1.2 - (c) 2000-2001, Arne Vidstrom (arne.vidstrom@ntsecurity.nu)
- http://ntsecurity.nu/toolbox/ipeye/
Error: Too few parameters.
Usage:
ipEye <target IP> <scantype> -p <port> [optional parameters]
ipEye <target IP> <scantype> -p <from port> <to port>
[optional parameters]
<scantype> is one of the following:
-syn = SYN scan
-fin = FIN scan
-null = Null scan
-xmas = Xmas scan>br>
(note: FIN, Null and Xmas scans don"t work against Windows systems.
[optional parameters] are selected from the following:
-sip <source IP> = source IP for the scan
-sp <source port> = source port for the scan
-d <delay in ms> = delay between scanned ports in milliseconds
(default set to 750 ms)
فرض کنيد که میخواهيم سايت سازين را از نظر پورتها از پورت ۱ تا ۲۰۰ تست کنيم. اول بايد ip آن را به دست بياوريم که میشود، 63.148.227.65 و حالا به کمک دستور زير آن را بررسی میکنيم:
ipeye 63.148.227.65 -syn -p 1 200دقت کنيد که 63.148.227.65 عدد ip سازين، syn- يعنی SYN SCAN و p 1 200- يعنی تست از پورت ۱ تا ۲۰۰ باشد. البته پارامترهای ديگری را هم میشود ست کرد که فعلا به درد ما نمیخورد. با اجرای اين دستور به نتايج زير میرسيم:
ipEye 1.2 - (c) 2000-2001, Arne Vidstrom (arne.vidstrom@ntsecurity.nu)
- http://ntsecurity.nu/toolbox/ipeye/
1-20 [drop]
21 [open]
22 [closed or reject]
23-24 [drop]
25 [open]
26-52 [drop]
53 [open]
54-79 [drop]
80 [open]
81-109 [drop]
110 [open]
111-142 [drop]
143 [open]
144-200 [drop]
201-65535 [not scanned]Closed يعنی کامپيوتر در آن طرف هست ولی به پورت گوش نمیدهد، Reject يعنی اينکه يک firewall هست که اجازه اتصال به آن پورت را نمیدهد، Drop يعنی اينکه يک firewall همهچيز را پس میزند و يا اصلا کامپيوتری اونور نيست، Open هم که يعنی باز.
در مورد سازين میبينيد که از بين پورتهای ۱ تا ۲۰۰ ، پورتهای ۲۱، ۲۵، ۵۳، ۸۰، ۱۱۰، ۱۴۳ باز است و میتوان به آنها telnet کرد. دقت کنيد که تا تمام پورتهايی که مشخص شده، تست نشده است، هيچ نتيجهای نشان داده نمیشود و يهکم صبر میخواد.
- تعيين پورتهای باز کامپيوتر خودتان
میخواهيم درباره کامپيوتر خودمان اين اطلاعات را پيدا کنيم. برای اين کار يکی از دستورات زير را به کار میبريم:
netstat -an
netstat -aفرق اين دو دستور در اين است که اولی پورتها را به صورت عددی و دومی به صورت معادل اسمی آن پورت مینويسد. مثلا معادل اسمی پورت 7 ، echo است.
مثلا اگه netstat -an را تايپ کنم، به اطلاعات زير میرسم:
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:7 0.0.0.0:0 LISTENING
TCP 0.0.0.0:9 0.0.0.0:0 LISTENING
TCP 0.0.0.0:13 0.0.0.0:0 LISTENING
TCP 0.0.0.0:17 0.0.0.0:0 LISTENING
TCP 0.0.0.0:19 0.0.0.0:0 LISTENING
TCP 0.0.0.0:21 0.0.0.0:0 LISTENING
TCP 0.0.0.0:25 0.0.0.0:0 LISTENING
TCP 0.0.0.0:53 0.0.0.0:0 LISTENING
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 0.0.0.0:119 0.0.0.0:0 LISTENING
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:143 0.0.0.0:0 LISTENING
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:515 0.0.0.0:0 LISTENING
TCP 0.0.0.0:563 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1026 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1033 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1037 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1040 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1041 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1043 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1755 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1801 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3372 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING
TCP 0.0.0.0:6034 0.0.0.0:0 LISTENING
TCP 0.0.0.0:6666 0.0.0.0:0 LISTENING
TCP 0.0.0.0:7007 0.0.0.0:0 LISTENING
TCP 0.0.0.0:7778 0.0.0.0:0 LISTENING
TCP 0.0.0.0:8181 0.0.0.0:0 LISTENING
TCP 127.0.0.1:1039 0.0.0.0:0 LISTENING
TCP 127.0.0.1:1433 0.0.0.0:0 LISTENING
TCP 127.0.0.1:2103 0.0.0.0:0 LISTENING
TCP 127.0.0.1:2105 0.0.0.0:0 LISTENING
TCP 127.0.0.1:2107 0.0.0.0:0 LISTENING
UDP 0.0.0.0:7 *:*
UDP 0.0.0.0:9 *:*
UDP 0.0.0.0:13 *:*
UDP 0.0.0.0:17 *:*
UDP 0.0.0.0:19 *:*
UDP 0.0.0.0:68 *:*
UDP 0.0.0.0:135 *:*
UDP 0.0.0.0:161 *:*
UDP 0.0.0.0:445 *:*
UDP 0.0.0.0:1030 *:*
UDP 0.0.0.0:1036 *:*
UDP 0.0.0.0:1038 *:*
UDP 0.0.0.0:1042 *:*
UDP 0.0.0.0:1075 *:*
UDP 0.0.0.0:1434 *:*
UDP 0.0.0.0:1645 *:*
UDP 0.0.0.0:1646 *:*
UDP 0.0.0.0:1755 *:*
UDP 0.0.0.0:1812 *:*
UDP 0.0.0.0:1813 *:*
UDP 0.0.0.0:3456 *:*
UDP 0.0.0.0:3527 *:*
UDP 127.0.0.1:53 *:*
UDP 127.0.0.1:1028 *:*
UDP 127.0.0.1:1029 *:*
UDP 127.0.0.1:1035 *:*
UDP 127.0.0.1:1044 *:*
UDP 127.0.0.1:1045 *:*
UDP 127.0.0.1:1100 *:*
من دستور را موقعی اجرا کردم که به اينترنت متصل نبودم. اگر همين کار را در زمان اتصال به اينترنت انجام میدادم، يک سری سطرهای جديد هم اضافه میشد که مربوط به آن اتصال میشد. و نيز دقت کنيد که من سويچ an- را استفاده کردم و پورتها به صورت عددی نمايش داده شده است که همين الان - الساعه - براتون توضيح میدم:
اولين نکتهای که به نظر میرسد، نامی است که برای هر ستون نوشته شده است:
Proto Local Address Foreign Address State- Proto : يعنی پروتکل، که میتواند TCP يا UDP باشد.
- Local Address : نشاندهنده ip کامپيوتر خودمان و شماره پورتهاست. مثلا سطر اول میگويد که ip من 0.0.0.0 است (دقت کنيد که من به اينترنت متصل نيستم) و اولين پورت باز (از نوع TCP با توجه به اول سطر) عدد ۷ است زيرا اين به صورت 0.0.0.0:7 نوشته شده است که قسمت قبل از کاراکتر : ، ip است و بعد از کاراکتر :، پورت است.
- Foreign Address : چون در اين مثال از سويچ a- يا an- استفاده کردهايم، کاربردی ندارد. ولی بعدا خواهيد ديد که اگر از يک سويچ ديگر استفاده کنيم، میتواند مهم باشد.
- State : وضعيت اتصال را نشان میدهد
حالا اگه پورتها را يکی يکی بررسی کنيد، میبينيد که در پروتکل TCP ، پورتهای ۷، ۹، ۱۳، ۱۷، ۱۹، ۲۱ و... باز است و در پروتکل UDP ، پورتهای ۷، ۹، ۱۳، ۱۷، ۱۹، ۶۸ و ... باز است.
** دارالولایه **