کرها . کراکرها . واکرها و بوترها: Hackerبه معنای نفوذگر . به شخصی که هدف اصلی او نشان دادن قدرت خود بهکامپیوتر و سایر ماشین ها است وارد شدن به سیستم و یا شکست دادن محاسبات , کنجکاویدر اطلاعات محرمانه از خصوصیات یک هکر است . هکر یک برنامه نویس کنجکاو است که صدمهای وارد نمی کند و حتی باعث تحکیم انتقالات می شود . هکر ها به چند گروه تقصیم میشوند :
1-گروه نفوذگران کلاه سفید ( White Hat Hacker Group ) این گروه از هکرها درواقع همان دانشجویان و اساتید هستند که هدفشان نشان دادن ضعف سیستم های امنیتی شبکههای کامپیوتری می باشند این گروه به نام هکرهای خوب معروف هستند . این دسته نه تنهامضر نیستند بلکه در تحکیم دایواره حفاظتی شبکه ها نقش اساسی دارند کلاه سفید هاداری خلاقیت عجیبی هستند معمولا هر بار با روش جدیدی از دیواره امنیتی عبور می کنند .
2-گروه نفوذگران کلاه سیاه ( Black Hat Hacker Group ) نام دیگر این گروهCracker است. کراکرها خرابکار ترین نوع هکرها هستند . این گروه به طور کاملا پنهانیاقدام به عملیات خراب کارانه می کنند . کلاه سیاه ها اولین چیزی که به فکرشان میرسد نفوذ به سیستم قربانی است کلاه سیاه ها همه ویروس نویسند و با ارسال ویروسنوشته شده خود بر روی سیستم قربانی به آن سیستم نفوذ پیدا می کند درواقع یک جاسوسبر روی سیستم قربانی می فرستند . همیشه هویت اصلی این گروه پنهان است.
3 - گروه نفوذگران کلاه خاکستری ( Gray Hat Hacker Group ) نام دیگر این گروهWhacker می باشد هدف اصلی واکر استفاده از اطلاعات سایر کامپیوترها به مقصود مختلفمی باشد و صدمه ای به کامپیوتر ها وارد نمی کنند . این گروه کدهای ورود به سیستمهای امنیتی را پیدا کرده و به داخل آن نفوذ می کنند اما سرقت و خراب کاری جز کارهایکلاه خاکستری نیست . بلکه اطلاعات را در اختیار عموم مردم قرار می دهند . در سال????یک هکر ژاپنی به سایت Nasa امریکا نفوذ پیدا کرد و تمامی اسناد محرمانـه متعلقبه این سازمان را ربود و به طور رایگان بر روی اینترنت در اختیار عموم قرار داد .
4-گروه نفوذگران کلاه سفید ( Pink Hat Hacker Group ) نام دیگر این گروهBooterمی باشد . بوتر ها افرادی لوس و بی سودی هستند که فقط قادرند در سیستمهااخلال بوجود آورند و یا مزاحم سایر کاربران در سالنهای چت شوند. کلاه صورتی ها اغلبجوانان عصبانی و جسوری هستند که ازنرم افزارهای دیگران استفاده می کنند و خود سوادبرنامه نویسی ندارند. ولی در بعضی مواقع همین هکرهای کم سواد می توانند خطرهای جدیبرای امنیت باشند. ... بسیاری از هکرها انسانهای هستند که خود را بسیار آزاد میداند و قصد دارند خود را در دنیای دیگر بر تر سازند.
هیچ کس نمی تواند قدرت هکرها را در نفوذ به سیستمها نادیده بگیرد...
_ترمینولوژی (اصطلاحشناسی)
- Hacker کیست ؟
هکر کسی است که با سیستم های کامپیوتری آشناست و میتواند با روشهایی خاص (بدون اجازه) وارد آنها شود... این انسان میتواند خوب یا بد باشد ( در هر حال هکر است )
- سوال: یک هکر از چه راهی وارد یک سیستم میشود؟
از راه شبکه (نه بابا ! )
باید توجه کنید که هر سیستم کامپیوتری (به عبارت بهتر هر سیستم عامل) به هر حال محصول کار تعدادی انسان است و حتما دارای تعدادی bug (خطاهایی که بعد از ارائه محصول به بازار به تدریج کشف میشوند) خواهد بود. بعد از اینکه یک باگ مشخص شد، شرکت ها نرمافزارهایی را بهسرعت (در عرض چند ساعت ) ایجاد میکنند تا مشکل رفع شود اینها را patch میگویند. و بعد مدیران شبکه (Wbemasters) در عرض چند روز تا چند سال (آین آخری در مورد ایرانه) آنها را download کرده و مشکل را حل میکنند. در این فاصله هکرها دمار از روزگار این سایتها در میاورند...
- تعریف چند اصطلاح:
*** Hacker واقعی = سامورایی :
کسی که هدفش از نفوذ به سیستمها نشان دادن ضعف سیستمهای کامپیوتری است نه سوءاستفاده ...
*** Wacker (واکر):
کسی که هدفش از نفوذ به سیستمها، استفاده از اطلاعات آن سیستمهاست (جرو هکرهای کلاه سیاه )
*** Cracker (کراکر):
کسی که هدفش از نفوذ به سیستمها، خرابکاری و ایجاد اختلال در سیستمهای کامپیوتری است. (جرو هکرهای کلاه سیاه )
*** Preaker :
از قدیمیترین هکرها هستند که برای کارشان نیاز (و دسترسی) به کامپیوتر نداشتند و کارشان نفوذ به خطوط تلفن برای تماس مجانی، استراقسمع و ... بود. این جزو آموزش من نیست چون کار خیلی بدیه (-;
? تقسیمبندی
- انواع کامپیوترهای شبکه:
=> کامپیوترهای Server : کامپیوترهایی که کارشان تامین اطلاعات در شبکه است، مثلآ کامپیوترهایی که سایتها را نگه میدارند.
=> کامپبوترهای Client : کامپیوترهایی که استفاده کننده هستند مثل همین کامپیوتر خودتان که دارید ازش کار میکشید.
- انواع سیستم عاملهایی که Server ها از آن استفاده میکنند:
=> سیستمهای فعلی:
* خانواده Unix (مثل FreeBSD , Linux )
* خانواده Windows (مثل WinNT, Win2000 )
* Sun Solaris
* OsMac
=> سیستمهای قدیمی (منقرض شده - آخیش ! ):
AIX, IRIS, DEC10, DEC20 , ...
- سوال: کدامها را باید یاد گرفت؟
Win2000, Unix(Linux) را باید یاد بگیرید. پیشنهاد من این است که Win2000و RedHat Linux را روی کامپیوتر خود همزمان داشته باشید.
? زنگ تفریح
- تقسیم بندی من برای هکر ها:
?- جوجههکرها (احمق کوچولوها):
تواناییها: بلدند از Sub 7 , 187 استفاده کنند و فکر کنند دیگه همهچی رو یاد گرفتهاند !
?- خروسهکرها یا مرغهکرها (احمقهای بزرگتر):
تواناییها: Mail Box را هم میتوانند Bomb کنند ... ماشاءالله !
?- هکرهای قابلاحترام ( مثل خود شما):
دارند یاد میگیرند و هنوز ?،? سال کار دارند.
?- هکرهای پیشکسوت:
دیگه آفتاب لبه بومه ... هکرهای قابل احترام را دوس دارند ...
? CommandPrompt چیست؟
در بسیاری از درسهای آینده از Command Prompt (خط فرمان) ویندوز استفاده خواهیم کرد. برای باز کردن آن یکی از روشهای زیر را به کار برید:
?- مسیر زیر را در ویندوز طی کنید:
Start > Programs > Accessories > Command Prompt
?- در قسمت Run بنویسید: command یا cmd
? FAQ
- چه چیزهایی را باید داشته باشم تا شروع کنم؟
?-Win2000 , Linux را روی کامپیوتر خود نصب کرده و شروع به یادگیری کنید.
?- شروع به یادگیری زبان C کنید.
?- شروع به یادگیری TCP/IP کنید. (یک کتاب بخرید )
?- مهمترین چیز علاقه به طی کردن یک راه بسییییییار طوووووولانمعرفی چند اصطلاح
IP :
شماره ایست که به هر کامپیوتر متصل به اینترنت داده میشود تا بتوان بهکمک آن شماره به آن کامپیوترها دسترسی داشت. این عدد برای کامپیوترهایی که حالت سرور دارند (مثلا سایتها) و نیز کامپیوترهای کلاینتی که معمولا به روشی غیر از شمارهگیری (Dial Up) به اینترنت وصل هستند، عددی ثابت و برای دیگران عددی متغیر است. مثلا هر بار که شما با شرکت ISP خود تماس گرفته و به اینترنت وصل میشوید، عددی جدید به شما نسبت داده میشود.
این عدد یک عدد ?? بیتی (? بایتی) است و برای راحتی بهصورت زیر نوشته میشود:
***.***.***.*** که منظور از *** عددی بین ? تا ??? است (البته بعضی شمارهها قابل استفاده نیست که بعدا علت را توضیح خواهم داد). مثلا ممکن است آدرس شما به صورت 195.219.176.69 باشد. حتی اسمهایی مثل www.yahoo.com که برای اتصال استفاده میکنید، در نهایت باید به یک IP تبدیل شود، تا شما سایت یاهو را ببینید.
در IP معمولا *** اولی معنای خاصی دارد، که بعدا توضیح میدهم... فقط این را بگویم که اگر به روش Dial Up به اینترنت وصل شوید، معمولا عددی که به عنوان *** اول میگیرید، مابین 192 تا 223 خواهد بود.این توضیح برای تشخیص کامپیوترهای کلاینت از سرور (حداقل در ایران) بسیار میتواند مفید باشد.
بعد از اتصال به اینترنت برای به دست آوردن IP خود، از دستور IPCONFIG در command prompt استفاده کنید. (البته یک سری نکات فنی داریم که بعدا میگم)
پورت (Port):
در ساده ترین تعریف، محلی است که دادهها وارد با خارج میشوند. در مبحث هک معمولا با پورتهای نرمافزاری سروکار داریم که به هر کدام عددی نسبت میدهیم. این اعداد بین ? و ?????هستند. معمولا به یک سری از پورتها کار خاصی را نسبت میدهند و بقیه بهصورت پیشفرض برای استفاده شما هستند. پورتهای که فعال هستند، هرکدام توسط یک نرمافزار خاص مدیریت میشوند. مثلا پورت ?? برای ارسال Email است، بنابراین باید توسط یک نرمافزار این کار انجام شود و این نرمافزار بر روی پورت ?? منتظر (فالگوش) میماند. اینجا ممکن است شخصی از فلان نرمافزار و دیگری از بهمان نرمافزار استفاده کند ولی بههر حال پورت ?? همیشه برای ارسال Email است.
در پایین لیستی از مهمترین پورتها و کاربردشان را میبینید:
Port Num Service Why it"s 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 computer"s 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
از میان این پورتها شمارههای ?، ??، ??، ??، ??، ??، ??، ???و ??? فعلا برای ما مهمترند و بهتدریج با آنها آشنا خواهید شد.
? چگونه به یک پورت Telnet کنیم؟
برای اینکه عملکرد یک پورت برای شما روشن شود، باید به آن پورت Telnet کنید. (البته معمولا تعدادی از پورتهایی را که ممکن است اطلاعاتی مهم را در اختیار هکرها قرار دهند مثل پورت ?? معمولا بسته است و ارتباط با آنها شاید برقرار نشود.) برای telnet کردن در command prompt دستور زیر را تایپ کنید:
telnethostnameportnum
در این دستور بهجای hostname شماره ip و یا نام سایت را وارد میکنید و بهجای portnum شماره پورت و یا معادل آن از جدول. مثلا برای تلنت کردن به پورت ?? که ساعت و تاریخ را بهدست میدهد در کامپیوتری به اسم www.iums.ac.ir مینویسید:
telnet iums.ac.ir 13
telnet iums.ac.ir daytime
هر دو این دستورات معادل هم هستند.
تلنت کردن معمولا اولین کاری است که یک هکر برای هک کردن یک سایت انجام میدهد، زیرا بعضی از پورتها در صورت بسته نبودن روی آن سرور، معمولا حاوی اطلاعات بسیار مهمی هستند.
همین الان شروع کنید و مثل یک هکر واقعی به کامپبوترهای مختلف و پورتهای گوناگون تلنت کنید. مخصوصا اگر پورت ?? (finger) روی یک کامپیوتر باز بود، مرا هم خبر کنید (-;
? تقسیمبندی انواع حملات
اولین نکتهای که لازم است بگویم اینه که وقت خود را برای هک کردن کامپیوترهای کلاینت هدر ندهید (اگرچه برای افراد مبتدی کار با نرمافزاری مثل Sub7 زیاد هم بد نیست ولی نباید زیادهروی کرد) علت هم اینه که هربار که به اینترنت وصل میشوند ip جدیدی به آنها اختصاص پیدا میکنه و زحماتتون هدر میره (البته برای جلوگیری از این امر هم روشهایی هست که در آینده ایشالله میگم).
حالا تقسیمبندی:
?- حمله به روش Denial of ServiceAttack) DoS)
?- حمله به روش Exploit?- حمله به روش Info Gathering (تلنت کردن یکی از مثالهای آن است که امروز آموختید)
?- حمله به روش Disinformation
__________________? 133t Speak چیست؟
گاهی هکرها در هنگام نوشتن به جای تعدادی از حروف انگلیسی معادلهای قراردادی به کار میروند که لیست آنها را در زیر میبینید:
0 <= O
1 <= L; I
2 <= Z
3 <= E
4 <= A
5 <= S
6 <= G
7 <= T
8 <= B
| <= L; I
@ <= at (duh)
$ <= S
)( <= H
}{ <= H
/\/ <= N
\/\/ <= W
/\/\ <= M
|> <= P; D
|< <= K
ph <= f
z <= s
مثلا he Speaks میشود:
}{3 $|>34|< z
توصیه من اینه که از این معادلها تا جایی که میتونید استفاده نکنید. فقط یاد بگیرید که کم نیارید.
? ترسیم مسیر برای آینده:
?- اولین و مهمترین تصمیم انتخاب نوع کامپیوتری است که میخواهید هک کنید ( کلاینت یا سرور )، زیرا روشهک کردن ایندو بجز در مراحل ابتدایی کاملا متفاوت است.
?- دومین گام انتخاب یک کامپیوتر مشخص (مثلا کامپیوتری که فلان سایت را نگه میدارد که مثالی برای کامپیوتر سرور است و یا کامپیوتر فلان شخصی که با او چت میکنید که مثالی برای کامپیوتر کلاینت است) و جمعآوری اطلاعات در مورد آن است. این جمعآوری اطلاعات از قربانی (Victim) را Footprinting گویند. اولین مشخصهای که باید کشف شود، ip اوست. یکی دیگر از اطلاعات مهم که معمولا دنبالش هستیم، پیدا کردن نوع سیستمعامل و نیز برنامههایی است که کامپیوتر شخص از آنها بهره میبرد. یکی از مهمترین ( و گاه خطرناکترین) کارها، تستکردن پورتهای آن کامپیوتر برای دیدن اینکه کدام پورتها باز و کدامها بسته هستند.
?- مرحله بعدی در واقع شروع تلاش برای نفوذ به سیستم است. این نفوذ سطوح مختلف دارد و بالاترین آن که در کامپیوترهای سرور روی میدهد، حالتی است که بتوان username و password مربوط به مدیر کامپیوتر (administrator) یا superuser را بهدست آورده و از طریق این Shell Account به نهایت نفوذ دست یابیم ولی گاه بهدلایل مختلف (مربوط به سطح علمی خود و ... ) نمیتوان به این سطح دستیافت اما به هر حال برای مرحله بعدی میتواند استفاده شود. این مرحله جایی است که هنر شما یه عنوان یک هکر آغاز شده و نیز به پایان میرسد.
?- این مرحله بعد از نفوذ روی میدهد که در آن به یک سطحی از کنترل سیستم رسیدهاید. رفتار شما در این مرحله مشخص میکند که چه نوع هکر هستید(سامورایی، واکر و یا کراکر) و اینکه آیا جنبه یاد گرفتن را داشتهاید یا نه، همینجا مشخص خواهد شد.
?- مرحله آخر پاک کردن ردپاست تا گیر نیفتیم (البته بعضی وقتها برای کلاس گذاشتن باید گیر بیفتیم، هه هه ...). بعضی از سیستمها آمار login را نگه میدارند که در مورد آنها این مرحله بسیار مهم است.
خلاصه مطالب بالا به این صورت است:
Selection -> FootPrinting -> Penetration -> [Changings] -> Cleaning
? خلاصه JargonLexicon 4.2 مشهورترین لغتنامه هکرها: (قسمت ? - قبل از A )
0
عدد صفر، مخالف حرف O انگلیسی. برای تمایز ایندو از هم در دورههای مختلف از روشهای گوناگون استفاده شده است.
1TBS
.n //
"The One True BraceStyle"
ر.ک. indent styleone twenty)120reset)
.wuhn-twen"tee ree"set/ n/
عمل cycle کردن جریان (power) به یک ماشین برای ریست کردن و یا باز کردن (unjam)
م.ک. Big Red Switch, powercycle
2
infix
با توجه به تلفظ مشابه با to در انگلیسی به جای آن به کار میرود. مثلا exe2bin به معنی تبدیل exe به bin است (exe tobin)
404
.n //
HTTP error مربوط به پیدا نشدن فایل (file notfound on server)
four o four)404 compliant)adj
حالتی است که کل سایت توسط Administratorها به دلیل استفاده نامناسب operatorها از آن پاک میشود.
ن.ک. spam, spamvertize
4.2
.for" poynt too"/ n/
اگر به تنهایی به کار رود به معنی BSD Unix release 4.2 است.
party-@
.at"par`tee/ n/
میتینگهایی که بین هکرها برگزار میشود که مهمترین آنها همایش سالیانه Worldcon است.
م.ک. boink
? شروع مبحث Footprinting
گفتیم که اولین مرحله جمعآوری اطلاعات است که به آن FootPrinting میگویند. این مبحث را با آموزش روش پیدا کردن ip شروع میکنیم.
? پیدا کردن ip یک سایت با دانستن آدرس اینترنتی آن (پیدا کردن ip سرور)
برای این کار روشهای مختلفی هست:
?- در (InternetExplorer (IE آدرس را تایپ کنید و Enter را فشار دهید. در قسمت پایین مرورگر یعنی Status Bar پس از چند لحظه برای مدت کوتاهی ip نمایش داده میشود و میتوانید آنرا یادداشت کنید. اگر طول این مدت بسیار کوتاه است میتوانید از صفحه عکس بگیرید ( با دکمه Print Screen ) و در یک نرمافزار گرافیکی بعد از باز کردن یک صفحه خالی به کمک Ctrl+V آنرا مشاهده کنید. [ عجب راه احمقانهای ;-)
اگر این کار را برای www.yahoo.com انجام دهیم:
[IMG]file:///F:/HAK/4_files/image001.jpg[/IMG]
که همان شماره ip برای www.yahoo.com است.
نکته بسیار مهم این است که بهدلیل ضریب اشتباه بسیار بالای آن هیچگاه از این روش استفاده نکنید. نتایج ممکن است کاملا اشتباه باشد که بعدا میگم چرا.
?- دستور ping را در command prompt صادر کنید:
pingdomain
در این حالت میتوانم 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 را بهصورت ***.yyy.yyy.yyy در نظر بگیرید، این کلاس تمام ipهایی را شامل میشود که *** بین ? تا ??? است. این کلاس ویژه backbone های بزرگ اینترنتی است و در هنگام ثبت domain برای گرفتن ip از آنها استفاده میشود. بنابراین اکثر سایتها چنین ipهایی دارند. این کلاس را 8/ هم میگویند.
?- کلاس B: این کلاس تمام ipهایی را شامل میشود که *** بین ??? و ??? است. این کلاس هم از جمله کلاسهای پرکاربرد است. این کلاس را 16/ هم میگویند.
?- کلاس C: این این کلاس تمام ipهای را شامل میشود که *** بین ??? و ???است. این کلاس معمولا به ISP هایی که خدمات dial-up ارائه میدهند، تعلق میگیرد (این جمله چندان مستند نیست.). بنابراین اگر بهصورت dial-up به اینترنت متصل شوید، چنین ip میگیرید. این کلاس را 24/ هم میگویند.
سوالی که پیش میآید این است که *** چرا نه در کلاس A و نه در B، عدد ??? را شامل نمیشود؟ جواب این است که ??? برای کامپیوتر خودمان رزرو شده است. مثلا 127.0.0.1 معمولا یعنی localhost یعنی خودمان.
? بهدست آوردن ip خودتان بعد از اتصال به اینترنت
برای اینکار راههای متفاوتی وجود دارد:
?-راحتترین راه استفاده از دستور ipconfig است. من با تایپ کردن آن به نتایج زیر رسیدم:
Windows 2000 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 بوده است.
? ادامه مبحث Footprinting برای سرورها
قبلا بحث را با روش پیدا کردن ip سرورها (سایتها) شروع کردیم. حالا کمی در مورد whois میآموزیم. لازم به ذکر است که هنوز درمورد FootPrinting کلاینتها صحبتی نکرده و نمیکنم.
? Whois چیست؟
تعریف کلی برای whois نمیتوان ارائه داد ولی فعلا منظور ما از Whois همان کسب اطلاعات در مورد یک سایت است. (قبلا با نوع خاصی از whois برای تبدیل domain به ip آشنا شدهاید).
کاری که امروز میخواهم انجام دهم کسب اطلاعات در مورد یک شماره ip و یا یک domain (مثلا irib.com ) خاص است. برای کسب این اطلاعات باید به اینترنت وصل شده و بهطریقی به یک سری سایتهای خاص که وظیفه ثبت domain , ... را دارند متصل شده و اطلاعات را از آنها درخواست کنم. این سایتهای خاص database (بانکهای اطلاعاتی) ویژه این وظایف را دارند. برای کسب این اطلاعات از سایتها روشهای زیر را میتوان بهکار برد:
?- اگر از طریق سیستم عامل یونیکس یا لینوکس به اینترنت وصل شدهاید، دستوری به اسم whois در آنها وجود دارد. و یا میتوانید از نرمافزارهای خاصی که برای این سیستمعاملها وجود دارد (مثل Xwhois ) استفاده کنید. ولی فعلا بحث روی ویندوز است و این دستور در ویندوز وجود ندارد.
?- برای whois کردن در ویندوز نرمافزارهای زیادی وجود دارد (که به زودی نوشتن یک whois متوسط را در زبان C یاد خواهم داد.) از مشهورترین این نرمافزارها Netscan tools و SamSpade است. ولی از اینها هم فعلا صرف نظر میکنم تا شما بیشتر با جزئیات این کار آشنا شوید.
?- روشی که ما در این جلسه به کار میبریم، استفاده از سایتهایی است که این جستجو را برای ما انجام میدهند. بحث را شروع میکنم:? datebase های whois در چه سایتهایی وجود دارد؟
تعداد زیادی از سایتها این دادهها را دارند که مشهورترینها عبارتند از:
whois.internic.net (The InterNIC)
whois.onlinenic.com (The OnLineNIC)
whois.arin.net (American Registry for Internet Numbers)
whois.ripe.net (European IP Address Allocations)
whois.apnic.net (European IP Address Allocations)
whois.nic.mil (US Military)
whois.nic.gov (US Government)
اولین سایت مشهورترین سایت ثبت domain برای org , net , com است.
توجه کنید که امروزه سایتهای مختلفی عمل ثبت domain را انجام میدهند و برای اینکه در مورد یک سایت خاص (که در واقع یک domain خاص دارد) اطلاعاتی کسب کنیم باید اطلاعات مربوطه را از آن سایتی بگیریم که ثبت domain را انجام داده است و چون این کار مشکلی است به جای استفاده از خود سایتهای بالایی، از سایتهایی دیگر استفاده میکنیم که این کار را برای ما سادهتر میکنند (خود آن سایتها در نهایت اطلاعاتشان را از سایتهای اصلی میگیرند و فقط یک نقش واسط دارند... لازم بهذکر است که ایجاد چنین صفحات وبی زیاد هم مشکل نیست.). سایت مورد علاقه من برای کسب اطلاعات سایت زیر است:
http://www.samspade.org/t/whois?a=xxxxxxxxx
که بجای xxxxxxxxx آدرس سایت و یا ip آنرا مینویسیم و آدرس حاصله را در مرورگر خود میبینیم. مثلا اگر بخواهم در مورد سایت sazin.com اطلاعاتی بهدست بیاورم، مینویسم:
http://www.samspade.org/t/whois?a=sazin.com
و اطلاعات زیر به دست میآید:
sazin.com is registered with BULKREGISTER.COM, INC. - redirecting
to whois.bulkregister.com
whois -h whois.bulkregister.com sazin.com
The data in Bulkregister.com"s WHOIS .........................(deleted)
SazinNetWork
2nd.Floor,Bldg#116,Mollasadra Ave.
Tehran, TEH 14358
IR
Domain Name: SAZIN.COM
Administrative Contact:
Mohammad Hajati mjhajati@hotmail.com
Sazin Rasaneh Co.
4th.Floor,Bldg.339,Mirdamad Ave.
Tehran, TEH 19696
IR
Phone: +98 21 8787064
Fax: +98 21 8789841
Technical Contact:
Mohammad Hajati mjhajati@hotmail.com
Sazin Rasaneh Co.
4th.Floor,Bldg.339,Mirdamad Ave.
Tehran, TEH 19696
IR
Phone: +98 21 8787064
Fax: +98 21 8789841
Record updated on 2002-03-02 05:47:36
Record created on 1999-05-10
Record expires on 2007-05-10
Database last updated on 2002-09-15 08:58:02 EST
Domain servers in listed order:
DNS.SAZIN.COM 80.78.134.221
S1.SAZIN.COM 63.148.227.63
S2.SAZIN.COM 63.148.227.64
ملاحظه میکنید که اطلاعات زیادی در مورد این سایت را به این طریق میتوان بهدست آورد. اطلاعاتی درمورد آدرس ISP ، شخصی که بهعنوان Admin کار ثبت را انجام داده است و ... البته باز هم نمیتوان در مورد صحت و سقم آن اظهارنظر قطعی داشت.
تعدادی از مهمترین اطلاعات را در قسمت DNS Servers یا Domain servers (که در این مثال در آخر قرار دارد) میبینید. بعدا در مورد این آدرسها توضیح خواهم داد ولی فعلا میگم که به کمک همین چند آدرسی که در آخر بهدست آوردیم به کمک دستوری به نام nslookup میتوان اطلاعات با ارزشتری بهدست آورد که بهزودی یاد میگیرید.
چگونگی استفاده از nslookup
وقتی که DNS Server یک سایت را بهدست آورده باشیم (از طریق whois )، به کمک دستور nslookup میتوان اطلاعاتی اضافی در مورد آن سایت پیدا کرد. طریقه استفاده این دستور به صورت زیر است:
فرض کنید که من میخواهم از DomainServer سایت (far30.com) اطلاعاتی بهدست بیارم. اگر به این سایت whois کنم، میبینم که دوتا Name Server یا DNS Server دارد:
s1.sazin.com
s2.sazin.com
حالا دیگر آدرس DNS Server مربوط به far30.com را دارم و میتوانم شروع کنم:
?- دستور nslookup را در command prompt نوشته و اجرا میکنم:
C:\>nslookup
و نتایج را میبینم:
*** Can"t find server name for address 192.168.20.3: Non-exi...
*** Can"t find server name for address 192.168.20.1: Non-exi...
*** Default servers are not available
Default Server: UnKnown
Address: 192.168.20.3
>
علامت > یعنی شما میتوانید دستورات را تایپ کنید.
?- در جلوی علامت < دستور زیر را تایپ میکنیم:
> server dns_server
که به جای dns_server باید آدرس DNSServer سایت موردنظر را بنویسم. پس برای سایت far30.com میشود:
> server s1.sazin.com
و جواب میشنوم:
Default Server: s1.sazin.com
Address: 63.148.227.63
اگر در این مرحله پیغام خطا میگیرید، باید دوباره این دستور را تایپ کنید و نیز میتوانید از DNS Server دومی که در whois برای far30.com بهدست آوردیم ، استفاده کنیم.
?- دستور زیر را تایپ کنید:
> set type=any
?- حالا به کمک دستور زیر اطلاعات را بهدست میآوریم:
> ls -d site_name .
که برای far30.com میشود:
>ls -d far30.com.
دقت کنید که بعد از اسم سایت یک نقطه (dot) گذاشتهام، شما هم بهتر است اینطوری بنویسید.
نتایج زیر حاصل میشود:
[s1.sazin.com]
far30.com. SOA s1.sazin.com admin.sazin.com.
(2002070412 3600 600 86400 3600)
far30.com. A 63.148.227.65
far30.com. NS s1.sazin.com
far30.com. NS s2.sazin.com
far30.com. MX 10 mail.far30.com
far30.com. MX 15 far30.com
ftp CNAME far30.com
mail A 63.148.227.65
www CNAME far30.com
far30.com. SOA s1.sazin.com admin.sazin.com.
(2002070412 3600 600 86400 3600)
>
بعدا در مورد کاربرد تکتک اینها صحبت خواهم کرد ولی بعضی از آنها همینطوری هم اطلاعات واضحی دارند.
?- دستور exit را مقابل < تایپ کرده و از nslookup خارج میشویم.
شما برای تمرین همین کار را در مورد سایت neda.net.ir انجام دهید.
? تقسیمبندی پورتها از روی شماره آنها
?- پورتهای 0 تا 1023 :
مشهورترین پورتها هستند و معمولا هرکدام برای یک سرویس خاص استفاده میشود. با تعدادی از این پورتها در جلسات قبل آشنا شدهاید.
?- پورتهای 1024 تا 49151 :
این سری از پورتها مشخصا با هیچیک از سرویسهای اینترنتی مرتبط نیستند بلکه وقتی که با یک ابزار شبکه مانند مرورگر اینترنت(مثل Internet Explore یا Netscape Navigator )، نرمافزار ارسال و دریافت E-mail (مثل Outlook یا Edura )، نرمافزارهای FTP (مثل WS-FTP یا Cute-FTP ) کار میکنید، یکی از این پورتها به صورت random باز شده و یک ارتباط با سرور (با توجه بهنوع سرویس اینترنتی که میدهد که یکی از پورتهای 0 تا 1023 است) برقرار شده و دادهها ارسال و دریافت میشوند. یعنی پورت شما یکی از پورتهای این قسمت است و پورت سرور یکی از پورتهای بالایی.این سری پورتها را پورتهای register شده هم میگویند.
?- پورتهای 49152 تا 65535 :
این سری از پورتها بهندرت استفاده میشوند. کاربرد اساسی آنها برای یک سری سرویسهای خاص اینترنتی است و یا توسط trojanها (که برای Hack کردن کامپیوتر است) است. البته خیلی از trojanهای معروف از پورتهای ردیف ? هم استفاده میکنند و این تقسیمبندیها همیشه برقرار نیست و بههمین علت است که گاهی پورتها را به دودسته زیر 1024 و بالای 1024 تقسیم میکنند.