-
ترمينولوژی (اصطلاحشناسی) - 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 باشد. حتی اسمهايی مثل
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
که برای اتصال استفاده میکنيد، در نهايت بايد به يک 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 شماره پورت و يا معادل آن از جدول. مثلا برای تلنت کردن به پورت ۱۳ که ساعت و تاريخ را بهدست میدهد در کامپيوتری به اسم
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
مينويسيد: 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 آنرا مشاهده کنيد. [ عجب راه احمقانهای ;-) اگر اين کار را برای
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
انجام دهيم: که همان شماره ip برای
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
است. نکته بسيار مهم اين است که بهدليل ضريب اشتباه بسيار بالای آن هيچگاه از اين روش استفاده نکنيد. نتايج ممکن است کاملا اشتباه باشد که بعدا ميگم چرا. ۲- دستور 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 برای
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
صادر کنيد، جواب همان است. البته برای سايتهای بزرگ جوابهای حاصل متفاوت خواهد بود. ۳- روش بعدی و کاملترين روش whois کردن به بعضی سايتهای خاص است. بعدا اين را کاملتر توضيح میدم ولی فعلا روشش رو میگم. آدرس زير را در مرورگر خود تايپ کنيد:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
که بهجای xxxxxx آدرس مورد نظر را تايپ کنيد. مثلا برای 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 :
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
====> 64.58.76.229 yahoo.com ====> 66.218.71.198 --> روش whois : ...و
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
====> 66.218.71.86 64.58.79.230 و yahoo.com ====> 66.218.71.198 نتايج حاصل گويای آن است که چرا بهتر است از whois استفاده کنيم. RFC چيست ؟ متون بسيار کامل ولی خشک و ثقيل که در مورد مفاهيم مختلف شبکه بحث میکنند. اين فايلها به صورت متنی و با پسوند txt هستند و بهعنوان مرجع (برای مراجعه و نه مطالعه کامل) کاربرد دارند. اين فايلها يکبار منتشر شده و هرگز تغيير داده نمیشوند (حتی اگر حاوی اشتباه باشند.) فايلهای RFC از کجا قابل دسترسی هستند؟ RFCها از سايتهای بسياري قابل دسترس هستند ولی سايت مورد علاقه من برای RFCها، سايت زير است:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
که بهجای xxxxxxx نام rfc موردنظر را مینویسيم. مثلا برای دسترسی به rfc791 بايد آدرس را به صورت زير تايپ کنيم:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
-
ليست مشهورترين 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ها (که برای ---- کردن کامپيوتر است) است. البته خيلی از 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 : من در این درس از اين نرمافزار استفاده خواهم کرد، برای داونلود آن میتوانيد به سايت
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
مراجعه کنيد يا مستقيما با کليک روی اين لينک آن را داونلود کنيد. لازم است بگويم که اين نرمافزار فقط در ويندوز ۲۰۰۰ و xp کار میکند و نيز در يک بار اجرا فقط يک ip را میتواند تست کند. ضمنا فقط TCP را تست میکند. چگونه از ipEye برای پورت اسکنينگ استفاده کنيم؟ با تايپ ipEye در command prompt اين نتايج ظاهر میشود: ipEye 1.2 - (c) 2000-2001, Arne Vidstrom (arne.vidstrom@ntsecurity.nu) -
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
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) -
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
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 هم میتواند استفاده شود. صفحه وب مربوطه عبارت است از
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
يا میتوانيد مستقيما در مرورگر بنويسيد:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
که بهجای xxxxxxxx مثلا بايد بنويسيد: far30.com ۲- nic.ir : برای ir استفاده میشود. صفحه وب مربوطه عبارت است از /http://whois.nic.ir ۳-
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
: برای cc , info , biz , tv عالی است. صفحه وب مربوطه عبارت است از /http://www.tv يا میتوانيد مستقيما در مرورگر بنويسيد:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
که اگر بخواهم مثلا ----.tv را whois کنم بهجای yyyyy بايد بنويسيد ---- و به جای 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 گفتهام را ميآورم. جمعبندي مطالب گفته شده و بررسي يک سايت فرض کنيد ميخواهيم در مورد
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
اطلاعاتي کسب کنيم : ◊ اول به سايت پينگ ميکنم و 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
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
. 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
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
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 انجام میدهد. همانطوری که از نامش پيداست، برای ويندوز و بهصورت خط فرمان عمل میکند. اگر در command prompt تايپ کنيد: acw_spscan ،خطوط زير چاپ میشود: Artawill Command-line Windows SimplePortScanner (acw_spscan.exe) v1.0 Programmed by Araz Samadi, ArtaWill.com Usage: acw_spscan [] بنابراين مثلا اگر بخواهم سايت پی آر دو را (که ip آن 63.148.227.65 است) برای پورتهای ۲۰ تا ۳۰ به صورت tcp اسکن کنم، بايد بنويسم: acw_spscan 63.148.227.65 20 30 tcp و جواب میشنوم: Artawill Command-line Windows SimplePortScanner (acw_spscan.exe) v1.0 Programmed by Araz Samadi, ArtaWill.com >TCP [63.148.227.65] TCP 21 : OPEN [63.148.227.65] TCP 25 : OPEN Simple Port Scanner End. که نشان میدهد، پورتهای ۲۱ و ۲۵ باز است. بررسی سورس برنامه من برای راحتی کار برنامهنويسی شبکه، يک سری تابع تعريف کرده و آنها را در فايل acw_sock.h قرار دادهام که در برنامه اصلی آن را include میکنم. حال به بررسی توابع مورد استفاده در برنامه امروز میپردازم ( اگر خواهان اطلاعات بيشتری هستيد، سورس اين توابع را از فايل acw_sock.h بخوانيد ): ۱- (int arta_win_LoadWinsock(char, char ==> در برنامهنويسی ويندوز قبل از استفاده از سوکت(socket)، بايد WinSock را لود کرد که من اين کار را با اين تابع انجام میدهم. اگر بپرسيد سوکت چيست، میگويم سوکت ارتباطی است از نوع TCP/IP که از پورت خاصی از يک کامپيوتر به سوی يک پورت خاص از يک کامپيوتر ديگر برای رد و بدل کردن دادهها ايجاد میشود. کل برنامهنويسی شبکه به کمک C با استفاده از سوکتهاست. if(arta_win_LoadWinsock(2,0)==-1) arta_commandline_win_DieWithError("ERR: Cannot load WinSock!"); دو خط بالا برای لودکردن WinSock ورژن 2.0 بهکار میرود. ۲- (void arta_win_CleanWinsock(void ==> در آخر برنامه بايد WinSockی را که با دستور بالا ايجاد کردهايم، بهکمک دستور اين قسمت ببنديم: arta_win_CleanWinsock(); ۳- (int arta_win_CreateTcpSocket(void ==> اين تابع يک سوکت از نوع tcp ايجاد میکند. if((sock=arta_win_CreateTcpSocket())==-1) arta_commandline_win_DieWithError("ERR: Cannot Create Socket!"); دو خط بالا برای ايجاد يک سوکت tcp بهکار میرود. ۴- (int arta_win_CreateUdpSocket(void ==> اين تابع يک سوکت از نوع udp ايجاد میکند. if((sock=arta_win_CreateUdpSocket())==-1) arta_commandline_win_DieWithError("ERR: Cannot Create Socket!"); دو خط بالا برای ايجاد يک سوکت udp بهکار میرود. ۵- (void arta_win_CloseSocket(int ==> اين تابع، سوکتی را که با يکی از دو دستور بالا ايجاد کردهايم، میبندد. arta_win_CloseSocket(sock); ۶- void arta_win_CreateServerAddressStructure (* struct sockaddr_in *, unsigned short, char ) ==> اين تابع اطلاعات لازم برای برقراری اتصال را مانند IP, Port میگيرد و در يک structure مخصوص از نوع sockaddr_in قرار میدهد. اين structure در توابع بعدی بهکار میرود. arta_win_CreateServerAddressStructure(&addr,port,I P); ۷- (* int arta_win_EstablishTcpSocketConnection(int, struct sockaddr_in ==> اين تابع sock (که از تابعهای ۳ يا ۴ بهدست آمده) و addr را (که از تابع ۶ حاصل شده) میگيرد و يک ارتباط واقعی tcp تشکيل میدهد. اگر ارتباط بهوجود آمد، پورت باز است وگرنه بسته است. if(arta_win_EstablishTcpSocketConnection(sock, &addr)==-1){ .... } ۸- (* int arta_win_EstablishUdpSocketConnection(int, struct sockaddr_in ==> اين تابع sock (که از تابعهای ۳ يا ۴ بهدست آمده) و addr را (که از تابع ۶ حاصل شده) میگيرد و يک ارتباط واقعی udp تشکيل میدهد. اگر ارتباط بهوجود آمد، پورت باز است وگرنه بسته است. if(arta_win_EstablishUdpSocketConnection(sock, &addr)==-1){ .... } حالا يک توضيح کلی میدم: اولين سطرهای برنامه را بررسی میکنم /* An ArtaWill Production - copyright(c) ArtaWill.com */ /* Programmed by: M.E */ /* This Source code and its Functions can be used - but no .... */ /* Funcions source or code can be done ! */ #include /* for printf(), fprintf() */ #include /* for exit() */ #include /* for strings */ #include "acw_sock.h" void main(int argc, char *argv[]) { struct sockaddr_in addr; char *IP; int sock; int port; int startport, endport; int tcp_udp_both=1; arta_commandline_win_StartMessage("SimplePortScann er ......"); if ((argc != 4) && (argc != 5)) /* Test for correct ...... */ { arta_commandline_win_DieWithError("Usage: acw_spscan []\n"); exit(1); } IP = argv[1]; startport = atoi(argv[2]); endport = atoi(argv[3]); if(argc==5){ if(stricmp(argv[4],"udp")==0){tcp_udp_both=2;} else if (stricmp(argv[4],"both")==0){tcp_udp_both=3;} } if(arta_win_LoadWinsock(2,0)==-1) arta_commandline_win_DieWithError("ERR: Cannot load WinSock!"); اوايل برنامه يهسری توضيحات بعدش يک سری هدر (header) را include کردهام از جمله acw_sock.h را بعدش main شروع میشود و يک سری تعريف متغير داريم که به نوع اين متغير ها دقت کنيد. بعد از روی ورودی خط فرمان، متغيرها ست میشوند. دو سطر آخر هم يک WinSock لود میکند. حالا ادامه: if(tcp_udp_both!=2){ puts(">TCP"); for(port=startport;port<=endport;port++){ printf(" [%s] TCP %5d : Testing... ",IP,port); if((sock=arta_win_CreateTcpSocket())==-1) arta_commandline_win_DieWithError("ERR: Cannot Crea...."); arta_win_CreateServerAddressStructure(&addr,port,I P); if(arta_win_EstablishTcpSocketConnection(sock, &addr)==-1){ printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b.... ...."); } else{ printf("\b\b\b\b\b\b\b\b\b\b\b"); printf("OPEN \n"); } arta_win_CloseSocket(sock); } } اگر قرار باشد که tcp چک شود، اين خطوط اجرا میشوند. در اين سطرها يک اتصال tcp خاص بايد ايجاد شود و اگر اين عمل موفق بود، آن پورت باز است. حالا ادامه برنامه: if(tcp_udp_both!=1){ puts(">UDP "); for(port=startport;port<=endport;port++){ printf(" [%s] UDP %5d : Testing... ",IP,port); if((sock=arta_win_CreateUdpSocket())==-1) arta_commandline_win_DieWithError("ERR: Cannot Cre....!"); arta_win_CreateServerAddressStructure(&addr,port,I P); if(arta_win_EstablishUdpSocketConnection(sock, &addr)==-1){ printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b \b....."); } else{ printf("\b\b\b\b\b\b\b\b\b\b\b"); printf("OPEN \n"); } arta_win_CloseSocket(sock); } } همان کارها را ولی اينبار برای udp انجام میدهد. و حالا آخر برنامه: puts("\n"); arta_commandline_win_EndMessage("Simple Port Scanner"); arta_win_CloseSocket(sock); arta_win_CleanWinsock(); exit(0); } در اينجا پيغام انتهايی چاپ شده و سوکت بسته میشود.
گرفته شده ازسایت:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
نظر یادت نره
-
اگر فكر مي كرده ايد كه ويروسها، برنامه هاي جاسوسي، و هكرها تنها خطرات اينترنت هستند
اشتباه مي كنيد. نوع ديگري از تهديد كامپيوتري وجود دارد كه به طور ساكت و پنهاني عمل
مي كند و اكثر مردم از حضور آنها وقتي آگاه مي شوند كه ديگر خيلي دير شده است . اين تهديدبه روت کيت (rootkit) مشهور است، كه روز به روز توجه به آن بيشتر مي شود و از دنياي يونيكسوارد دنياي ويندوز شده است.
روت کيت چيست؟
روت كيت به هر برنامه اي گفته مي شود كه به روشهاي زير كار ميكند:
1.تهاجمي: روت كيت از طريق يك تظاهر نادرست وارد كامپيوتر مي شود، گاهي با نقاب
يك برنامه ديگر يا از طريق يك نصب ساکت
2.پنهاني: روت كيتها با بهره گيري از تكنيكهاي مختلف خودشان را نه تنها از نظر كاربر پنهان
مي سازند بلكه سعي مي كنند سيستم عامل نيز آنها را شناسايي نكند . سيستم فايل نمي تواندفايلهايي را كه روت كيت را تشكيل مي دهند ببيند، و حتي اگر اين فايلها آشكار باشند، آنها ممكن است رمزنگاري شده باشند يا چندچهره باشند . (به عنوان مثال، آنها خودشان را براي جلوگيري از شناسايي رمزي ميکنند )
3.بي اجازه : وقتي روت كيتها خودشا ن را نصب مي كنند، به اجراي كارهايي ادامه مي دهند كه بهاحتمال زياد شما هيچ وقت دوست نداريد روي بدهند. اين كارها مي تواند شامل ثبت كليدزنيها وارسال آنها به يك شخص ثالث، گروگان گيري داده ها (مثلاً محتويات نهانگاه برنامه مرورگر يا ايميل)،ايجاد تداخل با عمليات عادي كامپيوتر و مانند آن باشد.
بعضي از مردم روت كيت را به عنوان وسيله اي تعريف مي كنند كه خودش يا ساير داده هاي روي يك سيستم را پنهان مي كند، اما اكثر روت كيتهاي موجود، ديگر فقط اسباب بازيهايي نيستند كه بخواهند حضور خود را اثبات كنند. آنها شرارت مي كنند، و اگر با يكي از آنها برخورد كنيد لازماست بدانيد كه عليه چه چيزي بايد اقدام كنيد. كلمهroot در rootkit از دنياي يونيكس آمده است ، كه در آن حساب مدير سيستم را (root ) مينامند. اگر يك خدمات دهنده (server ) يونيكس هك شود ، يا به گونه اي از دنياي خارج به مخاطره بيفتد كه يك كاربر غيرمجاز بتواند به عنوان root فرمان صادر كند، گفتهمي شود كه.« خدمات دهنده روت شده است » مجموعه root اوليه احتمالاً يك مجموعه از برنامه هاي خدماتي معمولي يونيكس به منظور هك كردن بدون به جاي گذاشتن هيچ ردپايي بوده است . در ميان اينها ابزار تغيير دادن كلمه هاي عبور حسابها بود؛ اگر فهرست كلمه هاي عبور به طور پنهاني فاش ميشد،هر كسي مي توانست كامپيوتر مسئله دار را دستيابي کند.
روت كيتها و ويروسها نقاط اشتراك فراواني دارند، به ويژه از لحاظ طرز كار، اما در چگونگي گسترش خود تفاوت مي كنند. روت كيتها معمولاً به گونه اي ساكت روي يك سيستم خاص گسترش مي يابند. چنين سيستمي مي تواند يككامپيوتر حاوي داده هاي حساس باشد كه كسيديگر به دنبال آنهاست (فايلها، كليدزنيها، داده ها،و مانند آن ). در مقابل ، ويروسها آزادانه و بي قاعده گسترش مي يابند و سعي مي كنند كه روي يك سيستم تا جاي ممكن خرابي به بار بياورند . رو تكيتها معمولاً روي يك سيستم جا خوش مي كنند و خيلي زياد منتشر نمي شوند. با اين همه، ويروسها در حال حاضر شروعبه استفاده از سبك پنهان كاري روت كيتها كرده اند و دست كم يك برنامة جاسوسي وجود دارد كه خودش را از نظر كاربر و سيستم عامل با حيله اي به سبك روت كيت پنهان مي سازد
-
عزيز دل من اينا چيه گزاشتي چه ربطي به ويروس نويسي با وي بي داره مطالب خوبي و هم قديمي هم اينكه بيشتر تروجان هستن.
ويروس به يك فايل مخرب براي هعمال كارهاي كه باعث از بين رفتن اطلاعات و يا ربودن انها به كار ميرود .مهمتر بارزه ويروس اين هست كه بتونه توليد مثل و انتشار پيدا كنه كه اينا ندارن
-
خوب عزيز قدم به قدم. تروجان هم از خانواده ويروس ها هستش. در کل باشه مقاله هايه بعدی رو برايه وی بی ميزارم
-
نوشتن ويروس های VbScript برای شروع کار بايد حداقل يکم برنامه نويسی با زبون های هم خانواده با بيسيک (VbScript, Visual Basic ,...) و ديگه کم کم يه زبون برنامه نويسی ديگه رو بلد باشيد. اگر اينطور نيست خوب اشکال نداره قبلا فکر اينجاش رو هم کردم. اول
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
(آموزش VbScript) بعدا بيا شروع کن از همين جا خوندن. هيچی هم نداره فقط ۴ يا ۵ صفحه مطلب مهم داره که اصلا احتياج به تمرين و... هم نيست فقط اون رو بخونيد سرنخ بياد دستتون و بعد شروع کنيد. البته اين سايتم ناکامل موند و نتونستم ادامش بدم ولی ديگه عيب نداره حالا همون چندتا مطلب اولش رو بخونيد بسه. در ضمن اين سايتی رو که ساختم خدايی آخرشه نه؟
۱- اولين گام در ساخت ويروس VbScript
خوب حالا ميايم بحث می کنيم ببينيم اصلا ويروس VbScript چيه؟ شايد شما يک سری از کدهای VbScript رو قبلا در ديده باشيد و يا در صفحات وبلاگتون استفاده کرده باشيد (مثلا برای نمايش پيام خوش آمدگويی و...) ويروس هايی رو که ما می خواهيم با VbScript بنويسيم نيز همون کدها هستند ولی بجای استفاده اونها در صفحات وب اونها رو در فايل هايی با پسوند vbs ذخيره می کنيم. اين نوع ويروس ها خوبيش اينه که ديگه احتياج به کامپايلر نداره يعنی شما کد مورد نظر رو در يک نرم افزار اديت مثل Notepad می نويسيد و با پسوند "vbs" ذخيره می کنيد فايل ايجاد شده مانند يه فايل اجرايی عمل می کنه و تقريبا می تونه خيلی از نيازهای شما رو برآورده کنه (خوش بحال اونايی که حال نصب برنامه های خفن رو ندارن). حالا برای اينکه خوب متوجه بشين يه مثال ميزنم. کد زير رو در notepad کپی کنيد و با پسوند "vbs" ذخيره کنيد و بعد هم اجراش کنيد:
temp = InputBox("Hey, What is your name?",1)
MsgBox "Oh, sorry. Hi "+temp+"."شايد بعضی ها بگن "اين که همون کدهايی است که ما تو سايت يا وبلاگمون استفاده می کنيم, خودش هم که ميگه ميشه اونارو تو صفحات وب هم بکار برد پس حتما ميشه ويروس ها رو توی صفحات وب قرار داد؟" بله تقريبا همونه و حدس شما هم درسته ويروس های نوشته شده با VbScript رو ميشه تو صفحات وب هم بکار برد, اما يسری مشکلات پيش مياد مثلا در صفحات وب اعمالی که ويروس روی سيستم می تونه انجام بده محدوده و برای انجام بقيشون از کاربر اجازه خواسته ميشه و اين يعنی آخر تابلو. ولی اگر همون کد رو در فايلی که گفتم ذخيره کنيد می بينيد که بدون هيچ مشکلی عمليات انجام خواهد شد.
حالا اينجا يه سوال بوجود مياد. من فکر می کنم خيلی ها Visual Basic رو بلدند و خيلی ها هم می توانند تا اندازه لازم اين کدهايی رو که من خواهم نوشت متوجه بشن برای همين هم يادگيری VbScript رو به عهده خدتون گذاشتم. اما اگر شما جور ديگه ای فکر می کنيد برام بنويسيد تا اصلا خود VbScript رو هم با اين آموزش ها همراه کنم.(يکم طولانی تر می شه ولی مطمئنا خيلی بهتر متوجه مطلب می شی) پس حتما نظرت رو بگو! اين زير هم يه نمونه معمولی از کدهای رو گذاشتم ببين اگه از اين سر در مياری مطمئنا بقيه کدها رو هم متوجه ميشی.
Dim Fso, Drives, Drive, Folder, Files, File, Subfolders,Subfolder
Set Fso=createobject("scripting.filesystemobject")
Set Drives=fso.drives
For Each Drive in Drives
If drive.isready then
msgbox drive
end If
Next
-
سلام. خانمها آقايون به خاطر پيام ها نظرات و درخواست های بی کران و بی اندازه و بی نهايت و... (قربونش برم دريغ از ۱ دونه) شما تصميم بر آن شده که آموزش نوشتن ويروس های VbScript به همراه آموزش فرامين VbScriptای باشه که بکار برده می شن. پس ديگه لازم نيست VbScript بلد باشيد
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
. خوب حالا ديگه ميرم سر اصل مطلب: در قسمت قبل ساختار کلی فايل های vbs که ويروس های VbScript در اين قالب هستند رو توضيح دادم و الان بايد ساختار خود ويروس های VbScript رو توضيح بدم.
ساختار کلی ويروس های VbScript
منظور از ساختار اينکه بيايم برسی کنيم ببينيم اصلا يه ويروس VbScript چه کارا می تونه بکنه!
- <LI dir=rtl>دستکاری رجيستری برای اجرای ويروس در هر بار راه اندازی ويندوز
<LI dir=rtl>ارسال خود به ايميل های موجود در آدرس ليست Outlook
<LI dir=rtl>آلوده کردن فايل های ديگر - ساير ترفند ها و ويژگی های متفرقه
ولی توانايی های يه ويروس VbScript به همين جا ختم نميشه بلکه علاوه بر اينا ميشه خيلی کاری ديگه مثل خاموش کردن کامپيوتر و پاک کردن تغيير دادن و يا دستکاری هر نوع فايل روی کامپيوتر ميزبان و... انجام داد که به دلخواه می تونن استفاده بشن يا استفاده نشن. حتی خود شما هم می تونيد ترفند جديدی کشف کنيد. اما مراحل کلی ايجاد يه ويروس اينا هستند که در يه ويروس معمولی وجود دارند ولی هر کدوم از اينها مراحل خاص خودشو داره که توضيح هر کدوم به اندازه يه مقاله وقت می بره. مراحل نوشته شده در بالا ترتيب خاصی ندارن مثلا ميشه اول ويروس فايل های ديگه رو آلوده کنه بعد بياد خودشو از طريق Outlook منتشر کنه و در آخر بياد رجيستری رو دستکاری کنه.
۱- مرحله اول: توضيح نکات اوليه
برای شروع کار بايد با يکی از Objectهای (شئی) کليدی VbScript, که نوشتن اين ويروس ها برپايه اون بنا شده آشنا بشيد. اين شئی به اسم File System Object معروفه و تمام وضايفی چون Copy, Cut, Delete, Move, Create و... فايل ها و اداره فلدرها و درايوها بر عهده اون هست. پس بدون اون يعنی ويروس VbScript = کشک. خوب حالا ميايم به نحوه استفاده از اين Object در VbScript می پردازيم:
در VbScript برای استفاده از اشيا از تابع () CreateObject استفاده می شه. حالا برای استفاده از File System Object به صورت زير عمل می کنيم:
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
متغيری معرفی می کنيم بنام FSO که اون رو با يک File System Object مقدار دهی کرديم يعنی از اين به بعد اون متغير برای ما نماد اين Object (شئی) را دارد. خوب حالا بايد بدانيم اين شئی (يا اينگليسيش يعنی Object ) دارای توابعی (فرامين) است که با استفاده از آنها می توانيم به اداره فايل ها, فلدرها و درايوها بپردازيم. اين مقاله را با مثالی از يکی از فرامين اين شئی که باعث پاک شدن فايل ها می شود به پايان می رسانم:
fso.DeleteFile("C:\Autoexec.bat") 'اين تابع به تنهايی کار برد ندارد بلکه بايد قبل از آن دو خط کد بالا را هم نوشته باشيم
در مقاله بعد شروع کدنويسی ويروس را خواهيم داشت با "دستکاری رجيستری برای اجرا در هر بار راه اندازی ويندوز". ادامه دارد.......
-
---------------- ویرایش شده توسط خودم --------------------
قربونت برم آراز جون که مقالاتت رو همه جا به اسم خودشون کپی می کنن
---------------- ویرایش شده توسط خودم --------------------
یکی از مدیران Delete بفرمایند :19:
-
آقا توروخدا بیخیال شو!!!
اول که اینجا کردی چت روم حالا هم شده کپی سایت ها و وبلاگ های مردم!
اگه سایت یا وبلاگی هست که احساس میکنی به درد میخوره می تونی لینکشو بدی.
درضمن اینجا انجمن برنامه نوسی با vb!!!