جستجو در سایت حرفه آموزان

IP

IP
شماره‌ ايست که به هر کامپيوتر متصل به اينترنت داده می‌شود تا بتوان به‌کمک آن شماره به آن کامپيوترها دسترسی داشت. اين عدد برای کامپيوترهايی که حالت سرور دارند (مثلا سايت‌ها) و نيز کامپيوتر‌های کلاينتی که معمولا به روشی غير از شماره‌گيری (Dial Up) به اينترنت وصل هستند، عددی ثابت و برای ديگران عددی متغير است. مثلا هر بار که شما با شرکت ISP خود تماس گرفته و به اينترنت وصل می‌شويد، عددی جديد به شما نسبت داده می‌شود.
اين عدد يک عدد ۳۲ بيتی (۴ بايتی) است و برای راحتی به‌صورت زير نوشته می‌شود:
xxx.xxx.xxx.xxx که منظور از xxx عددی بين ۰ تا ۲۵۵ است (البته بعضی شماره‌ها قابل استفاده نيست که بعدا علت را توضيح خواهم داد). مثلا ممکن است آدرس شما به صورت 195.219.176.69 باشد. حتی اسم‌هايی مثل www.yahoo.com که برای اتصال استفاده می‌کنيد، در نهايت بايد به يک IP تبديل شود، تا شما سايت ياهو را ببينيد.
در IP معمولا xxx اولی معنای خاصی دارد، که بعدا توضيح می‌دهم... فقط اين را بگويم که اگر به روش Dial Up به اينترنت وصل شويد، معمولا عددی که به عنوان xxx اول می‌گيريد، مابين 192 تا 223 خواهد بود.اين توضيح برای تشخيص کامپيوترهای کلاينت از سرور (حداقل در ايران) بسيار می‌تواند مفيد باشد.
بعد از اتصال به اينترنت برای به دست آوردن IP خود، از دستور IPCONFIG در command prompt استفاده کنيد. (البته يک سری نکات فنی داريم که بعدا می‌گم)
- Port
در ساده ترين تعريف، محلی است که داده‌ها وارد با خارج می‌شوند. در مبحث هک معمولا با پورت‌های نرم‌افزاری سروکار داريم که به هر کدام عددی نسبت می‌دهيم. اين اعداد بين ۱ و ۶۵۵۳۵ هستند. معمولا به يک سری از پورت‌ها کار خاصی را نسبت می‌دهند و بقيه به‌صورت پيش‌فرض برای استفاده شما هستند. پورت‌های که فعال هستند، هرکدام توسط يک نرم‌افزار خاص مديريت می‌شوند. مثلا پورت ۲۵ برای ارسال Email است، بنابراين بايد توسط يک نرم‌افزار اين کار انجام شود و اين نرم‌افزار بر روی پورت ۲۵ منتظر (فال‌گوش) می‌ماند. اينجا ممکن است شخصی از فلان نرم‌افزار و ديگری از بهمان نرم‌افزار استفاده کند ولی به‌هر حال پورت ۲۵ هميشه برای ارسال Email است.
در پايين ليستی از مهمترين پورت‌ها و کاربردشان را می‌بينيد:

Port Num   Service         Why it is phun!
--------   -------         ----------------------------------------
7          echo            Host repearts what you type
9          discard         Dev/null
11         systat          Lots of info on users
13         daytime         Time and date at computers location
15         netstat         Tremendous info on networks
19         chargen         Pours out a stream of ASCII characters.
21         ftp             Transfers files
23         telnet          Where you log in.
25         smpt            Forge email
37         time            Time
39         rlp             Resource location
43         whois           Info on hosts and networks
53         domain          Nameserver
70         gopher          Out-of-date info hunter
79         finger          Lots of info on users
80         http            Web server
110        pop             Incoming email
119        nntp            Usenet news groups -- forge posts, cancels
443        shttp           Another web server
512        biff            Mail notification
513        rlogin          Remote login
           who             Remote who and uptime
