PDA

نسخه کامل مشاهده نسخه کامل : خلاصه پروتکل‌های مرتبط با E-mail



K053_LSH_KV90
23-08-2005, 10:56
۱- 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 استفاده کنم، از اين آدرس‌ها بايد بهره‌ گيرم.
۲- استفاده از بعضي سايت‌های خاص:
يکي از اين سايت‌ها [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] است. در اين سايت، نام سايت را مي‌نويسيد و دکمه 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
اگرچه اين روش راحت‌تر به نظر مي‌رسد ولي شما را يه انسان مصرفي بار مي‌آورد نه خلاق !


- با پورت ۲۵ صحبت کنيم

حالا که SMTP Server دارم مي‌تونم fake mail بزنم.
به عنوان مثال مي‌خواهم به آدرس target@yahoo.com يک fake mail بزنم که شخص فکر کند که Email از آدرس me@hotmal.com آمده است. (دقت کنيد که اين آدرس هر چيزی مي‌تواند باشد. مثلا مي‌توانيد از طرف Bill Gates به يه نفر E-mail بزنيد). و مي‌خواهم Subject آن باشد: arze salam و متن پيغام اين باشد: bah bah sam aleikum
برای اين کار :
۱- چون mail box قرباني در سايت ياهو است، پس من هم بهتر است از SMTP Server خود ياهو استفاده کنم (بهتر است ولي اجباری در آن نيست). SMTP Server های ياهو را در قسمت قبلي به دست آوردم. مثلا از mx1.mail.yahoo.com استفاده مي‌کنم.
۲- بايد از telnet يا nc برای برقراری ارتباط استفاده کنم. الان مي‌خوام از telnet استفاده کنم. پس بايد دستور زير را به‌کار برم (دقت کنيد که از اسم SMTP Serevr استفاده کردم).

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 خارج بشم.

اول توصيه مي‌کنم که يک fake mail واسه خودتون بفرستيد تا ماهيت fake mail را درک کنيد.
مسئله بعدی آن است که در قسمتي target@yahoo.com نوشته شده است، شما بايد اين سطر را تغيير داده و E-mail قرباني خودتان در ياهو را بنويسيد!


- همان کار با nc

برای انجام اين کار با nc اول همان دستورات بالا را در فايلي مثلا به اسم fake.txt مي‌نويسيم :


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
همين!


- Fake mail در صندوق پستي به چه شکلي ظاهر مي‌شود؟

اين قسمت رو در مورد mail box های yahoo و hotmail توضيح مي‌دم.

اينکه اين نوع E-mail ها به چه شکلي ظاهر مي‌شود، بستگي به اين دارد که تنظيمات mail box قرباني در چه حالتي تنظيم شده باشد. در حالت معمول فقط تعدادی از header ها نمايش داده مي‌شود. در اين حالت معمولا fake mail مثل يک E-mail معمولي ديده مي‌شود.

From: "abbas akbari" <me@hotmail.net>
Subject: arze salam

bah bah
sam aleikum
در mail box ها مي‌توان تنظيمات را طوری انجام داد که تمام header ها نمايش داده شوند.
برای اينکار در yahoo از منويي که بالای صفحه است، منوی Mail را باز کرده و گزينه Options را کليک مي‌کنيم. در صفحه‌ای که مي‌آيد، روی گزينه General Preferences کليک کنيد. در صفحه‌ای که مي‌آيد، از قسمت Message در قسمت Headers گزينه ... Show all را انتخاب مي‌کنيم و دکمه Save را از پايين صفحه کليک مي‌کنيم. حالا همان ميل را دوباره باز مي‌کنم و مشاهده مي‌کنم که به شکل زير ظاهر مي‌شود:

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:
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
در اين حالت مي‌توانيد ip ارسال کننده را هم ببينيد. (سعي کنيد که هميشه تنظيمات yahoo mailbox تان به اين شکل باشد)

KING ESFANDIYAR
05-11-2005, 15:02
Mer30 دوست عزيز!!

bimokh
05-10-2008, 11:15
ببخشيد من وقتي ميزنم rcpt to:xxxx@yahoo.com يه پيقام خطا ميده به اين صورت:eror 550....Relaying denied. IP name lookup failed [80.191.138.7 بايد چه كنم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟

bimokh
12-10-2008, 16:19
يعني هيشكي جواب سواله منو نميدونه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