- خلاصه پروتکلهای مرتبط با E-mail
۱- SMTP :
روی پورت ۲۵ اجرا میشد. از این پروتکل برای ارسال E-mail استفاده میشود. این
پروتکل امروزه دیگه برای خوندن E-mail استفاده نمیشه. این پروتکل بحث امروز
ماست.
۲- POP3 :
این پروتکل را روی پورت ۱۱۰ بحث میکنیم و از آن برای
خواندن E-mail های رسیده استفاده میکنیم.
۳- IMAP :
این پروتکل به
عنوان جایگزینی برای پروتکل POP3 بهکار میره. از نظر ساختاری کمی با پروتکل POP3
متفاوت است ولی کارش همان است و برای خواندن E-mail های رسیده به کار
میرود.
+ Web-based Email: یک روش دیگه برای دسترسی به E-mail وجود دارد و
آن استفاده از امکانات وب برای خواندن و فرستادن E-mail است. وقتی شما از خود سایت
yahoo یا hotmail برای کار با E-mail استفاده میکنید، در واقع همین روش را به کار
میبرید. نکته قابل توجه آن است که این روش کندتر از استفاده مستقیم از
پروتکلهاست.
- پورت ۲۵ چیست؟
پورت ۲۵
برای ارسال E-mail بهکار میرود. این پورت از پروتکل SMTP برای این کار استفاده
میکند. نکته مهم آن است که این پروتکل توانایی خواندن E-mail را ندارد و فقط
میتواند E-mail بفرستد.
حالا سوالی که پیش میآید که چه برنامههایی روی سرور
پورت ۲۵ را باز میکند؟
همانطور که گفتم، SMTP فقط یک پروتکل است (نه یک
برنامه) و از نظر لغوی مخفف عبارت Simple Mail Transfer Protocol است. برنامهای که
پورت ۲۵ را باز میکند تا بتوان از طریق آن E-mail ارسال کنیم، SMTP Server
میگویند. SMTP Server یک عبارت کلی است، برای این نوع برنامهها. حالا خود SMTP
Server انواع مختلف دارد که مشهورترینهایشان، SMail، SendMail، ESMTP MAIL Service
و ... هستند. نکته مهم این است که تفاوت زیادی نیست که سرور مورد نظر ما از کدامیک
از این نرمافزارها استفاده میکند، زیرا اصول کار با آنها یکی است.
برای صحبت
کردن با پورت ۲۵ اول باید یک Server پیدا کنیم که پورت ۲۵ در آن باز باشد (اگرچه در
اکثر سرورها پورت ۲۵ باز است). بعد باید طبق معمول از telnet یا nc برای ارتباط
استفاده کنیم.
پورت ۲۵ از دیدگاه یک هکر چه کاربردی دارد؟
یک هکر از پورت ۲۵
برای ارسال Fake Mail (میل ناشناس، میل تقلبی) استفاده میکند. دلیل آن است که درصد
بسیار بالایی از SMTP Server ها اهمیتی نمیدهند که شما کی هستید و به کی میخواهید
میل بزنید، بلکه فقط کار خود را میکنند.
- چگونه یک
SMTP سرور پیدا کنیم
پیدا کردن SMTP سرور کار سختی نیست. اگرچه از
اکثر SMTP Server ها میتوان به هر کسی E-mail زد ولی من همیشه توصیه میکنم از
SMTP Server ی استفاده کنید که مربوط به به Mail Box قربانی است. برای مثال فرض
کنید که میخواهید به کسی fake mail بزنید و اون شخص mail box اش در یاهو است. در
این حالت من ترجیح میدم که از SMTP Server های سرور یاهو استفاده کنم ( اگرچه از
هر سرور دیگری برای این کار میتونم استفاده کنم ).
اگرچه ما عبارت fake mail
(ناشناس) برای این نوع E-mail ها استفاده میکنیم ولی باید توجه کنید که در مواردی
خاص میشود شما را ردیابی کرد. به عنوان مثال ip شما از مواردی است که همراه با
E-mail ارسال میشود. پس در انتخاب SMTP Server باید دقت کرد (بعضی SMTP Server ها
هستند که حتی ip شما را ارسال نمیکنند و این یعنی نهایت ناشناسی).
نکته بعدی
این است که بعضی SMTP Server ها یه کم باهوش عمل میکنند به طوری که در نهایت
E-mail ارسالی حداقل برای اشخاص حرفهای ماهیتش (fake بودن) قابل تشخیص خواهد بود
(یعنی میفهمند که این یک fake mail است نه یه E-mail واقعی). پس این هم در انتخاب
SMTP Server مهم است که باید از SMTP Server هایی استفاده کنیم که در نهایت حماقت
باشند!
بازم یه نکته دیگه، SMTP Server در نهایت روی یک سرور قرار دارد پس در
نهایت آدرس آن چیزی مثل mail.far30.com، mx01.hotmail.com و ... خواهد بود.
حالا
که معیارهای مهم برای انتخاب SMTP Server را شناختیم، حالا وقتش است که عملا یه
SMTP Server پیدا کنیم:
۱- یکی از سادهترین راهها استفاده از سایتهایی مثل
google است که با جستجوی عبارت SMTP Server هزاران سرور پیدا کنیم.
۲- استفاده
از SMTP Server سایت دانشگاهها. تجربه برام ثابت کرده که این روش یکی از
بهترینهاست.
۳- استفاده از یک سری SMTP Server های مشهور. این روش هم بد
نیست.
حالا روش را عملا نشونتون میدم:
اول باید یک سرور را مشخص کنید که
از طریق آن میخواهید fake mail را بفرستید. همانطور که قبلا گفتم اگر مثلا
میخواهید برای یه نفر که mail box او در یاهو است، fake mail بزنید، سرور را همان
سرور در نظر بگیرید یعنی از خود yahoo.com برای ارسال استفاده کنید.
بعد باید
ببینید که در این سرور کدام subdomain باید استفاده کنید (یعنی اینکه SMTP Server
سرور آدرسش، mail.yahoo.com است یا mx.yahoo.com است یا چیز دیگر). برای این کار دو
روش را میگم:
۱- از nslookup استفاده کنیم:
با nslookup قبلا آشنا شدهاید.
اول باید با whois یک name server پیدا میکردیم و بعد از طریق آن سایت را nslookup
میکردیم (اگر فراموش کردهاید، درس ۵ و ۶ را دوباره بخوانید. مثلا میخواهم SMTP
Server مربوط به far30.com را پیدا کنم. اول یک whois میکنم و میبینم که name
server سایت، s1.sazin.com و s2.sazin.com است. حالا nslookup میکنم و آن سطر هایی
را میخوانم که با نام MX مشخص شده است و ۲ تا آدرس میبینم که عبارتند از
far30.com و mail.far30.com پس SMTP Server های سایت far30.com همین دو آدرس است.
در نتیجه اگر بخواهم از سایت far30.com برای ارسال fake mail استفاده کنم، از این
آدرسها باید بهره گیرم.
۲- استفاده از بعضی سایتهای خاص:
یکی از این
سایتها http://www.mob.net/~ted/tools/mx.php3
است. در این سایت، نام سایت را مینویسید و دکمه lookup را کلیک میکنید. مثلا من
نوشتم yahoo.com و به نتایج زیر رسیدم:
Domain Server: ns.mob.net yahoo.com mail is handled by 5 mx4.mail.yahoo.com. yahoo.com mail is handled by 1 mx1.mail.yahoo.com. yahoo.com mail is handled by 1 mx2.mail.yahoo.com. Domain Server: ns.cw.net yahoo.com mail is handled by 5 mx4.mail.yahoo.com. yahoo.com mail is handled by 1 mx1.mail.yahoo.com. yahoo.com mail is handled by 1 mx2.mail.yahoo.com. ...مشخص است که SMTP Server های سایت yahoo.com عبارتند از: mx1.mail.yahoo.com , mx2.mail.yahoo.com , mx4.mail.yahoo.com
telnet mx1.mail.yahoo.com 25بعد از تایپ دستور، صفحه پاک میشود و جواب میگیرم:
220 YSmtp mta499.mail.yahoo.com ESMTP service ready۳- حالا دستور زیر را مینویسم. دقت کنید که چون از telnet استفاده میکنید، چیزهایی را که تایپ میکنید، نمیبینید و اینکه نمیتونید از دکمه BackSpace استفاده کنید (پس در تایپکردن دقت کنید!):
HELO yahoo.comاین دستور یعنی من از کجا هستم (یعنی شما که میخواهید میل بزنید، کی هستید). اینجا من گفتم که من از سایت yahoo.com هستم!! معمولا مهم نیست که جلوی عبارت HELO نام چه سایتی را بنویسید چون اکثرا چک نمیشود. و جواب میشنوم:
250 mta499.mail.yahoo.com۴- حالا باید مشخص کنم که E-mail فرستنده (یعنی من) چیست. چون میخواهم E-mail از طرف me@hotmail.com به نظر بیاید، مینویسم:
MAIL FROM: <me@hotmail.com>و جواب میگیرم:
250 sender <reza@bedehi.com> ok۵- حالا باید بگم که این E-mail به چه آدرس ارسال شود که در این مثال، target@yahoo.com است. باید بنویسم:
RCPT TO: <target@yahoo.com>و جواب میشنوم:
250 recipient <target@yahoo.com> ok۶- حالا باید بنویسم،
DATAو Enter بزنم و جواب میشنوم:
354 go aheadاینجا وقت تایپ کردن یک سری چیزهای اساسی است. اول مینویسم،
From: abbas akbari <me@hotmail.net>این همان اسمی است که به عنوان Sender یا همان From دیده خواهد شد. من خواستم که به اسم abbas akbari دیده شود. حالا مینویسم:
Subject: arze salamاین هم در آن E-mail به عنوان subject خواهد بود. حالا موارد زیر را مینویسم (که اختیاری است):
MIME-Version: 1.0 Content-Type: text/plain;و بعد دوتا !! Enter زده و متن نامه را مینویسم:
bah bah sam aleikum .دقت کنید که یک کاراکتر . (نقطه) در سطر آخر نوشتم و بعد Enter زدم. با این روش به پورت ۲۵ حالی میکنم که متن نامه تمام شدهاست و نامه ارسال شود. متعاقبا پیغامی میگیرم که بیانگر ارسال E-mail است.
250 ok dirdel۷- مینویسم:
QUITتا ارتباط قطع شود و از telnet خارج بشم.
HELO yahoo.com MAIL FROM: <me@hotmail.com> RCPT TO: <target@yahoo.com> DATA From: abbas akbari <me@hotmail.net> Subject: arze salam MIME-Version: 1.0 Content-Type: text/plain; bah bah sam aleikum . QUITحالا فایل را ذخیره کرده و از دستور زیر استفاده میکنم:
nc -v mx1.mail.yahoo.com 25 < fake.txtهمین!
From: "abbas akbari" <me@hotmail.net> Subject: arze salam bah bah sam aleikumدر mail box ها میتوان تنظیمات را طوری انجام داد که تمام header ها نمایش داده شوند.
From abbas akbari Mon Jan 6 05:56:37 2003 X-Apparently-To: ali1000vali2000@yahoo.com via 216.136.129.53; 06 Jan 2003 05:56:37 -0800 (PST) Return-Path:در این حالت میتوانید ip ارسال کننده را هم ببینید. (سعی کنید که همیشه تنظیمات yahoo mailbox تان به این شکل باشد)Received: from 217.218.84.27 (HELO yahoo.com) (217.218.84.27) by mta576.mail.yahoo.com with SMTP; 06 Jan 2003 05:56:37 -0800 (PST) From: "abbas akbari" <me@hotmail.net> Subject: arze salam MIME-Version: 1.0 Content-Type: text/plain; Content-Length: 19 bah bah sam aleikum