- یه نکته راجع به این درس
دلم میخواست که برای
این درس فقط چند تا لینک معرفی کنم که خودتون برید و درس ftp رو از همون لینکها
یاد بگیرین. دلیلش هم کاملا واضحه! علتش اینه که در مورد این درس خاص اینقدر مقاله
کامل تو اینترنت هست که اگه یه سال هم بشینین هر روز بخونیدشون، تموم نمیشه. ولی به
هر حال به خاطر اینکه قرار شده تمام مطالب مرتبط با هک رو گام به گام همینجا
براتون توضیح بدم، این درس تابلو! رو هم میگم. ولی ازتون میخوام که حتما یک
search بکنین و مقالههای مختلف راجع به این درس رو خودتون هم مطالعه کنید. یاد
گرفتن ftp از نون شب هم واجبتره :)
- پورت ۲۱
چیست؟
پورت ۲۱ رو پورت ftp میگن. ftp مخفف عبارت file transfer
protocol است یعنی پروتکل انتقال فایل. کاربرد این پروتکل و این پورت از زمانی وجود
داره که حتی وب (پورت ۸۰ ) هم چندان عمومی نشده بود. پس میتونم بگم که یه پروتکل
باستانی هستش. وقتی میخواهید با یک سرور از طریق این پروتکل صحبت کنید، باید مطمئن
بشین که سرویس مربوط به ftp روی اون کامپیوتر فعال باشه. به عبارت دیگه باید یک ftp
server روی اون کامپیوتر در حال اجرا باشه. حالا شما با اون کامپیوتر میخواین
ارتباط برقرار کنین، پس شما باید از یک ftp client استفاده کنید. پس شما کلاینت
هستید و دستگاه مقابل سرور!
حالا شاید بپرسین که کار ftp چیست؟
ftp برای
انتقال فایل به کار میره و این انتقال فایل در دو جهت ممکنه که upload و download
گفته میشه. برای اینکه اینها رو قاطی نکنید با هم فرض کنید که کامپیوتر سرور بالای
سر شما قرار گرفته، پس وقتی فایل رو از اون میگیرید، فایل به سمت پایین میآد
(download) و وقتی فایل رو برای سرور میفرستید، حالت برعکس میباشد و بهش میگیم،
upload کردن. و هر دو عبارت نوعی انتقال فایل محسوب میشه. دقت کنید که انتقال فایل
از طریق پروتکلهای دیگهای هم امکانپذیره مثل web و ... ولی ما بحثمون همین
پروتکل ftp است.
عبارت دیگهای که راجع به این پورت باید یاد بگیرید، عبارت
anonymous است. برای توضیح این عبارت اول باید بگم که وقتی شما میخواهید با سرور
ارتباط برقرار کنید، همینطوری کشکی که نیس! برای ارتباط با سرور از شما username و
password پرسیده میشه و اگه درست باشه میتونین فایلها رو upload و download کنید
و تغییر بدید ( پس میبینید که این پروتکل پروتکل حساسی است و اگه هک بشه خیلی
کارها میشه باهاش کرد). این حالت که گفتم در حالتی ممکنه که شما username و
password داشته باشید. اما گاهی پیش میآد که username و password نداریم و
میخوایم با پورت ftp یک سرور یا سایت ارتباط برقرار کنیم. در این حالت معمولا فقط
اجازه download به ما داده میشه و اجازه upload و یا اعمال تغییرات در فایلها رو
نداریم و اونو حالت anonymous یا ناشناس میگن. در این حالت وقتی از ما username
خواسته میشه، عبارت anonymous را تایپ میکنیم و بعد که پسورد پرسیده میشه، شما
باید E-mail تون رو وارد کنید، ولی من میگم که به جای E-mail واقعی تون یه E-mail
الکی بنویسین مثلا alaki@dolaki.com !!
آدرسی که برای ftp با یه سرور استفاده
میکنیم به چه شکلی است؟
آدرسی که استفاده میکنیم بستگی به سرور داره ولی
معمولا ساختار ثابتی داره. ( اگه یادتون باشه واسه web مثلا مینوشتیم،
www.far30.com ) حالا برای ftp مینویسیم، ftp.far30.com پس مثلا برای سایت
sazin.com مینویسیم، ftp.sazin.com که آدرس ftp سایت میشه.
- چطوری یه سرور پیدا کنم که سرویس ftp روی اون فعال
باشه؟
این سوال دو حالت داره:
۱- میخواهید به صورت anonymous
وارد بشین یعنی username و password ندارین. برای این حالت میتونین از خیلی از
سایتها استفاده کنید. مثلا میتونین از ftp.microsoft.com استفاده کنید یا
سایتهای دیگه.
۲- اگه میخواید به صورت غیر anonymous کار کنید، حیطه عملتون
محدود به سایتهایی میشه که username و password واسه اون دارین. مثلا اگه شما
سایتی روی اینترنت داشته باشید ( چه سایت پولی و چه سایت مجانی مثلا در netfirms و
geocities و ... ) به شما یک آدرس ftp و یک username و password تعلق میگیره که از
طریق اون کار میکنید. اگه سایت ندارید، میتونید یک سایت مجانی درست کنید. مثلا
میتونید از سایت geocities.com که متعلق به یاهو است استفاده کنید. یا از سایتهای
netfirms.com یا freeservers.com و... ولی بههر حال در یکی از اینها ثبتنام کنید
و username و password بگیرید. آدرسهای ftp آنها هم که بهصورت ftp.geocities.com
یا ftp.netfirms.com و... خواهد بود. (از من نخواین که طریقه ثبتنام در این
سایتها رو هم به شما یاد بدم! کار خیلی راحتیه.)
-
با پورت ۲۱ صحبت کنیم
فرض کنید من از یک سایت فرضی استفاده میکنم که
آدرس ftp اون باشه: ftp.somesite.com و username من باشه ali1000 و پسوردم هم یه
چیزه دیگه باشه. حالا میخوام از طریق پورت ۲۱ با این سایت ارتباط برقرار کنم. در
مورد این پورت دیگه از nc و telnet استفاده نمیکنم، بلکه از برنامهای که در تمام
ویندوزها هست، به اسم ftp کمک میگیرم. در command prompt مینویسم:
ftp ftp.somesite.comو جواب میشنوم:
Connected to somesite.com. 220 somesite Microsoft FTP Service (Version 5.0). User (somesite.com:(none)):دقت کنید که این سایت ftp server اش از نوع Microsoft است، پس این سرور از سیستمعامل ویندوز استفاده میکنه ( دونستن این نکات لازم نیست، ولی من توصیه میکنم که همیشه به جزئیات توجه کنید) دقت کنید که از من username رو میخواد، پس مینویسم: ali1000 و Enter رو فشار میدم. جواب میآد:
331 Password required for ali1000. Password:حالا ازم پسورد میخواد و پسورد رو تایپ میکنم. جواب میشنوم:
230 User ali1000 logged in. ftp>این نشون میده که تونستم با پورت ۲۱ کامپیوتر مقابل ارتباط برقرار کرده و اصطلاحا یک session یا نشست! باهاش داشته باشم. اگه username یا password اشتباه بود، اون موقع میگفت:
530 User ali1000 cannot log in. Login failed. ftp>من فرض میکنم که session با موفقیت برقرار شده، حالا تایپ میکنم:
ftp> helpو جواب میشنوم:
Commands may be abbreviated. Commands are: ! delete literal prompt send ? debug ls put status append dir mdelete pwd trace ascii disconnect mdir quit type bell get mget quote user binary glob mkdir recv verbose bye hash mls remotehelp cd help mput rename close lcd open rmdirاینها لیست دستوراتی است که میتونید استفاده کنید. من فقط اونهایی که به صورت bold مشخص کردم رو توضیح خواهم داد. بقیه دستورات کمتر به کار میرن.
200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. 12-28-02 02:18AM < DIR> db 12-28-02 02:19AM < DIR> Special 03-08-03 03:18AM < DIR> www 226 Transfer complete. ftp: 135 bytes received in 0.02Seconds 6.75Kbytes/sec.ملاحظه میفرمایید که سه تا فولدر (دایرکتوری) اینجا هست. (اگه با دستور dir آشنا نیستید، یک کتاب داس بخونید). اینها فولدر هستند چون عبارت < DIR> جلوی اونها نوشته شده است. نام این فولدرها عبارتند از db و special و www
cd wwwو جواب میشنوم:
250 CWD command successful. ftp>این جواب به آن معنی است که وارد فولدر (دایرکتوری) www شدهام. حالا دوباره دستور dir را استفاده میکنم و جواب میگیرم:
200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. 12-28-02 02:18AM < DIR> _private 02-17-03 04:15PM 61982 1.jpg 12-28-02 02:19AM < DIR> aspnet_client 12-28-02 02:19AM < DIR> cgi-bin 12-29-02 06:27PM 11285 default.asp 12-28-02 02:19AM < DIR> images 12-28-02 02:18AM 2494 postinfo.html 226 Transfer complete. ftp: 1438 bytes received in 0.28Seconds 5.12Kbytes/sec. ftp>ملاحظه میکنید که سه تا فایل و سه تا دایرکتوری داریم. اونهایی که جلوشون نوشته < DIR> دایرکتوری هستند و اونایی که این عبارت رو ندارند و جلوشون یه عدد نوشته شده ( که بیانگر حجم هر کدومشون هست ) فایل میباشند.
lcd c:/araz
put ali.jpgو جواب میشنوم:
200 PORT command successful. 150 Opening BINARY mode data connection for ali.jpg. 226 Transfer complete. ftp: 21010 bytes sent in 0.02Seconds 1050.50Kbytes/sec. ftp>دستور mput: این دستور چند فایل رو upload میکند، مثلا اگه بخوام همه فایلهای htm که اسمشون با کاراکتر s شروع میشه رو منتقل کنم، میتویسم (البته باید قبلش به حالت ascii تغییر حالت داده باشم):
mput s*.htm+ دستورهای مربوط به download فایل:
get default.aspدستور mget: این دستور چند فایل رو download میکند، مثلا اگه بخوام همه فایلهای htm که اسمشون با کاراکتر s شروع میشه رو منتقل کنم، میتویسم:
mget s*.htm