مقدمات قبل از شروع یادگیری هک
ترمینولوژی (اصطلاحشناسی)
Hacker کیست ؟
هکر کسی است که با سیستم های کامپیوتری آشناست و میتواند با روشهایی خاص (بدون اجازه) وارد آنها شود... این انسان میتواند خوب یا بد باشد ( در هر حال هکر است )
- سوال: یک هکر از چه راهی وارد یک سیستم میشود؟
از راه شبکه (نه بابا ! )
باید توجه کنید که هر سیستم کامپیوتری (به عبارت بهتر هر سیستم عامل) به هر حال محصول کار تعدادی انسان است و حتما دارای تعدادی bug (خطاهایی که بعد از ارائه محصول به بازار به تدریج کشف میشوند) خواهد بود. بعد از اینکه یک باگ مشخص شد، شرکت ها نرمافزارهایی را بهسرعت (در عرض چند ساعت ) ایجاد میکنند تا مشکل رفع شود اینها را patch میگویند. و بعد مدیران شبکه (Wbemasters) در عرض چند روز تا چند سال (آین آخری در مورد ایرانه) آنها را download کرده و مشکل را حل میکنند. در این فاصله هکرها دمار از روزگار این سایتها در میاورند...
- تعریف چند اصطلاح:
*** Hacker واقعی = سامورایی :
کسی که هدفش از نفوذ به سیستمها نشان دادن ضعف سیستمهای کامپیوتری است نه سوءاستفاده ...
*** Wacker (واکر):
کسی که هدفش از نفوذ به سیستمها، استفاده از اطلاعات آن سیستمهاست (جرو هکرهای کلاه سیاه )
*** Cracker (کراکر):
کسی که هدفش از نفوذ به سیستمها، خرابکاری و ایجاد اختلال در سیستمهای کامپیوتری است. (جرو هکرهای کلاه سیاه )
*** Preaker :
از قدیمیترین هکرها هستند که برای کارشان نیاز (و دسترسی) به کامپیوتر نداشتند و کارشان نفوذ به خطوط تلفن برای تماس مجانی، استراقسمع و ... بود. این جزو آموزش من نیست چون کار خیلی بدیه (-;
- زنگ تفریح
- تقسیم بندی من برای هکر ها:
۱- جوجههکرها (احمق کوچولوها):
تواناییها: بلدند از Sub 7 , 187 استفاده کنند و فکر کنند دیگه همهچی رو یاد گرفتهاند !
۲- خروسهکرها یا مرغهکرها (احمقهای بزرگتر):
تواناییها: Mail Box را هم میتوانند Bomb کنند ... ماشاءالله !
۳- هکرهای قابلاحترام ( مثل خود شما):
دارند یاد میگیرند و هنوز ۲،۳ سال کار دارند.
۴- هکرهای پیشکسوت:
دیگه آفتاب لبه بومه ... هکرهای قابل احترام را دوس دارند
تقسیمبندی
- انواع کامپیوترهای شبکه:
=> کامپیوترهای Server : کامپیوترهایی که کارشان تامین اطلاعات در شبکه است، مثلآ کامپیوترهایی که سایتها را نگه میدارند.
=> کامپبوترهای Client : کامپیوترهایی که استفاده کننده هستند مثل همین کامپیوتر خودتان که دارید ازش کار میکشید.
انواع سیستم عاملهایی که Server ها از آن استفاده میکنند:
=> سیستمهای فعلی:
* خانواده Unix (مثل FreeBSD, Linux, Sun Solaris )
* خانواده Windows (مثل WinNT, Win2000 )
* OsMac
=> سیستمهای قدیمی (منقرض شده - آخیش ! ):
AIX, IRIS, DEC10, DEC20 , ...
- سوال: کدامها را باید یاد گرفت؟
Win2000, Unix(Linux) را باید یاد بگیرید. پیشنهاد من این است که Win2000و RedHat Linux را روی کامپیوتر خود همزمان داشته باشید.
برای شروع چه چیزی لازم است؟
۱- Win2000 , Linux را روی کامپیوتر خود نصب کرده و شروع به یادگیری کنید.
۲- شروع به یادگیری زبان C کنید.
۳- شروع به یادگیری TCP/IP کنید. (یک کتاب بخرید )
۴- مهمترین چیز علاقه به طی کردن یک را بسییییییار طوووووولانی
- تقسیمبندی انواع حملات
ولین نکتهای که لازم است بگویم اینه که وقت خود را برای هک کردن کامپیوترهای کلاینت هدر ندهید (اگرچه برای افراد مبتدی کار با نرمافزاری مثل Sub7 زیاد هم بد نیست ولی نباید زیادهروی کرد) علت هم اینه که هربار که به اینترنت وصل میشوند ip جدیدی به آنها اختصاص پیدا میکنه و زحماتتون هدر میره (البته برای جلوگیری از این امر هم روشهایی هست که در آینده ایشالله میگم).
حالا تقسیمبندی:
۱- حمله به روش Denial of Service Attack) 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
تعریف ip و port
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
از میان این پورتها شمارههای ۷، ۱۵، ۲۱، ۲۳، ۲۵، ۷۹، ۸۰، ۱۱۰و ۱۱۹ فعلا برای ما مهمترند و بهتدریج با آنها آشنا خواهید شد.