MAHDIAR
8th November 2009, 11:05 PM
آموزش کامل هک به زبان ساده
- 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
توصيه من اينه که از اين معادلها تا جايي که ميتونيد استفاده نکنيد. فقط ياد بگيريد که کم نياريد.
- 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 به ? کلاس تقسيمبندي ميشوند که 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 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 بوده است.
- پيدا کردن 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 دومي است.
- TCP و UDP چيست؟
مدل TCP/IP که براي ارتباط اينترنتي بهکار ميرود، ميتوان به لايههاي مختلفي تقسيمبندي کرد که بعدا بيشتر توضيح ميدم، اما يکي از اين لايهها، لايه ارتباط host2host است که خود شامل دو پروتکل است به نامهاي TCP و UDP :
?- (TCP (Transmission Control Protocol :
اين پروتکل قويتر و قابل اعتمادتر است و اصولا پروتکل مهمتري نسبت به UDP محسوب ميشود. اين پروتکل توانايي بازبيني بستههاو کنترل خطا را هم دارد.
?- (UDP (User Datagram Protocol :
اين پروتکل براي کاهش overflow طراحي شده است و در خيلي از موارد وابسته به TCP است.
نکته مهم اين است که وقتي با يک پورت خاص روي يک کامپيوتر ديگر ارتباط برقرار ميکنيم، اين ارتباط ميتواند از نوع TCP يا UDP باشد. بنابراين وقتي ميخواهيم يک کامپيوتر خاصي را از نظر پورتها بررسي کنيم، هردو بايد بررسي شود.
- تقسيمبندي پورتها از روي شماره آنها
?- پورتهاي 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 تقسيم ميکنند.
تکميل ليست پورتها
در جلسه دوم در مورد مهمترين پورتها صحبت کردم. حالا يک ليست کاملتر را در اين درس ميگم. اگر ميخواهيد يک مرجع نسبتا کامل براي مراجعه داشته باشيد، اينجا را کليک کنيد. دقت کنيد درس امروز و نيز لينک بالا هيچ بحثي در مورد تروجانها نميکند زيرا تروجانهاي شناخته شده هم يک سري پورت پيشفرض دارند که در جاي خود بحث خواهد شد.
Ports TCP/UDP Service or Application
------ ------- ----------------------------------------
7 tcp echo
11 tcp systat
19 tcp chargen
21 tcp ftp-data
22 tcp ssh
23 tcp telnet
25 tcp smtp
42 tcp nameserver
43 tcp whois
49 udp tacacs
53 udp dns-lookup
53 tcp dns-zone
66 tcp oracle-sqlnet
69 udp tftp
79 tcp finger
80 tcp http
81 tcp alternative for http
88 tcp kerberos or alternative for http
109 tcp pop2
110 tcp pop3
111 tcp sunrpc
118 tcp sqlserv
119 tcp nntp
135 tcp ntrpc-or-dec
139 tcp netbios
143 tcp imap
161 udp snmp
162 udp snmp-trap
179 tcp bgp
256 tcp snmp-checkpoint
389 tcp ldap
396 tcp netware-ip
407 tcp timbuktu
443 tcp https/ssl
445 tcp ms-smb-alternate
445 udp ms-smb-alternate
500 udp ipsec-internet-key-exchange (ike)
513 tcp rlogin
513 udp rwho
514 tcp rshell
514 udp syslog
515 tcp printer
515 udp printer
520 udp router
524 tcp netware-ncp
799 tcp remotely possible
1080 tcp socks
1313 tcp bmc-patrol-db
1352 tcp notes
1433 tcp ms-sql
1494 tcp citrix
1498 tcp sybase-sql-anywhere
1524 tcp ingres-lock
1525 tcp oracle-srv
1527 tcp oracle-tli
1723 tcp pptp
1745 tcp winsock-proxy
2000 tcp remotely-anywhere
2001 tcp cisco-mgmt
2049 tcp nfs
2301 tcp compaq-web
2447 tcp openview
2998 tcp realsecure
3268 tcp ms-active-dir-global-catalog
3268 udp ms-active-dir-global-catalog
3300 tcp bmc-patrol-agent
3306 tcp mysql
3351 tcp ssql
3389 tcp ms-termserv
4001 tcp cisco-mgmt
4045 tcp nfs-lockd
5631 tcp pcanywhere
5800 tcp vnc
6000 tcp xwindows
6001 tcp cisco-mgmt
6549 tcp apc
6667 tcp irc
8000 tcp web
8001 tcp web
8002 tcp web
8080 tcp web
9001 tcp cisco-xremote
12345 tcp netbus
26000 tcp quake
31337 udp backorifice
32771 tcp rpc-solaris
32780 udp snmp-solaris
43188 tcp reachout
65301 tcp pcanywhere-def
- 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
توصيه من اينه که از اين معادلها تا جايي که ميتونيد استفاده نکنيد. فقط ياد بگيريد که کم نياريد.
- 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 به ? کلاس تقسيمبندي ميشوند که 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 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 بوده است.
- پيدا کردن 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 دومي است.
- TCP و UDP چيست؟
مدل TCP/IP که براي ارتباط اينترنتي بهکار ميرود، ميتوان به لايههاي مختلفي تقسيمبندي کرد که بعدا بيشتر توضيح ميدم، اما يکي از اين لايهها، لايه ارتباط host2host است که خود شامل دو پروتکل است به نامهاي TCP و UDP :
?- (TCP (Transmission Control Protocol :
اين پروتکل قويتر و قابل اعتمادتر است و اصولا پروتکل مهمتري نسبت به UDP محسوب ميشود. اين پروتکل توانايي بازبيني بستههاو کنترل خطا را هم دارد.
?- (UDP (User Datagram Protocol :
اين پروتکل براي کاهش overflow طراحي شده است و در خيلي از موارد وابسته به TCP است.
نکته مهم اين است که وقتي با يک پورت خاص روي يک کامپيوتر ديگر ارتباط برقرار ميکنيم، اين ارتباط ميتواند از نوع TCP يا UDP باشد. بنابراين وقتي ميخواهيم يک کامپيوتر خاصي را از نظر پورتها بررسي کنيم، هردو بايد بررسي شود.
- تقسيمبندي پورتها از روي شماره آنها
?- پورتهاي 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 تقسيم ميکنند.
تکميل ليست پورتها
در جلسه دوم در مورد مهمترين پورتها صحبت کردم. حالا يک ليست کاملتر را در اين درس ميگم. اگر ميخواهيد يک مرجع نسبتا کامل براي مراجعه داشته باشيد، اينجا را کليک کنيد. دقت کنيد درس امروز و نيز لينک بالا هيچ بحثي در مورد تروجانها نميکند زيرا تروجانهاي شناخته شده هم يک سري پورت پيشفرض دارند که در جاي خود بحث خواهد شد.
Ports TCP/UDP Service or Application
------ ------- ----------------------------------------
7 tcp echo
11 tcp systat
19 tcp chargen
21 tcp ftp-data
22 tcp ssh
23 tcp telnet
25 tcp smtp
42 tcp nameserver
43 tcp whois
49 udp tacacs
53 udp dns-lookup
53 tcp dns-zone
66 tcp oracle-sqlnet
69 udp tftp
79 tcp finger
80 tcp http
81 tcp alternative for http
88 tcp kerberos or alternative for http
109 tcp pop2
110 tcp pop3
111 tcp sunrpc
118 tcp sqlserv
119 tcp nntp
135 tcp ntrpc-or-dec
139 tcp netbios
143 tcp imap
161 udp snmp
162 udp snmp-trap
179 tcp bgp
256 tcp snmp-checkpoint
389 tcp ldap
396 tcp netware-ip
407 tcp timbuktu
443 tcp https/ssl
445 tcp ms-smb-alternate
445 udp ms-smb-alternate
500 udp ipsec-internet-key-exchange (ike)
513 tcp rlogin
513 udp rwho
514 tcp rshell
514 udp syslog
515 tcp printer
515 udp printer
520 udp router
524 tcp netware-ncp
799 tcp remotely possible
1080 tcp socks
1313 tcp bmc-patrol-db
1352 tcp notes
1433 tcp ms-sql
1494 tcp citrix
1498 tcp sybase-sql-anywhere
1524 tcp ingres-lock
1525 tcp oracle-srv
1527 tcp oracle-tli
1723 tcp pptp
1745 tcp winsock-proxy
2000 tcp remotely-anywhere
2001 tcp cisco-mgmt
2049 tcp nfs
2301 tcp compaq-web
2447 tcp openview
2998 tcp realsecure
3268 tcp ms-active-dir-global-catalog
3268 udp ms-active-dir-global-catalog
3300 tcp bmc-patrol-agent
3306 tcp mysql
3351 tcp ssql
3389 tcp ms-termserv
4001 tcp cisco-mgmt
4045 tcp nfs-lockd
5631 tcp pcanywhere
5800 tcp vnc
6000 tcp xwindows
6001 tcp cisco-mgmt
6549 tcp apc
6667 tcp irc
8000 tcp web
8001 tcp web
8002 tcp web
8080 tcp web
9001 tcp cisco-xremote
12345 tcp netbus
26000 tcp quake
31337 udp backorifice
32771 tcp rpc-solaris
32780 udp snmp-solaris
43188 tcp reachout
65301 tcp pcanywhere-def