514        shell           Remote command, no password used!
           syslog          Remote system logging
520        route           Routing information protocol

از ميان اين پورت‌ها شماره‌های ۷، ۱۵، ۲۱، ۲۳، ۲۵، ۷۹، ۸۰، ۱۱۰و ۱۱۹ فعلا برای ما مهم‌ترند و به‌تدريج با آنها آشنا خواهيد شد.

 

 

پيدا کردن ip يک سايت با دانستن آدرس اينترنتی آن (پيدا کردن ip سرور)

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

۱- در (Internet Explorer (IE آدرس را تايپ کنيد و Enter را فشار دهيد. در قسمت پايين مرورگر يعنی Status Bar پس از چند لحظه برای مدت کوتاهی ip نمايش داده می‌شود و می‌توانيد آنرا يادداشت کنيد. اگر طول اين مدت بسيار کوتاه است می‌توانيد از صفحه عکس بگيريد ( با دکمه Print Screen ) و در يک نرم‌افزار گرافيکی بعد از باز کردن يک صفحه خالی به کمک Ctrl+V آنرا مشاهده کنيد. [ عجب راه احمقانه‌ای ;-)
اگر اين کار را برای www.yahoo.com انجام دهيم:

که همان شماره ip برای www.yahoo.com است.
نکته بسيار مهم اين است که به‌دليل ضريب اشتباه بسيار بالای آن هيچ‌گاه از اين روش استفاده نکنيد. نتايج ممکن است کاملا اشتباه باشد که بعدا ميگم چرا.
۲- دستور ping را در command prompt صادر کنيد:

ping domain

در اين حالت می‌توانم ip آن سايت را ملاحظه کنم. (البته کار اصلی ping يک چيز ديگست و ميشه گفت داريم ازش سوءاستفاده می‌کنيم). مثلا برای پيدا کردن ip سازين می‌نويسم:

ping sazin.com

و جواب می‌شنوم:

Pinging sazin.com [63.148.227.65] with 32 bytes of data:
 
Reply from 63.148.227.65: bytes=32 time=821ms TTL=111
Reply from 63.148.227.65: bytes=32 time=821ms TTL=111
Reply from 63.148.227.65: bytes=32 time=822ms TTL=111
Reply from 63.148.227.65: bytes=32 time=811ms TTL=111
 
Ping statistics for 63.148.227.65:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 811ms, Maximum =  822ms, Average =  818ms

ملاحظه می‌فرماييد که ip سازين 63.148.227.65 است.
اگر دستور ping را به‌جای sazin.com برای www.sazin.com صادر کنيد، جواب همان است. البته برای سايت‌های بزرگ جواب‌های حاصل متفاوت خواهد بود.

۳- روش بعدی و کامل‌ترين روش whois کردن به بعضی سايت‌های خاص است. بعدا اين را کامل‌تر توضيح می‌دم ولی فعلا روشش رو می‌گم. آدرس زير را در مرورگر خود تايپ کنيد:

http://www.samspade.org/t/ipwhois?a=xxxxxx

که به‌جای xxxxxx آدرس مورد نظر را تايپ کنيد. مثلا برای sazin.com يکی از دو آدرس زير را بايد تايپ کرد:

http://www.samspade.org/t/ipwhois?a=sazin.com
http://www.samspade.org/t/ipwhois?a=www.sazin.com

چيزی که در صفحه ظاهر می‌شود به صورت زير است:

whois -h magic 63.148.227.65
sazin.com resolves to 63.148.227.65
 
Trying whois -h whois.arin.net 63.148.227.65
Qwest Communications NET-QWEST-BLKS-2 (NET-63-144-0-0-1)
                                  63.144.0.0 - 63.151.255.255
Neutron Digital Media Corp. QWST-63-148-224 (NET-63-148-224-0-1)
                                  63.148.224.0 - 63.148.231.255
 
# ARIN Whois database, last updated 2002-09-04 19:05
# Enter ? for additional hints on searching ARIN"s Whois database.

که آدرس ip در سطر اول و دوم ذکر شده است.

اگر دو روش آخر را برای سايت بزرگ yahoo انجام دهيم، نتايج زير را می‌بينيم:
--> روش ping :
www.yahoo.com ====> 64.58.76.229
yahoo.com ====> 66.218.71.198
--> روش whois :
...و www.yahoo.com ====> 66.218.71.86
64.58.79.230 و yahoo.com ====> 66.218.71.198

نتايج حاصل گويای آن است که چرا بهتر است از whois استفاده کنيم.


- تقسيم بندی آدرس‌های ip
آدرس‌های ip به ۵ کلاس تقسيم‌بندی می‌شوند که A تا E نام‌ دارند ولی از اين بين سه کلاس اول (يعنی C,B,A) کاربرد عملی دارند که آنها را شرح می‌دهيم:

۱- کلاس A: اگر ip را به‌صورت xxx.yyy.yyy.yyy در نظر بگيريد، اين کلاس تمام ipهايی را شامل می‌شود که xxx بين ۱ تا ۱۲۶ است. اين کلاس ويژه backbone های بزرگ اينترنتی است و در هنگام ثبت domain برای گرفتن ip از آنها استفاده می‌شود. بنابراين اکثر سايت‌ها چنين ipهايی دارند. اين کلاس را 8/ هم می‌گويند.

۲- کلاس B: اين کلاس تمام ipهايی را شامل می‌شود که xxx بين ۱۲۸ و ۱۹۱ است. اين کلاس هم از جمله کلاس‌های پرکاربرد است. اين کلاس را 16/ هم می‌گويند.

۳- کلاس C: اين اين کلاس تمام ipهای را شامل می‌شود که xxx بين ۱۹۲ و ۲۲۳ است. اين کلاس معمولا به ISP هايی که خدمات dial-up ارائه می‌دهند، تعلق می‌گيرد (اين جمله چندان مستند نيست.). بنابراين اگر به‌صورت dial-up به اينترنت متصل شويد، چنين ip می‌گيريد. اين کلاس را 24/ هم می‌گويند.

سوالی که پيش می‌آيد اين است که xxx چرا نه در کلاس A و نه در B، عدد ۱۲۷ را شامل نمی‌شود؟ جواب اين‌ است که ۱۲۷ برای کامپيوتر خودمان رزرو شده است. مثلا 127.0.0.1 معمولا يعنی localhost يعنی خودمان.

- به‌دست آوردن ip خودتان بعد از اتصال به اينترنت
برای اين‌کار راههای متفاوتی وجود دارد:

۱- راحت‌ترين راه استفاده از دستور ipconfig است. من با تايپ کردن آن به نتايج زير رسيدم:

Windows 2014 IP Configuration

PPP adapter neda:

        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 217.66.198.116
        Subnet Mask . . . . . . . . . . . : 255.255.255.255
        Default Gateway . . . . . . . . . : 217.66.198.116

که آدرس ip تان را می‌توانيد در سطر Ip Address ببينيد. (مسئله پروکسی را فعلا ناديده بگيريد)

۲- بعد از اتصال به اينترنت حداقل يک صفحه باز کنيد و بعد دستور netstat -n را در command prompt تايپ کنيد. من با تايپ اين دستور به نتايج زير رسيدم:

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    217.66.198.116:2469    64.58.76.177:80        ESTABLISHED
  TCP    217.66.198.116:2471    66.163.175.130:80      ESTABLISHED
  TCP    217.66.198.116:2473    212.73.194.143:80      ESTABLISHED
  TCP    217.66.198.116:2474    212.73.194.143:80      ESTABLISHED
  TCP    217.66.198.116:2476    212.73.194.136:80      SYN_SENT

ستونی که زير عبارت Local Address قرار دارد، ip من در آن اتصال است. بنابراين ip من در آن اتصال 217.66.198.116 بوده است.


- پيدا کردن ip طرف مقابل هنگام chat با yahoo messenger - اين روش قديمی شده، الان ديگه کار نمی‌کنه
می‌خواهيم درباره يک کلاينت مثلا کسی که مثل شما يک اتصال مثلا dial-up به اينترنت دارد و فرضا دارد با شما chat می‌کند، کسب اطلاعات کرد.
در اين مورد هم اولين نکته‌ای که بايد کشف شود، ip اوست. در اين جلسه می‌خوام بهتون ياد بدم که وقتی با يه نفر از طريق yahoo messenger به صورت pm چت می‌کنيد، چطوری می‌تونيد ip اش رو پيدا کنيد. البته بايد توجه کرد که اين روش گاهی کار نمی‌کند. نيز فرض می‌کنم که فقط با يک نفر داريد چت می‌کنيد.
يکی از دستور‌های زير را تايپ می‌کنيد:

netstat -n
netstat

دستور اولی برای پيدا کردن ip طرف مقابل است و دستور دوم گاه می‌تواند اسم کامپيوتر او را برای شما نشان دهد.
من دستور netstat -n را تايپ کردم و به نتايج زير رسيدم:

Active Connections
 
  Proto  Local Address          Foreign Address        State
  TCP    195.219.176.126:1296   66.163.173.77:5050     ESTABLISHED
  TCP    195.219.176.126:1341   66.218.75.149:80       LAST_ACK
  TCP    195.219.176.126:1325   212.234.112.74:5101    SYN_SENT

اولين کاری که می‌کنيد اين است که سطری را پيدا می‌کنيد که در Local Address يا Foreign Address  آن، پورت 5101 داشته باشد. در اين مثال سطر آخر، سطر مورد نظر ماست. زيرا در ستون Foreign Address از سطر آخر، پورت آن 5101 است. البته اگر در ستون Local Address هم بود، فرقی نمی‌کرد. وقتی آن سطر را پيدا کرديد، ip طرف مقابل را از ستون Foreign Address از همان سطر پيدا می‌کنيم. در اين مثال ip طرف مقابل 212.234.112.74 است.
اگر به‌جای netstat -n ، از netstat استفاده می‌کردم، به نتايج زير می‌رسيدم:

Active Connections
 
Proto  Local Address          Foreign Address        State
TCP    artawill...:1296   cs55.msg.sc5.yahoo.com:5050  ESTABLISHED
TCP    artawill...:1298   dl3.yahoo.com:http         TIME_WAIT
TCP    artawill...:1325   Majid:5101                 SYN_SENT

ملاحظه می‌فرماييد که همه ip ها به معادل های اسمی تبديل شده‌اند و در مورد همان سطر آخر به جای ip طرف مقابل اسم کامپيوتر فرد را می‌نويسد (البته در حالتی که طرف مقابل dial-up نباشد، قضيه فرق می‌کند.)

حالا فرض کنيد که يک pm ديگر هم اضافه می‌شود. و دوباره دستور netstat -n را تايپ می‌کنم. حالا نتايج زير را می‌بينم:

Active Connections
 
  Proto  Local Address          Foreign Address        State
  TCP    195.219.176.126:1296   66.163.173.77:5050     ESTABLISHED
  TCP    195.219.176.126:1344   64.58.77.197:80        ESTABLISHED
  TCP    195.219.176.126:5101   212.234.112.74:3735    ESTABLISHED
  TCP    195.219.176.126:5101   194.225.184.95:1460    ESTABLISHED

الان دوتا سطر دارم که دارای پورت 5101 باشد، و چون می‌دانم که 212.234.112.74 مربوط به نفر قبلی بود، پس 194.225.184.95 مربوط به pm دومی است.

 

 

انواع Scanning

دو نوع معمول Scanning وجود دارد:

۱- Port Scanning :
در اين حالت ما IP يا IPهای مورد نظر را انتخاب کرده‌ايم و حالا می‌خواهيم بدانيم که کدام پورت‌ها روی آن کامپيوترها باز است.

۲- IP Scanning :
در اين اسکنينگ می‌خواهيم بدانيم که از بين يک مجموعه ip ، کدام‌ها up و کدام‌ها down هستند. يعنی کدام ip ها الان قابل دسترسی هستند (يعنی به يه کامپيوتر در اينترنت نسبت داده شده است! ) فرض کنيد که شما يک سری IP مربوط به يک ISP خاص را داريد و می‌خواهيد بدانيد که در اين لحظه کدام‌ها فعال (up) هستند تا فقط آنها را بررسی کنيد و نه‌ همه را. ( اين کار معمولا موقعی پيش می‌آيد که قرار است کلاينت هک کنيد و مهم نيست چه کسی باشد )
- IP Scanning

IP Scanning به روش‌های مختلف می‌تواند صورت بگيرد:

۱- در ساده‌ترين نوع آن، يک پکت از نوع ICMP ECHO به يک ip خاص می‌فرستيم و اگر يک ICMP ECHO REPLAY به سمت ما برگشت، در اين صورت آن ip به‌اصطلاح up است. برای اين‌کار می‌توان از ابزارهای زير استفاده کرد:

الف) استفاده از ping موجود در سيستم‌عامل‌های ويندوز و يونيکس (لينوکس). به صورت زير:

ping xxx.xxx.xxx.xxx

مثلا برای 63.148.227.65 می‌نويسيم:

ping 63.148.227.65

اگر در ويندوز اين دستور را تايپ کنيد و به جواب زير برسيد، يعنی آن ip فعال است:

Reply from 63.148.227.65: bytes=32 time=1402ms TTL=105
Reply from 63.148.227.65: bytes=32 time=941ms TTL=105
Reply from 63.148.227.65: bytes=32 time=1402ms TTL=105
Reply from 63.148.227.65: bytes=32 time=941ms TTL=105

و اگه به پيغام زير رسيديد، يعنی فعال نيست:

Request timed out.
Request timed out.
Request timed out.
Request timed out.

همان طور که می‌بينيد با اين دستور در يک لحظه فقط می‌شود، يک ip را تست کرد و اين کار ما را کند می‌کند.
ب) در سيستم‌عامل لينوکس می‌شود از gping استفاده کرد که يک مجموعه ip را به سرعت تست کرد.
ج) در سيستم عامل ويندوز می‌شود از Pinger استفاده کرد. برای داون‌لود اين نرم‌افزار اينجا را کليک کنيد. Pinger يک نرم‌افزار گرافيکی است و کار ping کردن به يک مجموعه ip را ساده می‌کند.

 


