سایت تخصصی کامپیوتر و شبکه
(جدیدترین اخبار، مقالات و آموزش‌ها در زمینه فناوری اطلاعات | خرید و فروش تجهیزات شبکه)
جامع ترین آموزش هک از مبتدی تا پیشرفته بامثالهای زیادومتنوع نویسنده: مهندس عبدالهی پور - سه‌شنبه ۱۱ اسفند ۱۳۸۸

جامع ترین آموزش هک از مبتدی تا پیشرفته بامثالهای زیادومتنوع ترمینولوژی (اصطلاح‌شناسی) - 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 را روی کامپیوتر خود همزمان داشته باشید. Command Prompt چیست؟ در بسیاری از درس‌های آینده از Command Prompt(خط فرمان) ویندوز استفاده خواهیم کرد. برای باز کردن آن یکی از روش‌های زیر را به کار برید: ۱- مسیر زیر را در ویندوز طی کنید: Start > Programs > Accessories > Command Prompt ۲- در قسمت Run بنویسید command یا cmd معرفی چند اصطلاح 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 its 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 از میان این پورت‌ها شماره‌های ۷، ۱۵، ۲۱، ۲۳، ۲۵، ۷۹، ۸۰، ۱۱۰و ۱۱۹ فعلا برای ما مهم‌ترند و به‌تدریج با آنها آشنا خواهید شد. چگونه به یک پورت Telnet کنیم؟ برای اینکه عملکرد یک پورت برای شما روشن شود، باید به آن پورت Telnet کنید. (البته معمولا تعدادی از پورت‌هایی را که ممکن است اطلاعاتی مهم را در اختیار هکر‌ها قرار دهند مثل پورت ۷۹ معمولا بسته است و ارتباط با آنها شاید برقرار نشود.) برای telnet کردن در command prompt دستور زیر را تایپ کنید: telnet hostname portnum در این دستور به‌جای hostname شماره ip و یا نام سایت را وارد می‌کنید و به‌جای portnum شماره پورت و یا معادل آن از جدول. مثلا برای تلنت کردن به پورت ۱۳ که ساعت و تاریخ را به‌دست می‌دهد در کامپیوتری به‌ اسم www.iums.ac.ir می‌نویسید: telnet iums.ac.ir 13 telnet iums.ac.ir daytime هر دو این دستورات معادل هم هستند. تلنت کردن معمولا اولین کاری است که یک هکر برای هک کردن یک سایت انجام می‌دهد، زیرا بعضی از پورت‌ها در صورت بسته نبودن روی آن سرور، معمولا حاوی اطلاعات بسیار مهمی هستند. همین الان شروع کنید و مثل یک هکر واقعی به کامپبوتر‌های مختلف و پورت‌های گوناگون تلنت کنید. مخصوصا اگر پورت ۷۹ (finger) روی یک کامپیوتر باز بود، مرا هم خبر کنید تقسیم‌بندی انواع حملات اولین نکته‌ای که لازم است بگویم اینه که وقت خود را برای هک کردن کامپیوتر‌های کلاینت هدر ندهید (اگرچه برای افراد مبتدی کار با نرم‌افزاری مثل Sub7 زیاد هم بد نیست ولی نباید زیاده‌روی کرد) علت هم اینه که هربار که به اینترنت وصل می‌شوند ip جدیدی به‌ آنها اختصاص پیدا می‌کنه و زحماتتون هدر می‌ره (البته برای جلوگیری از این امر هم روشهایی هست که در آینده ایشالله میگم). حالا تقسیم‌بندی: ۱- حمله به روش Denial of Service Attack) DoS) ۲- حمله به روش Exploit ۳- حمله به روش Info Gathering (تلنت کردن یکی از مثالهای آن است که امروز آموختید) ۴- حمله به روش Disinformation ترسیم مسیر برای آینده: ۱- اولین و مهمترین تصمیم انتخاب نوع کامپیوتری است که می‌خواهید هک کنید ( کلاینت یا سرور )، زیرا روش‌هک کردن این‌دو بجز در مراحل ابتدایی کاملا متفاوت است. ۲- دومین گام انتخاب یک کامپیوتر مشخص (مثلا کامپیوتری که فلان سایت را نگه می‌دارد که مثالی برای کامپیوتر سرور است و یا کامپیوتر فلان شخصی که با او چت می‌کنید که مثالی برای کامپیوتر کلاینت است) و جمع‌آوری اطلاعات در مورد آن است. این جمع‌آوری اطلاعات از قربانی (Victim) را Footprinting گویند. اولین مشخصه‌ای که باید کشف شود، ip اوست. یکی دیگر از اطلاعات مهم که معمولا دنبالش هستیم، پیدا کردن نوع سیستم‌عامل و نیز برنامه‌هایی است که کامپیوتر شخص از آنها بهره می‌برد. یکی از مهمترین ( و گاه خطرناک‌ترین) کارها، تست‌کردن پورت‌های آن کامپیوتر برای دیدن اینکه کدام پورت‌ها باز و کدام‌ها بسته هستند. ۳- مرحله بعدی در واقع شروع تلاش برای نفوذ به سیستم است. این نفوذ سطوح مختلف دارد و بالاترین آن که در کامپیوترهای سرور روی می‌دهد، حالتی است که بتوان username و password مربوط به مدیر کامپیوتر (administrator) یا superuser را به‌دست آورده و از طریق این Shell Account به نهایت نفوذ دست‌ یابیم ولی گاه به‌دلایل مختلف (مربوط به سطح علمی خود و ... ) نمی‌توان به این سطح دست‌یافت اما به هر حال برای مرحله بعدی می‌تواند استفاده شود. این مرحله جایی است که هنر شما یه عنوان یک هکر آغاز شده و نیز به پایان می‌رسد. ۴- این مرحله بعد از نفوذ روی می‌دهد که در آن به یک سطحی از کنترل سیستم رسیده‌اید. رفتار شما در این مرحله مشخص می‌کند که چه نوع هکر هستید(سامورایی، واکر و یا کراکر) و اینکه آیا جنبه یاد گرفتن را داشته‌اید یا نه، همینجا مشخص خواهد شد. ۵- مرحله آخر پاک کردن ردپاست تا گیر نیفتیم (البته بعضی وقتها برای کلاس گذاشتن باید گیر بیفتیم، هه هه ...). بعضی از سیستم‌ها آمار login را نگه می‌دارند که در مورد آنها این مرحله بسیار مهم است. خلاصه مطالب بالا به این صورت است: Selection -> FootPrinting -> Penetration -> [Changings] -> Cleaning شروع مبحث Footprinting گفتیم که اولین مرحله جمع‌آوری اطلاعات است که به آن FootPrinting می‌گویند. این مبحث را با آموزش روش پیدا کردن ip شروع می‌کنیم. پیدا کردن ip یک سایت با دانستن آدرس اینترنتی برای این کار روشهای مختلفی هست: ۱- در (Internet Explorer (IE آدرس را تایپ کنید و Enter را فشار دهید. در قسمت پایین مرورگر یعنی Status Bar پس از چند لحظه برای مدت کوتاهی ip نمایش داده می‌شود و می‌توانید آنرا یادداشت کنید. اگر طول این مدت بسیار کوتاه است می‌توانید از صفحه عکس بگیرید ( با دکمه Print Screen ) و در یک نرم‌افزار گرافیکی بعد از باز کردن یک صفحه خالی به کمک Ctrl+V آنرا مشاهده کنید. [ عجب راه احمقانه‌ای ;-) اگر این کار را برای www.yahoo.com انجام دهیم: که همان شماره ip برای www.yahoo.com است. نکته بسیار مهم این است که به‌دلیل ضریب اشتباه بسیار بالای آن هیچ‌گاه از این روش استفاده نکنید. نتایج ممکن است کاملا اشتباه باشد که بعدا میگم چرا. ۲- دستور ping را در command prompt صادر کنید: ping domain در این حالت می‌توانم 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 استفاده کنیم. RFC چیست ؟ متون بسیار کامل ولی خشک و ثقیل که در مورد مفاهیم مختلف شبکه بحث می‌کنند. این فایل‌ها به صورت متنی و با پسوند txt هستند و به‌عنوان مرجع (برای مراجعه و نه مطالعه کامل) کاربرد دارند. این فایل‌ها یک‌بار منتشر شده و هرگز تغییر داده نمی‌شوند (حتی اگر حاوی اشتباه باشند.) فایل‌های RFC از کجا قابل دسترسی هستند؟ RFCها از سایت‌های بسیاری قابل دسترس هستند ولی سایت مورد علاقه من برای RFCها، سایت زیر است: http://www.ietf.org/rfc/xxxxxxx.txt که به‌جای xxxxxxx نام rfc موردنظر را می‌نویسیم. مثلا برای دسترسی به rfc791 باید آدرس را به‌ صورت زیر تایپ کنیم: http://www.ietf.org/rfc/rfc791.txt لیست مشهورترین RFCها: +General Information RFC1360 IAB Official Protocol Standards RFC1340 Assigned Numbers RFC1208 Glossary of Networking Terms RFC1180 TCP/IP Tutorial RFC1178 Choosing a Name for Your Computer RFC1175 FYI on Where to Start: A Bibliography of Inter-networking Information RFC1173 Responsibilities of Host and Network Managers: A Summary of the Oral Tradition of the Internet RFC1166 Internet Numbers RFC1127 Perspective on the Host Requirements RFCs RFC1123 Requirements for Internet Hosts—Application and Support RFC1122 Requirements for Internet Hosts—Communication Layers RFC1118 Hitchhikers Guide to the Internet RFC1011 Official Internet Protocol RFC1009 Requirements for Internet Gateways RFC980 Protocol Document Order Information +TCP and UDP RFC1072 TCP Extensions for Long-Delay Paths RFC896 Congestion Control in IP/TCP Internetworks RFC879 TCP Maximum Segment Size and Related Topics RFC813 Window and Acknowledgment Strategy in TCP RFC793 Transmission Control Protocol RFC768 User Datagram Protocol +IP and ICMP RFC1219 On the Assignment of Subnet Numbers RFC1112 Host Extensions for IP Multicasting RFC1088 Standard for the Transmission of IP Datagrams over NetBIOS Networks RFC950 Internet Standard Subnetting Procedure RFC932 Subnetwork Addressing Schema RFC922 Broadcasting Internet Datagrams in the Presence of Subnets RFC9l9 Broadcasting Internet Datagrams RFC886 Proposed Standard for Message Header Munging RFC815 IP Datagram Reassembly Algorithms RFC814 Names, Addresses, Ports, and Routes RFC792 Internet Control Message Protocol RFC791 Internet Protocol RFC781 Specification of the Internet Protocol (IP) Timestamp Option +Lower Layers RFC1236 IP to X.121 Address Mapping for DDN RFC1220 Point-to-Point Protocol Extensions for Bridging RFC1209 Transmission of IP Datagrams over the SMDS Service RFC1201 Transmitting IP Traffic over ARCNET Networks RFC1188 Proposed Standard for the Transmission of IP Datagrams over FDDI Networks RFC1172 Point-to-Point Protocol Initial Configuration Options RFC1171 Point-to-Point Protocol for the Transmission of Multiprotocol Datagrams over Point-to-Point Links RFC1149 Standard for the Transmission of IP Datagrams on Avian Carriers RFC1055 Nonstandard for Transmission of IP Datagrams over Serial Lines: SLIP RFC1044 Internet Protocol on Network Systems HYPERchannel: Protocol Specification RFC1042 Standard for the Transmission of IP Datagrams over IEEE 802 Networks RFC1027 Using ARP to Implement Transparent Subnet Gateways RFC903 Reverse Address Resolution Protocol RFC895 Standard for the Transmission of IP Datagrams over Experimental Ethernet Networks RFC894 Standard for the Transmission of IP Datagrams over Ethernet Networks RFC893 Trailer Encapsulations RFC877 Standard for the Transmission of IP Datagrams over Public Data Networks +Bootstrapping RFC1084 BOOTP Vendor Information Extensions RFC951 Bootstrap Protocol RFC906 Bootstrap Loading Using TFTP +Domain Name System RFC1101 DNS Encoding of Network Names and Other Types RFC1035 Domain Names—Implementation and Specification RFC1034 Domain Names—Concepts and Facilities RFC1033 Domain Administrators Operations Guide RFC1032 Domain Administrators Guide RFC974 Mail Routing and the Domain System RFC920 Domain Requirements RFC799 Internet Name Domains +File Transfer and File Access RFC1094 NFS: Network File System Protocol Specification RFC1068 Background File Transfer Program (BFTP) RFC959 File Transfer Protocol RFC949 FTP Unique-Named Store Command RFC783 TFTP Protocol (Revision 2) RFC775 Directory Oriented FTP Commands +Mail RFC1341 MIME (Multipurpose Internet Mail Extensions) Mechanisms for Specifying and Describing the Format of Internet Message Bodies RFC1143 Q Method of Implementing Telnet Option Negotiation RFC1090 SMTP on X.25 RFC1056 PCMAIL: A Distributed Mail System for Personal Computers RFC974 Mail Routing and the Domain System RFC822 Standard for the Format of ARPA Internet Text Messages RFC821 Simple Mail Transfer Protocol +Routing Protocols RFC1267 A Border Gateway Protocol 3 (BGP-3) RFC1247 OSPF version 2 RFC1222 Advancing the NSFNET Routing Architecture RFC1195 Use of OSI IS-IS for Routing in TCP/IP and Dual Environments RFC1164 Application of the Border Gateway Protocol in the Internet RFC1163 Border Gateway Protocol (BGP) RFC1136 Administrative Domains and Routing Domains: A Model for Routing in the Internet RFC1074 NSFNET Backbone SPF-Based Interior Gateway Protocol RFC1058 Routing Information Protocol RFC911 EGP ateway under Berkeley UNIX 4.2 RFC904 Exterior Gateway Protocol Formal Specification RFC888 STUB Exterior Gateway Protocol RFC827 Exterior Gateway Protocol (EGP) RFC823 DARPA Internet Gateway +Routing Performance and Policy RFC1254 Gateway Congestion Control Survey RFC1246 Experience with the OSPF Protocol RFC1245 OSPF Protocol Analysis RFC1125 Policy Requirements for Inter-Administrative Domain Routing RFC1124 Policy Issues in Interconnecting Networks RFC1104 Models of Policy-Based Routing RFC1102 Policy Routing in Internet Protocols +Terminal Access RFC1205 Telnet 5250 Interface RFC1198 FYI on the X Window System RFC1184 Telnet Linemode Option RFC1091 Telnet Terminal-Type Option RFC1080 Telnet Remote Flow Control Option RFC1079 Telnet Terminal Speed Option RFC1073 Telnet Window Size Option RFC1053 Telnet X.3 PAD Option RFC1043 Telnet Data Entry Terminal Option: DODIIS Implementation RFC1041 Telnet 3270 Regime Option RFC1013 X Window System Protocol, version 11: Alpha Update RFC946 Telnet Terminal Location Number Option RFC933 Output Marking Telnet Option RFC885 Telnet End of Record Option RFC861 Telnet Extended Options: List Option RFC860 Telnet Timing Mark Option RFC859 Telnet Status Option RFC858 Telnet Suppress Go Ahead Option RFC857 Telnet Echo Option RFC856 Telnet Binary Transmission RFC855 Telnet Option Specifications RFC854 Telnet Protocol Specification RFC779 Telnet Send-Location Option RFC749 Telnet SUPDUP-Output Option RFC736 Telnet SUPDUP Option RFC732 Telnet Data Entry Terminal Option RFC727 Telnet Logout Option RFC726 Remote Controlled Transmission and Echoing Telnet Option RFC698 Telnet Extended ASCII Option +Other Applications RFC1196 Finger User Information Protocol RFC1179 Line Printer Daemon Protocol RFC1129 Internet Time Synchronization: The Network Time Protocol RFC1119 Network Time Protocol (version 2) Specification and Implementation RFC1057 RPC: Remote Procedure Call Protocol Specification: Version 2 RFC1014 XDR: External Data Representation Standard RFC954 NICNAME/WHOIS RFC868 Time Protocol RFC867 Daytime Protocol RFC866 Active Users RFC865 Quote of the Day Protocol, RFC864 Character Generator Protocol RFC863 Discard Protocol RFC862 Echo Protocol Network Management RFC1271 Remote Network Monitoring Management Information Base RFC1253 OSPE version 2: Management Information Base RFC1243 Appletalk Management Information Base RFC1239 Reassignment of Experimental MIBs to Standard MIBs RFC1238 CLNS MIB for Use with Connectionless Network Protocol (ISO 8473) and End System to Intermediate System (ISO 9542) RFC1233 Definitions of Managed Objects for the DS3 Interface Type RFC1232 Definitions of Managed Objects for the DS1 Interface Type RFC1231 IEEE 802.5 Token Ring MIB RFC1230 IEEE 802.4 Token Bus MIB RFC1229 Extensions to the Generic-Interface MIB RFC1228 SNMP-DPI: Simple Network Management Protocol Distributed Program Interface RFC1227 SNMP MUX protocol and MIB RFC1224 Techniques for Managing Asynchronously Generated Alerts RFC1215 Convention for Defining Traps for Use with the SNMP RFC1214 OSI Internet Management: Management Information Base RFC1213 Management Information Base for Network Management of TCP/IP-based Internets: MiB-II RFC1212 Concise MIB Definitions RFC1187 Bulk Table Retrieval with the SNMP RFC1157 Simple Network Management Protocol (SNMP) RFC1156 Management Information Base for Network Management of TCP/IP-based Internets RFC1155 Structure and Identification of Management Information for TCP/IP-Based Internets RFC1147 FYI on a Network Management Tool Catalog: Tools for Monitoring and Debugging TCP/IP Internets and Interconnected Devices RFC1089 SNMP over Ethernet +Tunneling RFC1241 Scheme for an Internet Encapsulation Protocol: Version 1 RFC1234 Tunneling IPX Traffic through IP Networks RFC1088 Standard for the Transmission of IP Datagrams over NetBIOS Networks RFC1002 Protocol Standard for a NetBIOS Service on a TCP/UDP Transport: Detailed Specifications RFC1001 Protocol Standard for a NetBIOS Service on a TCP/UDP Transport: Concepts and Methods +OSI RFC1240 OSI Connectionless Transport Services on Top of UDP: Version 1 RFC1237 Guidelines for OSI NSAP Allocation in the Internet RFC1169 Explaining the Role of GOSIP +Security RFC1244 Site Security Handbook RFC1115 Privacy Enhancement for Internet Electronic Mail: Part III Algorithms, Modes, and Identifiers [Draft] RFC1114 Privacy Enhancement for Internet Electronic Mail: Part II Certificate-Based Key Management [Draft] RFC1113 Privacy Enhancement for Internet Electronic Mail: Part I— Message Encipherment and Authentication Procedures [Draft] RFC1108 Security Options for the Internet Protocol +Miscellaneous RFC1251 Whos Who in the Internet: Biographies of IAB, IESG, and IRSG Members RFC1207 FYI on Questions and Answers: Answers to Commonly Asked Experienced Internet User RFC1206 FYI on Questions and Answers: Answers to Commonly Asked New Internet User Questions چگونگی استفاده از nslookup وقتی که DNS Server یک سایت را به‌دست آورده باشیم (از طریق whois )، به کمک دستور nslookup می‌توان اطلاعاتی اضافی در مورد آن سایت پیدا کرد. طریقه استفاده این دستور به صورت زیر است: فرض کنید که من می‌خواهم از Domain Server سایت خودم (far30.com) اطلاعاتی به‌دست بیارم. اگر به این سایت whois کنم، می‌بینم که دوتا Name Server یا DNS Server دارد: s1.prdev.com s2.prdev.com حالا دیگر آدرس DNS Server مربوط به far30.com را دارم و می‌توانم شروع کنم: ۱- دستور nslookup را در command prompt نوشته و اجرا می‌کنم: C:\>nslookup و نتایج را می‌بینم: *** Cant find server name for address 192.168.20.3: Non-exi... *** Cant 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 باید آدرس DNS Server سایت موردنظر را بنویسم. پس برای سایت far30.com می‌شود: > server s1.prdev.com و جواب می‌شنوم: Default Server: s1.prdev.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.prdev.com] far30.com. SOA s1.prdev.com admin.prdev.com. (2002070412 3600 600 86400 3600) far30.com. A 63.148.227.65 far30.com. NS s1.prdev.com far30.com. NS s2.prdev.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.prdev.com admin.prdev.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 تقسیم‌ می‌کنند. TCP و UDP چیست؟ مدل TCP/IP که برای ارتباط اینترنتی به‌کار می‌رود، می‌توان به لایه‌های مختلفی تقسیم‌بندی کرد که بعدا بیشتر توضیح می‌دم، اما یکی از این لایه‌ها، لایه ارتباط host2host است که خود شامل دو پروتکل است به نامهای TCP و UDP : ۱- (TCP (Transmission Control Protocol : این پروتکل قوی‌تر و قابل اعتمادتر است و اصولا پروتکل مهمتری نسبت به UDP محسوب می‌شود. این پروتکل توانایی بازبینی بسته‌هاو کنترل خطا را هم دارد. ۲- (UDP (User Datagram Protocol : این پروتکل برای کاهش overflow طراحی شده است و در خیلی از موارد وابسته به TCP است. نکته مهم این است که وقتی با یک پورت خاص روی یک کامپیوتر دیگر ارتباط برقرار می‌کنیم، این ارتباط می‌تواند از نوع TCP یا UDP باشد. بنابراین وقتی می‌خواهیم یک کامپیوتر خاصی را از نظر پورت‌ها بررسی کنیم، هردو باید بررسی شود. معمول‌ترین Scanning ها کدامند؟ دو نوع معمول Scanning وجود دارد: ۱- IP Scanning : فرض کنید که شما یک سری IP مربوط به یک ISP خاص را دارید و می‌خواهید بدانید که در این لحظه کدام‌ها فعال (up) هستند تا فقط آنها را بررسی کنید و نه‌ همه را. این موضوع را بعدا توضیح می‌دم ( این کار معمولا موقعی پیش می‌آید که قرار است کلاینت هک کنید و مهم نیست چه کسی باشد ) ۲- Port Scanning : در این حالت ما IP یا IPهای مورد نظر را انتخاب کرده‌ایم و حالا می‌خواهیم بدانیم که کدام پورت‌ها روی آن کامپیوترها باز است. این کار به کمک نرم‌افزارهای خاصی انجام می‌شود که مبحث امروز ماست. چگونه یک ارتباط TCP برقرار می‌شود که بگوییم فلان پورت باز است یا نه؟ برای اینکه تعیین کنیم که یک پورت روی یک سرور باز است یا نه، معمولا باید یک TCP connect scan انجام دهیم. اول این را بگم که Port Scanning انواع مختلف دارد که فعلا ما نوع TCP connect را مدنظر داریم. این نوع اسکن سه مرحله دارد که به آن TCPs 3-way handshakeمی‌گویند: ۱- اول کامپیوتر ما به سمت سرور یک SYN packet می‌فرستد که به معنی درخواست اتصال است. ۲- اگر سرور این درخواست را قبول کند، در مرحله دوم سرور به سمت ما یک SYN/ACK packet می‌فرستد. ۳- در مرحله آخر کامپیوتر ما یک ACK packet به سمت سرور می‌فرستد. نوع دیگری از پورت اسکن TCP SYN scan نام دارد. با توجه به اینکه معمولا اگر پورت اسکن به روش بالا (TCP connect scan) انجام دهیم، معمولا در سرور این اتصال ذخیره خواهد شد و بعدا می‌تواند ما را ردیابی کنند، به جای آن می‌توان از TCP SYN scan استفاده کرد. در این نوع اسکن، مراحل ۱ و ۲ از بالا انجام می‌شود ولی مرحله ۳ نه! اگر در مرحله ۲ به ما یک SYN/ACK برسد، آن پورت باز است و اگر یک RST/ACK برسد، یعنی بسته است. انواع دیگری از پورت اسکنینگ هم وجود دارد مثل UDP scan, TCP Window scan, TCP ACK scan, TCP Null, TCP Xmas Tree, TCP FIN Scan چگونه می‌توان عمل Port scanning را انجام داد؟ در تمام مطالبی که تا این مرحله گفته‌ام سعی کرده‌ام که فقط از ابزارهای موجود در ویندوز استفاده کنم و هیچ ابزار دیگری به‌کار نبرم، اما در مبحث پورت اسکنینگ چون هیچ ابزاری در ویندوز برای این‌ کار نیست، به‌ناچار باید یک سری برنامه را از اینترنت داون‌لود کنید. (توجه داشته باشید که فعلا حرفی از لینوکس نزده‌ام و سعی می‌کنم فعلا هیچ بحثی را در مورد آن مطرح نکنم) برای Port Scanning می‌توان از ابزارهای مختلفی استفاده کرد که اکثرا برای لینوکس طراحی شده‌اند، اما مهم‌ترین پورت اسکنرها برای ویندوز عبارتند از: ۱- نرم‌افزار NMapWin v1.3.0 : نسخه گرافیکی و مخصوص ویندوز برای nmap است (nmap در لینوکس استفاده می‌شود). nmap از کامل‌ترین ابزارهایی است که هکر‌ها استفاده می‌کنند که علاوه بر توانایی انواع پورت اسکنینگ‌ها، می‌تواند کارهای بسیاری چون تشخیص سیستم‌عامل سرور و ... را انجام دهد. این ابزار را بعدا توضیح خواهم داد ولی فعلا برای کار ما بیش‌ از حد کامله ;-) ۲- NetScanTools Pro 2000 : این هم از بهترین‌هاست ولی چون پولی است به‌ جای داون‌لود باید در CD هایی که در بازار هست پیدایش کنید. ۳- WinScan : برای اسکن کردن TCP (ونه UDP) می‌توانید از آن استفاده کنید. من زیاد ازش خوشم نیومد. ۴- ipEye v1.2 : من در این درس از این نرم‌افزار استفاده خواهم کرد، برای داون‌لود آن می‌توانید به سایت http://www.ntsecurity.nu/ مراجعه کنید یا مستقیما با کلیک روی این لینک آن را داون‌لود کنید. لازم است بگویم که این نرم‌افزار فقط در ویندوز ۲۰۰۰ و xp کار می‌کند و نیز در یک بار اجرا فقط یک ip را می‌تواند تست کند. ضمنا فقط TCP را تست می‌کند. چگونه از ipEye برای پورت اسکنینگ استفاده کنیم؟ با تایپ ipEye در command prompt این نتایج ظاهر می‌شود: ipEye 1.2 - (c) 2000-2001, Arne Vidstrom (arne.vidstrom@ntsecurity.nu) - http://ntsecurity.nu/toolbox/ipeye/ Error: Too few parameters. Usage: ipEye -p [optional parameters] ipEye -p [optional parameters] is one of the following: -syn = SYN scan -fin = FIN scan -null = Null scan -xmas = Xmas scan>br> (note: FIN, Null and Xmas scans dont work against Windows systems. [optional parameters] are selected from the following: -sip = source IP for the scan -sp = source port for the scan -d = delay between scanned ports in milliseconds (default set to 750 ms) فرض کنید که می‌خواهیم سایت سازین را از نظر پورت‌ها از پورت ۱ تا ۲۰۰ تست کنیم. اول باید ip آن را به دست بیاوریم که می‌شود، 63.148.227.65 و حالا به کمک دستور زیر آن را بررسی می‌کنیم: ipeye 63.148.227.65 -syn -p 1 200 دقت کنید که 63.148.227.65 عدد ip سازین، syn- یعنی SYN SCAN و p 1 200- یعنی تست از پورت ۱ تا ۲۰۰ باشد. البته پارامترهای دیگری را هم می‌شود ست کرد که فعلا به درد ما نمی‌خورد. با اجرای این دستور به نتایج زیر می‌رسیم: ipEye 1.2 - (c) 2000-2001, Arne Vidstrom (arne.vidstrom@ntsecurity.nu) - http://ntsecurity.nu/toolbox/ipeye/ 1-20 [drop] 21 [open] 22 [closed or reject] 23-24 [drop] 25 [open] 26-52 [drop] 53 [open] 54-79 [drop] 80 [open] 81-109 [drop] 110 [open] 111-142 [drop] 143 [open] 144-200 [drop] 201-65535 [not scanned] Closed یعنی کامپیوتر در آن طرف هست ولی به پورت گوش نمی‌دهد، Reject یعنی اینکه یک firewall هست که اجازه اتصال به آن پورت را نمی‌دهد، Drop یعنی اینکه یک firewall همه‌چیز را پس‌ می‌زند و یا اصلا کامپیوتری اونور نیست، Open هم که یعنی باز. در مورد سازین می‌بینید که از بین پورت‌های ۱ تا ۲۰۰ ، پورت‌های ۲۱، ۲۵، ۵۳، ۸۰، ۱۱۰، ۱۴۳ باز است و می‌توان به‌ آنها telnet کرد. دقت کنید که تا تمام پورت‌هایی که مشخص شده، تست نشده است، هیچ نتیجه‌ای نشان داده نمی‌شود و یه‌کم صبر می‌خواد. ادامه بحث whois قبلا در مورد ip whois و dns whois صحبت کردم. بحث dns whois (کسب اطلاعات در مورد یک domain خاص) رو ادامه می‌دم. در درس قبلی از سایت SamSpade استفاده کردم. اگر این whois رو تست کرده باشید، می‌دانید که برای یک سری از domain (دامنه) ها، جواب نمی‌دهد. مثال آن سایت‌هایی است که دارای دامنه جغرافیایی مثلا ایران هستند، در مورد دامنه‌های جغرافیایی ایران باید گفت که به ir. ختم می‌شوند ( مثلا: neda.net.ir ). مثال دیگری که در whois سایت SamSpade کار نمی‌کند، تعدادی از دامنه‌های org , .net , .com. هستند که در internic.net ثبت نشده‌اند، بلکه در domainpeople.com ثبت شده‌اند ( مثلا sanjesh.org ). چند سال پیش ثبت domain هایی که در گروه org, net, com بودند، مختص به internic.net بود ولی الان دیگر اینطور نیست. کاری که شما باید برای whois کردن باید انجام دهید، توجه به نوع آن domain است که از نوع com است یا ir است یا biz است و ... بعد از آن از یکی از سایت‌های زیر استفاده کنید : ۱- internic.net : برای edu , org , net , com عالی است. برای museum , int , info , coop , biz , arpa, aero هم‌ می‌تواند استفاده شود. صفحه وب مربوطه عبارت‌ است از http://www.internic.net/whois.html یا می‌توانید مستقیما در مرورگر بنویسید: http://www.internic.net/cgi/whois?type=domain&whois_nic=xxxxxxxx که به‌جای xxxxxxxx مثلا باید بنویسید: far30.com ۲- nic.ir : برای ir استفاده می‌شود. صفحه وب مربوطه عبارت‌ است از /http://whois.nic.ir ۳- www.tv : برای cc , info , biz , tv عالی است. صفحه وب مربوطه عبارت‌ است از /http://www.tv یا می‌توانید مستقیما در مرورگر بنویسید: http://www.tv/en-def-8e33e8cf5e3c/cgi-bin/whois.cgi?domain=yyyyyy&tld=zzzz که اگر بخواهم مثلا hack.tv را whois کنم به‌جای yyyyy باید بنویسید hack و به جای zzzz باید بنویسید tv ۴- domainpeople.com : برای name , biz , info , org , net , com عالی است. صفحه وب مربوطه عبارت‌ است از /http://whois.domainpeople.com همانطور که ملاحظه می‌فرمایید، org , net , com در ۱ و ۴ مشترک است. علت آن است که بعضی‌ها در اولی و بعضی‌ها در چهارمی ثبت می‌شوند ولی برای whois کردن فرقی نمی‌کنه که شما از اولی استفاده کنید یا چهارمی چون همدیگر رو ساپورت می‌کنند. ping چیست ؟ ping دستوری است که مشخص می‌کند که آیا یک کامپیوتر خاص که ما ip یا domain آن را می‌دانیم، روشن و فعال (Active) هست یا نه. و اینکه اگر فعال باشد مدت زمان رسیدن بسته‌های tcp/ip از آن کامپیوتر به کامپیوتر ما چقدر است. کاربرد این دستور به صورت زیر است: ping ip-or-domain که به جای ip-or-domain باید شماره ip و یا domain آن(اگر داشته باشد) را می‌گذاریم. مثلا ping prdev.com را در command prompt تایپ کردم و به نتایج زیر رسیدم : Pinging prdev.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 این نتایج نشان می‌دهد که prdev.com فعال است. حالا به کامپیوتری با ip شماره 63.148.227.65 (که همان prdev.com است)، ping می‌کنم. نتایج همان است فقط با تغییراتی در سطر اول. (البته time که معنای مدت زمان رسیدن پکت را می‌دهد، با توجه به ترافیک شبکه، کم و زیاد خواهد شد). برای ping کردن به این ip ، دستور 63.148.227.65 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 یکی از بهترین دستورات برای پیدا کردن ایراد در شبکه است. tracert چیست ؟ tracert ( در یونیکس می‌شود traceroute ) ابزاری است که نشان می‌دهد که یک packet اطلاعاتی از کامپیوتر شما چه مسیری را طی می‌کند و از چه کامپیوترهایی می‌گذرد تا به یک مقصد خاص برسد. مقصد را ما مشخص می‌کنیم و معمولا همان کامپیوتری است که داریم footprinting می‌کنیم. کاربرد این دستور به صورت زیر است: tracert ip-or-domain مثلا می‌خواهم ببینم که از چه کامپیوترهایی باید رد شویم تا به prdev.com برسیم. برای اینکار می‌توان از یکی از دستورهای زیر استفاده کرد: tracert prdev.com tracert 63.148.227.65 به نتیجه زیر رسیدم: Tracing route to prdev.com [63.148.227.65] over a maximum of 30 hops: 1 160 ms 160 ms 160 ms 217.218.84.3 2 381 ms 691 ms 1772 ms 217.218.84.5 3 * * 2324 ms 217.218.77.1 4 201 ms 1101 ms 180 ms 217.218.0.252 5 341 ms 220 ms 180 ms 217.218.0.2 6 1993 ms 180 ms 181 ms 217.218.158.41 7 180 ms 160 ms 160 ms 195.146.63.101 8 2824 ms * * 195.146.32.134 9 1472 ms 1463 ms 871 ms 195.146.33.73 10 791 ms 841 ms 811 ms if-1....eglobe.net [207.45.218.161] 11 1692 ms * 2654 ms if-4-....eglobe.net [207.45.222.77] 12 1282 ms 891 ms 1052 ms if-1-....globe.net [207.45.220.245] 13 902 ms 931 ms 881 ms if-15.....globe.net [66.110.8.134] 14 931 ms 861 ms 871 ms if-8-....leglobe.net [64.86.83.174] 15 901 ms 841 ms 852 ms if-5-.....globe.net [207.45.223.62] 16 841 ms 862 ms 851 ms pos6-.....vel3.net [209.0.227.33] 17 841 ms 842 ms 941 ms so-4-1.....vel3.net [209.247.10.205] 18 882 ms 931 ms 851 ms so-0-1....vel3.net [209.247.11.197] 19 871 ms 891 ms 951 ms gige9....vel3.net [209.247.11.210] 20 1011 ms 851 ms 902 ms unknown.Level3.net [63.208.0.94] 21 852 ms * 882 ms 64.156.25.74 22 961 ms 942 ms 841 ms 63.148.227.65 Trace complete. این نتایج نشان می‌دهد که باید از ۲۲ کامپیوتر بگذرم تا به prdev.com برسم. این اطلاعات همان‌طور که بعدا خواهید دید، حاوی اطلاعات زیادی برای پیدا کردن فایروال‌ها و ... است. (بعضی سطرها رو کوتاه کردم و به‌جاش .... گذاشتم) tracert دارای تعدادی switch است که دوتاش رو توضیح می‌دم: d- == > با استفاده از این سویچ در نتایج حاصله فقط ip ها نمایش داده می‌شود. مثلا می‌نویسیم: tracert prdev.com -d h max-hops- ==> حداکثر تعداد گام‌ها را تعیین می‌کند. حالت پیش‌فرض ۳۰ است. مثلا می‌نویسیم: tracert prdev.com -h 50 از این دستور بعدا بسیار استفاده خواهیم کرد. تکمیل لیست پورت‌ها قبلا در مورد مهمترین پورت‌ها صحبت کردم. حالا یک لیست کامل‌تر را در این درس می‌گم. اگر می‌خواهید یک مرجع نسبتا کامل برای مراجعه داشته باشید، اینجا را کلیک کنید. دقت کنید این درس و نیز لینک بالا هیچ بحثی در مورد تروجان‌ها نمی‌کند زیرا تروجان‌های شناخته شده هم یک سری پورت پیش‌فرض دارند که در جای خود بحث خواهد شد. 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 ادامه بحث telnet telnet هم جزو مواردی است که در footprinting مورد استفاده قرار می‌گیرد. کاربرد آن در حالتیست که بخواهیم بدانیم که روی فلان پورت چه برنامه‌ای فال‌گوش‌ه و version آن چنده. به این صورت که به یک پورت خاص (که می‌دانیم روی آن سرور باز است) تلنت می‌کنیم و بعد می‌بینیم که نتایجی ظاهر می‌شود که نشان‌دهنده اطلاعاتی‌ است که به‌کار می‌رود. گاهی با مکثی طولانی مواجه می‌شویم و هیچ چیزی نمایش داده نمی‌شود، در این حالت یکی دوبار , Ctrl+Z , Ctrl+D , Ctrl+C , Ctrl+break را می‌زنیم و خارج می‌شویم. در مثال پایین جمع‌بندی مواردی که تا حالا از footprinting گفته‌ام را می‌آورم. جمع‌بندی مطالب گفته شده و بررسی یک سایت فرض کنید می‌خواهیم در مورد www.iums.ac.ir اطلاعاتی کسب کنیم : ◊ اول به سایت پینگ می‌کنم و ip آن را به‌دست می‌آورم: 194.225.184.15 ◊ به کمک ip که به‌دست آوردیم، به کمک یک پورت اسکنر پورت‌ها را بررسی می‌کنیم و می‌بینیم که پورت‌هایی مثل ۲۱، ۲۵، ۴۲، ۵۳، ۸۰، ۱۱۰، ۱۱۹، ۱۳۹، ۱۴۳ و ... باز است. ◊ چون domain به ir ختم می‌شود، برای whois کردن از whois.nic.ir استفاده می‌کنم و Name Server آن را به دست می‌آورم که 194.225.184.20 است. ◊ به کمک این Name Server ، یک nslookup می‌کنم و به نتایج زیر می‌رسم: iums.ac.ir. SOA sina.i........0 345600) 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 www.iums.ac.ir. 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.......3456000 345600) تک تک سطرهای این نتایج کاربرد دارد که خواهیم رسید. الان فقط در مورد 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 www.iums.ac.ir portnum نتایج حاصل از بعضی را می‌بینید: 25 : ... 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 استفاده می‌کند. 110 : .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 استفاده می‌کند. 119 : NNTP Service 5.00.0984 Version: 5.0.2195.2966 Posting Allowed و ... یادآوری قبلا گفتم که برای اینکه هکر خوبی بشید، زبان C را باید یاد بگیرید. امروز اولین برنامه اینترنتی خود را به زبان C شروع می‌کنیم.برنامه‌ای که امروز می‌نویسیم، یک پورت اسکنر ساده (Simple Port Scanner) است که acw_spscan.exe نام دارد. acw یعنی Artawill Commandline Windows و spscan یعنی Simple Port Scanner. من سورس این برنامه را با Borland C++ 5.02 کامپایل کردم ولی فکر کنم روی هر نوع کامپایلر C ویندوز کار کند. یک سری نکات در مورد هر برنامه‌ای که با C برای ویندوز خواهم نوشت هست که فقط امروز می‌گم و بعدا دیگه اشاره نخواهم کرد. ۱- هر برنامه‌ای که من می‌نویسم، شامل دو فایل است که باید داون‌لود کنید: فایل اصلی که پسوند C یا CPP دارد و یک فایل به یکی از نامهای acw_sock.h یا agw_sock.h یا acu_sock.h ویا axu_sock.h که با توجه به نوع سیستم‌عامل (ویندوز یا یونیکس) و نوع ظاهر برنامه (خط‌ فرمان یا گرافیکی) یکی از این چهارتا خواهد بود. اگر برنامه برای ویندوز نوشته شده است، باید قبل از کامپایل نهایی فایل WS2_32.LIB را هم به پروژه اضافه کنید. ۲- هر بار که برنامه جدیدی خواهم نوشت فایلی که پسوند h دارد، کامل و کامل‌تر می‌شود، پس هر وقت یک فایل جدید C یا CPP داون‌لود می‌کنید، فایل h مربوطه را هم داون‌لود کنید. ۳- کامپایلر مورد استفاده در برنامه‌های ویندوز Borland C++ 5.02 است. اگر از کامپایلر دیگری استفاده می‌کنید، ممکن است لازم باشد که تغییراتی اعمال کنید. ۴- سورس تمام توابع و برنامه‌ها مشمول کپی‌ رایت است ولی استفاده از توابع در برنامه‌هایتان در صورت عدم اعمال تغییرات در سورس بلامانع است. درباره برنامه Artawill Command-prompt Windows - Simple Prot Scanner = acw_spscan برنامه acw_spscan.exe عمل پورت اسکنینگ را به صورت tcp و udp انجام می‌دهد. همانطوری که از نامش پیداست، برای ویندوز و به‌صورت خط فرمان عمل می‌کند.

  نظرات ()
موضوعات فروش تجهیزات شبکه (٧٩) شبکه (٤۸) سخت افزار (٤٦) ترفند‌های ویندوز (۳۸) هک و امنیت (۳٢) اینترنت (٢٧) ویندوز (۱۸) فناوری (۱۱) تاریخچه و زندگینامه (۱٠) سئو (۸) برنامه نویسی (٧) طراحی وب (٧) موبایل (٧) گرافیک (٦) مقالات کاربردی (٦) لینوکس (۳)
دوستان من فروش تجهیزات شبکه