ping دستوري است که مشخص ميکند که آيا يک کامپيوتر خاص که ما ip يا domain آن را ميدانيم، روشن و فعال (Active) هست يا نه. و اينکه اگر فعال باشد مدت زمان رسيدن بستههاي tcp/ip از آن کامپيوتر به کامپيوتر ما چقدر است. کاربرد اين دستور به صورت زير است:
ping ip-or-domain که به جاي ip-or-domain بايد شماره ip و يا domain آن(اگر داشته باشد) را ميگذاريم.
مثلا ping sazin.com را در command prompt تايپ کردم و به نتايج زير رسيدم :
Pinging sazin.com [63.148.227.65] with 32 bytes of data: Reply from 63.148.227.65: bytes=32 time=1402ms TTL=105Reply from 63.148.227.65: bytes=32 time=941ms TTL=105Reply from 63.148.227.65: bytes=32 time=981ms TTL=105Reply from 63.148.227.65: bytes=32 time=851ms TTL=105 Ping statistics for 63.148.227.65: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: Minimum = 851ms, Maximum = 1402ms, Average = 1043ms اين نتايج نشان ميدهد که sazin.com فعال است.
حالا به کامپيوتري با ip شماره 63.148.227.65 (که همان sazin.com است)، ping ميکنم. نتايج همان است فقط با تغييراتي در سطر اول. (البته time که معناي مدت زمان رسيدن پکت را ميدهد، با توجه به ترافيک شبکه، کم و زياد خواهد شد). براي ping کردن به اين ip ، دستور 63.148.227.65 ping را صادر ميکنم :
Pinging 63.148.227.65 with 32 bytes of data: Reply from 63.148.227.65: bytes=32 time=861ms TTL=105Reply from 63.148.227.65: bytes=32 time=852ms TTL=105Reply from 63.148.227.65: bytes=32 time=851ms TTL=105Reply from 63.148.227.65: bytes=32 time=881ms TTL=105 Ping statistics for 63.148.227.65: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: Minimum = 851ms, Maximum = 881ms, Average = 861ms فرض کنيد که به يک ip که فعال نيست، ping کنيم:
Pinging 217.66.196.1 with 32 bytes of data: Request timed out.Request timed out.Request timed out.Request timed out. Ping statistics for 217.66.196.1: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms که نشان ميدهد که آن ip در آن لحظه فعال نيست.
البته تمام مطالبي که در بالا ذکر شد، در حالتي است که مستقيما به اينترنت وصل شدهايد و يا اگر از طريق شبکه محلي به اينترنت وصل هستيد، شبکه شما به درستي پيکربندي شده باشد. اصولا ping يکي از بهترين دستورات براي پيدا کردن ايراد در شبکه است.
Telnet چيست؟
- چگونه به يک پورت Telnet کنيم؟
براي اينکه عملکرد يک پورت براي شما روشن شود، بايد به آن پورت Telnet کنيد. (البته معمولا تعدادي از پورتهايي را که ممکن است اطلاعاتي مهم را در اختيار هکرها قرار دهند مثل پورت 79 معمولا بسته است و ارتباط با آنها شايد برقرار نشود.) براي telnet کردن در command prompt دستور زير را تايپ کنيد:
telnet hostname portnum
در اين دستور بهجاي hostname شماره ip و يا نام سايت را وارد ميکنيد و بهجاي portnum شماره پورت و يا معادل آن از جدول. مثلا براي تلنت کردن به پورت 13 که ساعت و تاريخ را بهدست ميدهد در کامپيوتري به اسم www.iums.ac.ir مينويسيد:
telnet iums.ac.ir 13 telnet iums.ac.ir daytime
هر دو اين دستورات معادل هم هستند.
تلنت کردن معمولا اولين کاري است که يک هکر براي هک کردن يک سايت انجام ميدهد، زيرا بعضي از پورتها در صورت بسته نبودن روي آن سرور، معمولا حاوي اطلاعات بسيار مهمي هستند.
همين الان شروع کنيد و مثل يک هکر واقعي به کامپبوترهاي مختلف و پورتهاي گوناگون تلنت کنيد.
- ادامه بحث telnet
telnet هم جزو مواردي است که در footprinting مورد استفاده قرار ميگيرد. کاربرد آن در حالتيست که بخواهيم بدانيم که روي فلان پورت چه برنامهاي فالگوشه و version آن چنده. به اين صورت که به يک پورت خاص (که ميدانيم روي آن سرور باز است) تلنت ميکنيم و بعد ميبينيم که نتايجي ظاهر ميشود که نشاندهنده اطلاعاتي است که بهکار ميرود. گاهي با مکثي طولاني مواجه ميشويم و هيچ چيزي نمايش داده نميشود، در اين حالت يکي دوبار , Ctrl+Z , Ctrl+D , Ctrl+C , Ctrl+break را ميزنيم و خارج ميشويم. در مثال پايين جمعبندي مواردي که تا حالا از footprinting گفتهام را ميآورم.
- جمعبندي مطالب گفته شده و بررسي يک سايت
فرض کنيد ميخواهيم در مورد www.iums.ac.ir اطلاعاتي کسب کنيم :
? اول به سايت پينگ ميکنم و ip آن را بهدست ميآورم: 194.225.184.15
? به کمک ip که بهدست آورديم، به کمک يک پورت اسکنر پورتها را بررسي ميکنيم و ميبينيم که پورتهايي مثل 21، 25، 42، 53، 80، 110، 119، 139، 143 و ... باز است.
? چون domain به ir ختم ميشود، براي whois کردن از whois.nic.ir استفاده ميکنم و Name Server آن را به دست ميآورم که 194.225.184.20 است.
? به کمک اين Name Server ، يک nslookup ميکنم و به نتايج زير ميرسم:
iums.ac.ir. SOA sina.i........0 345600) iums.ac.ir. NS sina.iums.ac.ir iums.ac.ir. NS ns1.nic.ir iums.ac.ir. MX 10 sina.iums.ac.ir smtp.iums.ac.ir. A 195.146.34.181 sina.iums.ac.ir. HINFO Sun-SuperSPARC5/75 UNIX-Solaris-2.6 sina.iums.ac.ir. MX 10 sina.iums.ac.ir sina.iums.ac.ir. A 194.225.184.20 sina.iums.ac.ir. A 195.146.34.181 sun.iums.ac.ir. CNAME sina.iums.ac.ir cisco.iums.ac.ir. CNAME router.iums.ac.ir webmail.iums.ac.ir. A 195.146.34.181 linux.iums.ac.ir. A 194.225.184.19 linux.iums.ac.ir. HINFO Intel-Xeon/800 RedHat-Linux-7.2 mta.iums.ac.ir. A 195.146.34.181 pop3.iums.ac.ir. CNAME sina.iums.ac.ir localhost.iums.ac.ir. A 127.0.0.1 proxy.iums.ac.ir. CNAME arvand.iums.ac.ir www.iums.ac.ir. A 195.146.34.180 atrak.iums.ac.ir. A 194.225.184.14 ns1.iums.ac.ir. CNAME sina.iums.ac.ir arvand.iums.ac.ir. A 194.225.184.13 router.iums.ac.ir. A 194.225.184.1 router.iums.ac.ir. HINFO Cisco3640/Access-Server IOS-IP-12.0 iums.ac.ir. SOA sina.iu.......3456000 345600)
تک تک سطرهاي اين نتايج کاربرد دارد که خواهيم رسيد. الان فقط در مورد HIFNO صحبت ميکنم که براي مشخص تر بودن در بالا به صورت کمي فرورفتهتر نوشتم. مثلا:
sina.iums.ac.ir. HINFO Sun-SuperSPARC5/75 UNIX-Solaris-2.6
HIFNO براي تعيين نوع کامپيوتر و سيستمعامل سرور اهميت دارد. در اين سطر مشخص است که sina.iums.ac.ir از Sun-SuperSPARC5/75 UNIX-Solaris-2.6 استفاده ميکند.
? چون پورتهاي باز را هم توسط پورت اسکنر به دست آوردهام به آنها تلنت ميکنم با دستور:
telnet www.iums.ac.ir portnum
نتايج حاصل از بعضي را ميبينيد:
25 :
... master.iums.ac.ir Microsoft ESMTP MAIL Service, Version: 5.0.2195.4905 ready at 220
پس پورت 25 (smtp) در آن کامپيوتر از Microsoft ESMTP MAIL Service, Version: 5.0.2195.4905 استفاده ميکند.
110 :
.OK Microsoft Exchange 2000 POP3 server version 6.0.5762.3 (master.iums.ac.ir) ready+
پس پورت 110 (pop3) در آن کامپيوتر از Microsoft Exchange 2000 POP3 server version 6.0.5762.3 استفاده ميکند.
119 :NNTP Service 5.00.0984 Version: 5.0.2195.2966 Posting Allowed
عبور از پرت 80
پورت 80 چيست؟
پورت 80 يکي از مهمترين پورتهاست. دنياي وب (صفحات اينترنتي) بر اساس همين پورت کار ميکنه. توضيح اينکه وقتي به يه سايت وصل ميشيم و صفحه وب را درخواست ميکنيم، در واقع مرورگر اينترنتي به پورت 80 اون کامپيوتر وصل ميشه و اطلاعات رو ميگيره (البته بعد از گرفتن اطلاعات اون رو تفسير ميکنه و به صورت يه صفحه نشون ميده - دقت کنيد که اطلاعات در واقع به صورت يک سري تگ HTML است ).
- با پورت 80 صحبت کنيم
حالا ما ميخواهيم با پورت 80 يک کامپيوتر صحبت کنيم ولي به کمک telnet و nc.
اول بايد يه connection (اتصال) با پورت 80 برقرار کنيم (مثلا براي سايت hotmail.com بايد بنويسم):
telnet www.hotmail.com 80nc -v www.hotmail.com 80
پس اول بايد يکي از دستورات بالا را استفاده کنيم. من هميشه توصيهام استفاده از nc بوده و خواهد بود.
حالا بايد شروع به صحبت با پورت 80 کنيم. من فعلا دو تا جمله براتون ميگم و بقيهاش بمونه واسه بعد. دقت کنيد که موقع کار با پورت 80 با تلنت (نه nc) دستوراتي که ما مينويسيم، نمايش داده نميشود ولي کار ميکنه.
1- اولين جمله اينه: GET / HTTP/1.0 و بعدش دوتا Enter
به فاصلهها دقت کنيد. دو طرف / ي که بعد از GET است، فاصله وجود دارد. اين جمله به پورت 80 ميگه که هرچي در header داره، نشون بده. و جواب ميشنوم:
HTTP/1.0 302 Moved TemporarilyServer: Microsoft-IIS/5.0Date: Thu, 05 Dec 2002 12:02:51 GMTLocation: http://lc2.law5.hotmail.passport.com/cgi-bin/loginX-Cache: MISS from cache5.neda.net.irConnection: close
2- دومين جمله اينه: GET / what/ever و بعدش دوتا Enter
به فاصلهها دقت کنيد. اين دستور باعث ميشه که هر چي داره، رو کنه.
البته توجه کنيد که ما مسير را مشخص نکرديم. اين حالت که بدون مسير است خيلي وقتها کار نميکنه (مثل همين مثال !!)
گاهي پيش ميآد که يک سري دستورات خاص را هميشه بايد پشت سرهم به يه پورت خاص بفرستيم و بخواهيم در وقت صرفهجويي کنيم. مثلا همين جمله GET / HTTP/1.0 و دو Enter پشت سرهم که هميشه استفاده ميکنيم. در اين موارد ميتوان اين دستورات را در يک فايل تايپ کرد (همراه با Enter ها که بايد موقع نوشتن حتما بزنيد) و بعد مثلا با نام ali.txt ذخيره کنيد و بعد يکي از دستورات زير را بنويسيم:
nc -v www.far30.com 80 < ali.txttype ali.txt | nc -v www.far30.com 80
که همان کارهاي بالايي را انجام ميده.
- حالا ميخوام مسير رو مشخص کن
مثلا فرض کنيد که ميخوام فايلي به اسم index.html را از مسير startup در سايتي به اسم www.site.com داونلود کنيم. اول يه nc ميکنيم به سايت. بعد مينويسيم:
GET /startup/index.html HTTP/1.0
بعد دو تا Enter ميزنيم.
اين مثال نشون ميده که چطوري مسير رو ميشه مشخص کرد. همين کار رو ميتونيم براي فايلهايي مثل فايلهاي گرافيکي و ... انجام بديم و حتي ميتونيد اطلاعاتي که ميرسه رو در يک فايل ذخيره کنيد. براي اينکار مينويسيد:
nc -v www.site.com 80 > index.html
(اين کاري که کرديم با موردي که در بالا نوشتيم فرق ميکنه! در بالا دستورات GET رو تو يه فايل مينوشتيم و ميفرستاديم که اجرا بشه ولي الان داريم نتايجي که بر ميگرده رو در يک فايل ذخيره ميکنيم!) ميشه اين دوتا رو ترکيب کرد مثلا نوشت:
nc -v www.site.com 80 < dastoorat.txt > index.html
Pasted from <http://nikipedia.blogfa.com/post-235.aspx>
تصاوير زيبا و مرتبط با اين مقاله