در قسمت From و To مشخص می‌کنيم که از کدام ip تا کدام ip را می‌خواهيم ping کنيم. با فشار دکمه Ping ليست ip هايی که up هستند، نمايش داده می‌شود. فرض کنيد که ip فعلی شما 195.219.176.88 باشد و بخواهيم بدانيم در کلاس C مربوط به ما چه ip های ديگری up هستند. در اين حالت بايد 195.219.176.1 تا 195.219.176.254 را ping کنيم.

د) حالا می‌خواهيم همين کار را با NMapWin انجام دهيم. برای اينکار بايد در برگه Scan، قسمت Mode را در حالت Ping Sweep قرار دهيد. برگه Discover بايد درحالت ICMP Ping باشد و در قسمت Options بايد گزينه OS Detection را از حالت انتخاب شده خارج کنيد. بعد بايد ليست ip ها را تنظيم کنيم، برای اينکار بايد در قسمت Host ، ليست ip ها را وارد می‌کنيم. مثلا اگر بخواهيم 195.219.176.1 تا 195.219.176.254 را تست کنيم بايد بنويسيم: 24/195.219.176.0 که اين 24/ يعنی کلاس C که از ۱ تا ۲۵۵ است. و بعد دکمه Scan را فشار دهيم.

Host   (195.219.176.0) seems to be a subnet broadcast address ...
RTTVAR has grown to over 2.3 seconds, decreasing to 2.0
Host  (195.219.176.1) appears to be up.
Host  (195.219.176.3) appears to be up.
Host  (195.219.176.5) appears to be up.
Host  (195.219.176.7) appears to be up.
Host  (195.219.176.9) appears to be up.
Host  (195.219.176.11) appears to be up.
Host  (195.219.176.12) appears to be up.
Host  (195.219.176.13) appears to be up.
Host  (195.219.176.14) appears to be up.
Host H-GVSVY95KXINRJ (195.219.176.15) appears to be up.
Host  (195.219.176.16) appears to be up.
Host  (195.219.176.17) appears to be up.
Host  (195.219.176.18) appears to be up.
Host  (195.219.176.19) appears to be up.
Host KERYASBA (195.219.176.20) appears to be up.
Host MARYAM (195.219.176.22) appears to be up.
Host  (195.219.176.23) appears to be up.
Host  (195.219.176.24) appears to be up.
Host FFX-L2XA0ZM87Q3 (195.219.176.25) appears to be up.
Host  (195.219.176.26) appears to be up.
Host  (195.219.176.27) appears to be up.
Host  (195.219.176.28) appears to be up.
,...

