شبکه , هک و امنیت اطلاعات

امام سجاد(ع):آن کس که بر دوستی ما در دوران غیبت قائم ما پایدار بماند، خداوند به او پاداش هزار شهید از شهیدان بدر واحد بدهد

 
ping & Telnet & Hack
نویسنده : مصطفی نورزاده - ساعت ۱:٢۸ ‎ق.ظ روز شنبه ۱۳٩۱/۱٠/٩
 

ping چیست ؟

ping دستوری است که مشخص میکند که آیا یک کامپیوتر خاص که ما ip یا domain آن را میدانیم، روشن و فعال (Active) هست یا نه. و اینکه اگر فعال باشد مدت زمان رسیدن بستههای tcp/ip از آن کامپیوتر به کامپیوتر ما چقدر است. کاربرد این دستور به صورت زیر است:


ping ip-or-domain که به جای ip-or-domain باید شماره ip و یا domain آن(اگر داشته باشد) را میگذاریم.
مثلا ping yahoo.com را در command prompt تایپ کردم و به نتایج زیر رسیدم :

Pinging yahoo.com [63.148.227.65] with 32 bytes of data:

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=981ms TTL=105

Reply 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

این نتایج نشان میدهد که yahoo.com فعال است.
حالا به کامپیوتری با ip شماره ۶۳٫۱۴۸٫۲۲۷٫۶۵ (که همان yahoo.com است)، ping میکنم. نتایج همان است فقط با تغییراتی در سطر اول. (البته time که معنای مدت زمان رسیدن پکت را میدهد، با توجه به ترافیک شبکه، کم و زیاد خواهد شد). برای ping کردن به این ip ، دستور ۶۳٫۱۴۸٫۲۲۷٫۶۵ ping را صادر میکنم :
Pinging 63.148.227.65 with 32 bytes of data:

Reply from 63.148.227.65

bytes=32 time=861ms TTL=105

Reply from 63.148.227.65:bytes=32 time=852ms TTL=105

Reply from 63.148.227.65:bytes=32 time=851ms TTL=105

Reply 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 کنید. (البته معمولا تعدادی از پورتهایی را که ممکن است اطلاعاتی مهم را در اختیار هکرها قرار دهند مثل پورت ۷۹ معمولا بسته است و ارتباط با آنها شاید برقرار نشود.) برای telnet کردن در command prompt دستور زیر را تایپ کنید:
telnet hostname portnum
در این دستور بهجای hostname شماره ip و یا نام سایت را وارد میکنید و بهجای portnum شماره پورت و یا معادل آن از جدول. مثلا برای تلنت کردن به پورت ۱۳ که ساعت و تاریخ را بهدست میدهد در کامپیوتری به اسم Iran University of Medical Sciences- دانشگاه علوم پزشکی ایران – Home مینویسید:


telnet iums.ac.ir 13

telnet iums.ac.ir daytime
هر دو این دستورات معادل هم هستند.
تلنت کردن معمولا اولین کاری است که یک هکر برای هک کردن یک سایت انجام میدهد، زیرا بعضی از پورتها در صورت بسته نبودن روی آن سرور، معمولا حاوی اطلاعات بسیار مهمی هستند.

همین الان شروع کنید و مثل یک هکر واقعی به کامپبوترهای مختلف و پورتهای گوناگون تلنت کنید.
–telnet هم جزو مواردی است که در footprinting مورد استفاده قرار میگیرد. کاربرد آن در حالتیست که بخواهیم بدانیم که روی فلان پورت چه برنامهای فالگوشه و version آن چنده. به این صورت که به یک پورت خاص (که میدانیم روی آن سرور باز است) تلنت میکنیم و بعد میبینیم که نتایجی ظاهر میشود که نشاندهنده اطلاعاتی است که بهکار میرود. گاهی با مکثی طولانی مواجه میشویم و هیچ چیزی نمایش داده نمیشود، در این حالت یکی دوبار , Ctrl+Z , Ctrl+D , Ctrl+C , Ctrl+break را میزنیم و خارج میشویم. در مثال پایین جمعبندی مواردی که تا حالا از footprinting گفتهام را میآورم.
– جمعبندی مطالب گفته شده و بررسی یک سایت
فرض کنید میخواهیم در مورد Iran University of Medical Sciences- دانشگاه علوم پزشکی ایران – Home اطلاعاتی کسب کنیم :
◊ اول به سایت پینگ میکنم و ip آن را بهدست میآورم: ۱۹۴٫۲۲۵٫۱۸۴٫۱۵
◊ به کمک ip که بهدست آوردیم، به کمک یک پورت اسکنر پورتها را بررسی میکنیم و میبینیم که پورتهایی مثل ۲۱، ۲۵، ۴۲، ۵۳، ۸۰، ۱۱۰، ۱۱۹، ۱۳۹، ۱۴۳ و … باز است.
◊ چون domain به ir ختم میشود، برای whois کردن از whois.nic.ir استفاده میکنم و Name Server آن را به دست می آورم که ۱۹۴٫۲۲۵٫۱۸۴٫۲۰ است.
◊ به کمک این Name Server ، یک nslookup میکنم و به نتایج زیر میرسم:


