آموزش هک درس دوازدهم
194.225.184.15
Remote operating system guess: Windows 2000 server SP2
195.219.176.5
Remote operating system guess: Linux Kernel 2.4.0 - 2.5.20
206.104.238.208
Remote operating system guess: Linux 2.1.19 - 2.2.20
217.66.199.6
(Remote operating system guess: Cisco router running IOS 12.1.5-12.2(6a
63.148.227.65
Remote operating system guess: Windows 2000/XP/ME
194.225.184.2
No exact OS matches for host (If you know what OS is running on it, see http://www.insecure.org/cgi-bin/nmap-submit.cgi).
در اين مورد میبينيد که nmap موفق به تعيين نوع سيستمعامل نشده است. ممکن است دليلش اين باشد که ip در آن لحظه up نبوده است.
- يا يک حالت ديگر موردی است که ببينيد صفحات يک وب سايت با asp يا asp.net درست شده است (مثلا اسم صفحه به صورت zzzzzz.asp يا zzzzzz.aspx باشد، که نمونه آن سايت tarfandestan.com است که اسم همين صفحه default.asp است). در اين حالت سرور آن حتما سروری از محصولات مايکروسافت است مثل Win NT و يا Win 2000 و نمیتواند Linux يا Unix يا Sun Solaris و... باشد.
◊ تعيين پورتهای باز کامپيوتر خودتان
قبلا به کمک پورت اسکنينگ (توسط ipeye، acw_spscan، nmap) ياد گرفتيد که چگونه پورتهای باز يک کامپيوتر ديگر را مشخص کنيم. حالا میخواهيم درباره کامپيوتر خودمان اين اطلاعات را پيدا کنيم. برای اين کار يکی از دستورات زير را به کار میبريم:
netstat -an
netstat -a
فرق اين دو دستور در اين است که اولی پورتها را به صورت عددی و دومی به صورت معادل اسمی آن پورت مینويسد. مثلا معادل اسمی پورت 7 ، echo است.
مثلا اگه netstat -an را تايپ کنم، به اطلاعات زير میرسم:
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:7 0.0.0.0:0 LISTENING
TCP 0.0.0.0:9 0.0.0.0:0 LISTENING
TCP 0.0.0.0:13 0.0.0.0:0 LISTENING
TCP 0.0.0.0:17 0.0.0.0:0 LISTENING
TCP 0.0.0.0:19 0.0.0.0:0 LISTENING
TCP 0.0.0.0:21 0.0.0.0:0 LISTENING
TCP 0.0.0.0:25 0.0.0.0:0 LISTENING
TCP 0.0.0.0:53 0.0.0.0:0 LISTENING
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 0.0.0.0:119 0.0.0.0:0 LISTENING
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:143 0.0.0.0:0 LISTENING
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:515 0.0.0.0:0 LISTENING
TCP 0.0.0.0:563 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1026 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1033 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1037 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1040 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1041 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1043 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1755 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1801 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3372 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING
TCP 0.0.0.0:6034 0.0.0.0:0 LISTENING
TCP 0.0.0.0:6666 0.0.0.0:0 LISTENING
TCP 0.0.0.0:7007 0.0.0.0:0 LISTENING
TCP 0.0.0.0:7778 0.0.0.0:0 LISTENING
TCP 0.0.0.0:8181 0.0.0.0:0 LISTENING
TCP 127.0.0.1:1039 0.0.0.0:0 LISTENING
TCP 127.0.0.1:1433 0.0.0.0:0 LISTENING
TCP 127.0.0.1:2103 0.0.0.0:0 LISTENING
TCP 127.0.0.1:2105 0.0.0.0:0 LISTENING
TCP 127.0.0.1:2107 0.0.0.0:0 LISTENING
UDP 0.0.0.0:7 *:*
UDP 0.0.0.0:9 *:*
UDP 0.0.0.0:13 *:*
UDP 0.0.0.0:17 *:*
UDP 0.0.0.0:19 *:*
UDP 0.0.0.0:68 *:*
UDP 0.0.0.0:135 *:*
UDP 0.0.0.0:161 *:*
UDP 0.0.0.0:445 *:*
UDP 0.0.0.0:1030 *:*
UDP 0.0.0.0:1036 *:*
UDP 0.0.0.0:1038 *:*
UDP 0.0.0.0:1042 *:*
UDP 0.0.0.0:1075 *:*
UDP 0.0.0.0:1434 *:*
UDP 0.0.0.0:1645 *:*
UDP 0.0.0.0:1646 *:*
UDP 0.0.0.0:1755 *:*
UDP 0.0.0.0:1812 *:*
UDP 0.0.0.0:1813 *:*
UDP 0.0.0.0:3456 *:*
UDP 0.0.0.0:3527 *:*
UDP 127.0.0.1:53 *:*
UDP 127.0.0.1:1028 *:*
UDP 127.0.0.1:1029 *:*
UDP 127.0.0.1:1035 *:*
UDP 127.0.0.1:1044 *:*
UDP 127.0.0.1:1045 *:*
UDP 127.0.0.1:1100 *:*
من دستور را موقعی اجرا کردم که به اينترنت متصل نبودم. اگر همين کار را در زمان اتصال به اينترنت انجام میدادم، يک سری سطرهای جديد هم اضافه میشد که مربوط به آن اتصال میشد. و نيز دقت کنيد که من سويچ an- را استفاده کردم و پورتها به صورت عددی نمايش داده شده است که همين الان - الساعه - براتون توضيح میدم:
اولين نکتهای که به نظر میرسد، نامی است که برای هر ستون نوشته شده است:
Proto Local Address Foreign Address State
- Proto : يعنی پروتکل، که میتواند TCP يا UDP باشد.
- Local Address : نشاندهنده ip کامپيوتر خودمان و شماره پورتهاست. مثلا سطر اول میگويد که ip من 0.0.0.0 است (دقت کنيد که من به اينترنت متصل نيستم) و اولين پورت باز (از نوع TCP با توجه به اول سطر) عدد ۷ است زيرا اين به صورت 0.0.0.0:7 نوشته شده است که قسمت قبل از کاراکتر : ، ip است و بعد از کاراکتر :، پورت است.
- Foreign Address : چون در اين مثال از سويچ a- يا an- استفاده کردهايم، کاربردی ندارد. ولی بعدا خواهيد ديد که اگر از يک سويچ ديگر استفاده کنيم، میتواند مهم باشد.
- State : وضعيت اتصال را نشان میدهد
حالا اگه پورتها را يکی يکی بررسی کنيد، میبينيد که در پروتکل TCP ، پورتهای ۷، ۹، ۱۳، ۱۷، ۱۹، ۲۱ و... باز است و در پروتکل UDP ، پورتهای ۷، ۹، ۱۳، ۱۷، ۱۹، ۶۸ و ... باز است.
حالا ممکن است بپرسيد که اين اطلاعات به چه دردی میخورد؟
جواب اين است که دانستن اين اطلاعات برای محافظت از خودتان در برابر همکارانتان (هکرها) است. مثلا اگر يک تروجان روی کامپيوتر شما نصب شده باشد، با اين دستور میتوان آن را کشف کرد.
◊ نکتهای درباره Client Footprinting
بحث درباره Server Footprinting (کسب اطلاعات درباره سرورها) هنوز باقی است. ولی الان به جايی رسيده ايد که ديگه کمکم ميشه درباره Client Footprinting صحبت کرد. يعنی میخواهيم درباره يک کلاينت مثلا کسی که مثل شما يک اتصال مثلا 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 دومی است.