ملاحظه می‌فرماييد که در بعضی موارد اسم کامپيوتر مربوط به ip هم ذکر شده است.

۲- در تمام روش‌های بالا، از پکت‌های ICMP برای پينگ استفاده کرديم. در بعضی کامپيوتر‌ها ممکن است پکت‌های ICMP توسط فايروال يا روتر بلاک شوند. در اين حالت بايد از پورت اسکنينگ برای IP اسکنينگ استفاده کرد! برای اين‌کار می‌توان از ابزارهای زير استفاده کرد:

الف) در سيستم عامل يونيکس (لينوکس) می‌توان از ابزارهايی مثل hping و icmpenum و ... استفاده کرد. که فعلا بحث ما نيستند.

ب) در سيستم‌عامل ويندوز، بازهم از NMapWin استفاده می‌کنيم. ولی طوری Port Scanning می‌کنيم که نياز ما را برای IP Scanning جواب دهد. اين‌کار توسط يک سری پورت‌های عمومی صورت می‌گيرد که در اکثر کامپيوتر‌ها باز هستند مثل ۸۰ ، ۲۵ و...
برای اين‌کار در برگه Scan ، قسمت Mode را در حالت Connect تنظيم می‌کنيم و در قسمت Scan Options ، گزينه Port Range را مثلا برای عدد 80 تنظيم می‌کنيم. Discover را در حالت TCP Ping قرار می‌دهيم. و در برگه Option ، گزينه OS Detection را از حالت انتخاب شده خارج می‌کنيم. ليست ip ها را ست کرده و اسکن را شروع می‌کنيم.

 

چگونه يک ارتباط 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 :

من در این درس از اين نرم‌افزار استفاده خواهم کرد، برای داون‌لود آن می‌توانيد به سايت www.ntsecurity.nu مراجعه کنيد يا مستقيما با کليک روی اين لينک آن را داون‌لود کنيد. لازم است بگويم که اين نرم‌افزار فقط در ويندوز ۲۰۰۰ و xp کار می‌کند و نيز در يک بار اجرا فقط يک ip را می‌تواند تست کند. ضمنا فقط TCP را تست می‌کند.


- چگونه از ipEye برای پورت اسکنينگ استفاده کنيم؟

با تايپ ipEye در command prompt اين نتايج ظاهر می‌شود:

ipEye 1.2 - (c) 2000-2001, Arne Vidstrom ( این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید )
          - 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 ( این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید )
          - 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 ، پورت‌های ۷، ۹، ۱۳، ۱۷، ۱۹، ۶۸ و ... باز است.

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

ارسال نظر

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


کد امنیتی
بارگزاری مجدد

Scroll to Top