iums.ac.ir. SOA sina.i……..۰ ۳۴۵۶۰۰) 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 Iran University of Medical Sciences- دانشگاه علوم پزشکی ایران – Home. 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…….۳۴۵۶۰۰۰ ۳۴۵۶۰۰)


تک تک سطرهای این نتایج کاربرد دارد که خواهیم رسید. الان فقط در مورد 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 Iran University of Medical Sciences- دانشگاه علوم پزشکی ایران – Home portnum
نتایج حاصل از بعضی را میبینید:
۲۵ :
… master.iums.ac.ir Microsoft ESMTP MAIL Service, Version: 5.0.2195.4905 ready at 220
پس پورت ۲۵ (smtp) در آن کامپیوتر از Microsoft ESMTP MAIL Service, Version: 5.0.2195.4905 استفاده میکند.
۱۱۰ :
.OK Microsoft Exchange 2000 POP3 server version 6.0.5762.3 (master.iums.ac.ir) ready+
پس پورت ۱۱۰ (pop3) در آن کامپیوتر از Microsoft Exchange 2000 POP3 server version 6.0.5762.3 استفاده میکند.
۱۱۹:NNTP Service 5.00.0984 Version: 5.0.2195.2966 Posting Allowed


عبور از پورت 80
پورت ۸۰ چیست؟
پورت ۸۰ یکی از مهمترین پورتهاست. دنیای وب (صفحات اینترنتی) بر اساس همین پورت کار میکنه. توضیح اینکه وقتی به یه سایت وصل میشیم و صفحه وب را درخواست میکنیم، در واقع مرورگر اینترنتی به پورت ۸۰ اون کامپیوتر وصل میشه و اطلاعات رو میگیره (البته بعد از گرفتن اطلاعات اون رو تفسیر میکنه و به صورت یه صفحه نشون میده – دقت کنید که اطلاعات در واقع به صورت یک سری تگ HTML است ).
- با پورت ۸۰ صحبت کنیم
حالا ما میخواهیم با پورت ۸۰ یک کامپیوتر صحبت کنیم ولی به کمک telnet و nc.
اول باید یه connection (اتصال) با پورت ۸۰ برقرار کنیم (مثلا برای سایت hotmail.com باید بنویسم):
telnet Sign In 80

nc -v Sign In 80
پس اول باید یکی از دستورات بالا را استفاده کنیم. من همیشه توصیهام استفاده از nc بوده و خواهد بود.
حالا باید شروع به صحبت با پورت ۸۰ کنیم. من فعلا دو تا جمله براتون میگم و بقیهاش بمونه واسه بعد. دقت کنید که موقع کار با پورت ۸۰ با تلنت (نه nc) دستوراتی که ما مینویسیم، نمایش داده نمیشود ولی کار میکنه.


۱- اولین جمله اینه: GET / HTTP/1.0 و بعدش دوتا Enter
به فاصلهها دقت کنید. دو طرف / ی که بعد از GET است، فاصله وجود دارد. این جمله به پورت ۸۰ میگه که هرچی در 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…/loginX-Cache: MISS from cache5.neda.net.irConnection: close


۲- دومین جمله اینه: GET / what/ever و بعدش دوتا Enter
به فاصلهها دقت کنید. این دستور باعث میشه که هر چی داره، رو کنه.
البته توجه کنید که ما مسیر را مشخص نکردیم. این حالت که بدون مسیر است خیلی وقتها کار نمیکنه (مثل همین مثال !!)
گاهی پیش میآد که یک سری دستورات خاص را همیشه باید پشت سرهم به یه پورت خاص بفرستیم و بخواهیم در وقت صرفهجویی کنیم. مثلا همین جمله GET / HTTP/1.0 و دو Enter پشت سرهم که همیشه استفاده میکنیم. در این موارد میتوان این دستورات را در یک فایل تایپ کرد (همراه با Enter ها که باید موقع نوشتن حتما بزنید) و بعد مثلا با نام ali.txt ذخیره کنید و بعد یکی از دستورات زیر را بنویسیم:
nc -v http://www.far30.com 80 < ali.txttype ali.txt | nc -v http://www.far30.com 80 که همان کارهای بالایی را انجام میده. – حالا میخوام مسیر رو مشخص کنم مثلا فرض کنید که میخوام فایلی به اسم index.html را از مسیر startup در سایتی به اسم http://www.site.com داونلود کنیم. اول یه nc میکنیم به سایت. بعد مینویسیم: GET /startup/index.html HTTP/1.0 بعد دو تا Enter میزنیم. این مثال نشون میده که چطوری مسیر رو میشه مشخص کرد. همین کار رو میتونیم برای فایلهایی مثل فایلهای گرافیکی و … انجام بدیم و حتی میتونید اطلاعاتی که میرسه رو در یک فایل ذخیره کنید. برای اینکار مینویسید: nc -v http://www.site.com 80 > index.html
(این کاری که کردیم با موردی که در بالا نوشتیم فرق میکنه! در بالا دستورات GET رو تو یه فایل مینوشتیم و میفرستادیم که اجرا بشه ولی الان داریم نتایجی که بر میگرده رو در یک فایل ذخیره میکنیم!) میشه این دوتا رو ترکیب کرد مثلا نوشت:


nc -v http://www.site.com 80 < dastoorat.txt > index.html