سفارش تبلیغ
صبا ویژن
کسی که دانشش بر هوایش چیره شود، آن دانش سودمند است . [پیامبر خدا صلی الله علیه و آله]
پاییز 1386 - آرشیو مقالات کامپیوتری
  • پست الکترونیک
  • شناسنامه
  •  RSS 
  • پارسی بلاگ
  • پارسی یار
  • - خلاصه درس: در این درس می‌آموزیم که با پورت ۲۵ (SMTP) ارتباط برقرار کنیم و از آن برای ارسال Fake 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
    اگرچه این روش راحت‌تر به نظر می‌رسد ولی شما را یه انسان مصرفی بار می‌آورد نه خلاق !


    ◊ با پورت ۲۵ صحبت کنیم


    حالا که 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:

    و جواب می‌گیرم:

    250 sender ok

    ۵- حالا باید بگم که این E-mail به چه آدرس ارسال شود که در این مثال، target@yahoo.com است. باید بنویسم:

    RCPT TO:

    و جواب می‌شنوم:

    250 recipient ok

    ۶- حالا باید بنویسم،

    DATA

    و Enter بزنم و جواب می‌شنوم:

    354 go ahead

    اینجا وقت تایپ کردن یک سری چیز‌های اساسی است. اول می‌نویسم،

    From: abbas akbari

    این همان اسمی است که به عنوان 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:

    RCPT TO:

    DATA

    From: abbas akbari

    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"

    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"

    Subject: arze salam

    MIME-Version: 1.0

    Content-Type: text/plain;

    Content-Length: 19



    bah bah

    sam aleikum

    در این حالت می‌توانید ip ارسال کننده را هم ببینید. (سعی کنید که همیشه تنظیمات yahoo mailbox تان به این شکل باشد)

    کوچیک ::: پنج شنبه 86/7/19::: ساعت 3:0 صبح

    - خلاصه درس: در این درس یاد می‌گیریم که با پورت‌ها تعامل داشته باشیم و یاد می‌گیریم که با پورت‌های ۱۳ و ۸ و ۸۰ به کمک telnet و nc صحبت کنیم.


    ◊ شروع کار با پورت‌ها


    الان به جایی رسیده‌ایم که می‌توانیم بحث پورت‌ها را شروع کنیم. اولین نکته‌ای که باید بگم این است که ابزاری که به کمک آن با پورت‌ها صحبت می‌کنیم در همه پورت‌ها یکی است ولی هر پورتی زبان مخصوص خود دارد (درست مثل زبان‌های مختلف در جهان که همشون از طریق زبان و دهان ادا می‌شن ولی هر کدام روش خاصی برای ارتباط برقرار کردن دارند). پس ما برای کار با پورت‌ها باید زبان هرکدام را یاد بگیریم.
    بحث بعدی این است که وقتی می‌گیم یه پورت بازه باید توجه کنید که برنامه‌ای روی آن کامپیوتر نصب شده و اون پورت را باز کرده است (پورت‌ها خود به خود باز نمی‌شوند). یک سری پورت‌ها توسط خود سیستم‌عامل باز می‌شوند (یعنی به محض نصب سیستم‌عامل که خودش هم درواقع یه نرم‌افزاره) و نیازی نیست که برنامه دیگری برایش نصب کنیم. در مقابل، بعضی پورت‌های دیگر توسط برنامه‌های جانبی باز می‌شوند.
    به عنوان مثال وقتی می‌گم که پورت ۲۵ روی یک ip باز است، این معنی را دارد که برنامه‌ای روی اون کامپیوتر خاص وجود دارد که پورت ۲۵ را باز کرده و من وقتی از طریق کامپیوتر خودم با آن پورت کار می‌کنم در واقع دارم با آن برنامه خاص (که اون پورت را باز کرده) صحبت می‌کنم.
    حالا یه سوال پیش می‌آد که چرا اصلا یه نرم‌افزار باید پورت باز کنه و اینکه کدام نرم‌افزارها باید پورت باز کنند؟
    جواب این است که هر برنامه‌ای که بخواهد از طریق شبکه (یعنی از راه دور اصطلاحا remote) قابل دسترس باشه باید یه پورت باز کنه. پس یک برنامه‌ای که نیازی به برقراری ارتباط شبکه‌ای ندارد (مثلا یه نرم‌افزار گرافیکی) نباید و نشاید که پورت باز کند.

    باید ببینیم که از طریق چه برنامه‌ای می‌توان با پورت‌ها صحبت کرد ( البته با هرکدام به روش خودشان )؟
    برای این‌کار از دو نرم‌افزار به نام‌های telnet و nc استفاده می‌کنیم. telnet که در خود سیستم‌عامل وجود دارد و nc را هم که جلسه قبل داون‌لود کردیم.
    حالا چگونه از این دو نرم‌افزارها می‌توان استفاده کنیم؟
    ۱- استفاده از telnet :
    اگر بخواهیم با ip ای به شماره 194.225.184.13 از طریق پورت 25 صحبت کنیم باید بنویسیم:

    telnet 194.225.184.13 25

    و بعد اینکه ارتباط برقرار شد باید شروع کنیم و از طریق زبان پورت ۲۵ با آن صحبت کنیم.
    ۲- استفاده از nc :
    اگر بخواهیم همان کار را با netcat انجام دهیم، باید بنویسیم:

    nc -v 194.225.184.13 25

    و بعد از برقراری ارتباط شروع به صحبت کنیم.


    ◊ با پورت ۱۳ صحبت کنیم


    نام دیگر اون daytime است و کارش هم اینه که زمان و تاریخ رو در اون کامپیوتر به ما می‌ده. این پورت اصولا خیلی سر راسته. فقط کافیه که بهش وصل شیم تا اطلاعاتشون بیرون بریزه. البته این پورت رو خیلی از کامپیوترها بسته است. (یادتون باشه که وقتی می‌توان با یه پورت کار کرد که باز باشد).
    حالا می‌خوایم با پورت ۱۳ از ip شماره 194.225.184.13 صحبت کنم. یکی از این دو دستور را می‌نویسم:

    telnet 194.225.184.13 13
    nc -v 194.225.184.13 13

    البته در آن دستورات به جای عدد ۱۳ می‌توان معادلش را نوشت که daytime است.
    و جواب می‌شنوم:

    11:35:33 AM 10/5/2002

    بله، با این پورت ارتباط برقرار کردیم و اطلاعاتش رو دریافت کردیم. این اطلاعات معمولا به درد این می‌خورد که مکان جغرافیایی اون کامپیوتر را حدس بزنیم (البته اگر زمان اون کامپیوتر صحیح باشد). به عنوان مثال این کامپیوتر خاص در ایران است چون ساعتش همزمان با ایران است.


    ◊ با پورت ۷ صحبت کنیم


    اسم این پورت echo است. من این پورت رو پورت میمون می‌گم چون هرچی که شما براش بنویسید را تقلید می‌کنه و همان‌ها را براتون پس می‌فرستد. مثلا من به پورت ۷ کامپیوتری با ip شماره 194.225.184.13 تلنت یا nc می‌کنم.

    telnet 194.225.184.13 7
    nc -v 194.225.184.13 7

    بعد از برقراری ارتباط، هر چی من بنویسم، اون برام پس می‌فرسته. مثلا اگه تایپ کنم Ali1000 و Enter بزنیم، جواب می‌شنوم، Ali1000 ... خودتون امتحان کنید تا ببینید. برای تمام شدن کار باید دکمه Ctrl+C را فشار دهیم تا این میمون بازی تموم بشه.
    پس کار کردن با این پورت هم زیاد سخت نیست.


    ◊ با پورت ۸۰ صحبت کنیم


    پورت ۸۰ یکی از مهم‌ترین پورت‌هاست. دنیای وب (صفحات اینترنتی) بر اساس همین پورت کار می‌کنه. توضیح اینکه وقتی به یه سایت وصل می‌شیم و صفحه وب را درخواست می‌کنیم، در واقع مرورگر اینترنتی به پورت ۸۰ اون کامپیوتر وصل می‌شه و اطلاعات رو می‌گیره (البته بعد از گرفتن اطلاعات اون رو تفسیر می‌کنه و به صورت یه صفحه نشون می‌ده - دقت کنید که اطلاعات در واقع به صورت یک سری تگ HTML است ). حالا ما می‌خواهیم با پورت ۸۰ یک کامپیوتر صحبت کنیم ولی به کمک telnet و nc.
    اول باید یه connection (اتصال) با پورت ۸۰ برقرار کنیم (مثلا برای سایت hotmail.com باید بنویسم):

    telnet www.hotmail.com 80
    nc -v www.hotmail.com 80

    پس اول باید یکی از دستورات بالا را استفاده کنیم. من همیشه توصیه‌ام استفاده از nc بوده و خواهد بود.
    حالا باید شروع به صحبت با پورت ۸۰ کنیم. من فعلا دو تا جمله براتون می‌گم و بقیه‌اش بمونه واسه بعد. دقت کنید که موقع کار با پورت ۸۰ با تلنت (نه nc) دستوراتی که ما می‌نویسیم، نمایش داده نمی‌شود ولی کار می‌کنه.
    ۱- اولین جمله اینه: GET / HTTP/1.0 و بعدش دوتا Enter
    به فاصله‌ها دقت کنید. دو طرف / ی که بعد از GET است، فاصله وجود دارد. این جمله به پورت ۸۰ می‌گه که هرچی در header داره، نشون بده. و جواب می‌شنوم:

    HTTP/1.0 302 Moved Temporarily
    Server: Microsoft-IIS/5.0
    Date: Thu, 05 Dec 2002 12:02:51 GMT
    Location: http://lc2.law5.hotmail.passport.com/cgi-bin/login
    X-Cache: MISS from cache5.neda.net.ir
    Connection: close


    ۲- دومین جمله اینه: GET / what/ever و بعدش دوتا Enter
    به فاصله‌ها دقت کنید. این دستور باعث میشه که هر چی داره، رو کنه.

    البته توجه کنید که ما مسیر را مشخص نکردیم. بعدها در مورد این مسیر مشخص کردن صحبت خواهم کرد. این حالت که بدون مسیر است خیلی وقت‌ها کار نمی‌کنه (مثل همین مثال !!)


    گاهی پیش می‌آد که یک سری دستورات خاص را همیشه باید پشت‌ سرهم به یه پورت خاص بفرستیم و بخواهیم در وقت صرفه‌جویی کنیم. مثلا همین جمله GET / HTTP/1.0 و دو Enter پشت سرهم که همیشه استفاده می‌کنیم. در این موارد می‌توان این دستورات را در یک فایل تایپ کرد (همراه با Enter ها که باید موقع نوشتن حتما بزنید) و بعد مثلا با نام ali.txt ذخیره کنید و بعد یکی از دستورات زیر را بنویسیم:

    nc -v www.far30.com 80 < ali.txt
    type ali.txt | nc -v www.far30.com 80

    که همان کارهای بالایی را انجام میده.

    کوچیک ::: چهارشنبه 86/7/18::: ساعت 3:0 صبح
    نظرات دیگران: نظر

    - خلاصه درس: NMapWin نرم‌افزار آشنایی است، در این درس با نسخه اصلی و خط‌فرمانی آن که nmap نام دارد، آشنا می‌شویم. در قسمت بعدی با نرم‌افزار netcat آشنا می‌شویم و از آن برای Port Scanning استفاده می‌کنیم.

    ◊ چگونه از nmap استفاده کنیم؟

    قبلا با نرم‌افزار NMapWin آشنا شدید که نسخه گرافیکی nmap برای ویندوز بود. nmap در واقع نرم‌افزار اصلی است که هم برای یونیکس (لینوکس) و هم برای ویندوز نسخه‌هایی را دارد. nmap برخلاف NMapWin، حالت خط فرمانی (command prompt) دارد. در این قسمت می‌خواهیم با nmap مخصوص ویندوز آشنا شویم. برای داون‌لود این نرم‌افزار اینجا را کلیک کنید. (اگر قبلا NMapWin را نصب نکرده‌اید، باید از یک نسخه دیگر از nmap که اصطلاحا nmap installer نام دارد، استفاده کنید. این نسخه nmap را می‌توانید از اینجا داون‌لود کنید. )
    همان‌‌طور که می‌دانید، در نرم‌افزارهای خط فرمانی، باید از پارامترها استفاده کنیم. با توجه به اینکه پارامترهای nmap بسیار زیاد و یادگیری آنها مشکل است، ما برای پیدا کردن پارامترهای درست برای یک عمل خاص ( که معمولا ip scanning یا port scanning است) از NMapWin استفاده می‌کنیم. به این ترتیب که در NMapWin تنظیمات را انجام می‌دهیم و بعد در پایین پنجره آن مشاهده می‌کنید که در قسمت :CMD لیست پارامترها را به دست می‌آوریم. این مراحل را با دو مثال شرح می‌دم:

    ۱- می‌خواهیم برای پورت‌های ۱ تا ۲۰۰ در کامپیوتری که ip آن 63.148.227.65 است، یک پورت اسکننیگ انجام دهیم. برای این‌کار در NMapWin، برگه Scan را درحالت SYN Stealth تنظیم می‌کنیم و Port Range را می‌نویسیم: 200-1 و بعد برگه Discover باید در حالت TCP+ICMP باشد و اگر بخواهیم نوع سیستم‌عامل را هم مشخص کنیم، در برگه Options، گزینه OS detection را در حالت انتخاب شده قرار می‌دهیم. ip را هم در بالای پنجره، 63.148.227.65 می‌نویسیم. حالا آماده اسکن هستیم ولی ما می‌خواهیم این کار را با nmap انجام دهیم، پس فقط باید قسمت CMD را از پایین پنجره ببینید، ملاحظه می‌کنید که نوشته شده:

    CMD: -sS -PT -PI -p 1-200 -O -T 3 63.148.227.65

    با حذف کلمه :CMD به عبارت زیر می‌رسیم:

    -sS -PT -PI -p 1-200 -O -T 3 63.148.227.65

    اینها پارامتر‌هایی است که باید در nmap استفاده کنید. به این صورت که می‌نویسید:

    nmap -sS -PT -PI -p 1-200 -O -T 3 63.148.227.65

    و بعد از اجرای دستور و صبر کردن برای چند دقیقه، نتایج را می‌بینیم.
    بعد از مدتی که با nmap کار کنید، این پارامترها را می‌آموزید و دیگه نیازی به NMapWin نخواهید داشت. مثلا همین O- یعنی OS detection، و 200-p 1 یعنی پورت‌های ۱ تا ۲۰۰ می‌باشد. بعدها خودتان می‌بینید که کار کردن با nmap بسیار دلچسب‌تر از NMapWin است.

    ۲- می‌خواهیم یک ip scanning انجام دهیم برای 195.219.176.0 تا 195.219.176.10 . برای اینکار در NMapWin، در برگه Mode، گزینه Ping Sweep را انتخاب می‌کنیم. در برگه Discovery، گزینه ICMP Ping را انتخاب کرده و در برگه Options، گزینه OS detection را در حالت انتخاب نشده قرار می‌دهیم. برای نوشتن ip ملاحظه می‌فرمایید که 195.219.176 در هر دو مشترک است، پس می‌نویسیم: 10-195.219.176.0 .حالا می‌بینیم که پارامترها به صورت زیر است:

    -sP -PI -T 3 195.219.176.0-10

    پس ما می‌نویسیم:

    nmap -sP -PI -T 3 195.219.176.0-10


    ◊ شروع کار با نرم‌افزار netcat

    اگر یادتون باشه در درس ۱۱ مهم‌ترین ابزاری که یک هکر برای footprinting استفاده می‌کنه را nmap معرفی کردم. حالا می‌خوام مهمترین نرم‌افزاری که یک هکر در کل زندگی‌اش !! استفاده می‌کنه رو معرفی کنم. این نرم‌افزار netcat نام دارد که به‌طور خلاصه nc نامیده میشه ( این nc با اون nc که تو DOS بود فرق می‌کنه). nc بقدری نرم‌افزار مهمی است که حتی یک سری لقب هم دارد. اگر جایی "Pocket Knife of network utilities" یا "TCP/IP Swiss Army Knife" شنیدید، بدونین که منظورشان همین nc است( این نرم‌افزار را به چاقوی جیبی تشبیه می‌کنند ). من فعلا نمی‌خوام یه معرفی کامل از اون بکنم فقط می‌گم که علاوه بر قابلیت‌های عمومی مثل Scanning ها، چیزی که اون رو خیلی معروف کرده یکی عملکرد مشابه ولی بهتر از telnet و دیگری کاربرد اون به‌عنوان هم کلاینت و هم سرور (یه چیزی تو مایه‌های تروجان) است.
    این نرم‌افزار اولین بار برای سیستم‌عامل‌های یونیکس نوشته شد ولی نسخه مخصوص ویندوز هم داره که برای داون‌لود اون اینجا را کلیک کنید. این نسخه فقط در ویندوز‌های NT (مثل Windows2000، Windows XP) کار می‌کنه.
    برای به دست آوردن لیست پارامتر های اون می‌نویسیم:

    nc -help

    و جواب می‌شنویم:

    [v1.10 NT]
    connect to somewhere: nc [-options] hostname port[s] [ports] ...
    listen for inbound: nc -l -p port [options] [hostname] [port]
    options:
    -d detach from console, stealth mode

    -e prog inbound program to exec [dangerous!!]
    -g gateway source-routing hop point[s], up to 8
    -G num source-routing pointer: 4, 8, 12, ...
    -h this cruft
    -i secs delay interval for lines sent, ports scanned
    -l listen mode, for inbound connects
    -L listen harder, re-listen on socket close
    -n numeric-only IP addresses, no DNS
    -o file hex dump of traffic
    -p port local port number
    -r randomize local and remote ports
    -s addr local source address
    -t answer TELNET negotiation
    -u UDP mode
    -v verbose [use twice to be more verbose]
    -w secs timeout for connects and final net reads
    -z zero-I/O mode [used for scanning]
    port numbers can be individual or ranges: m-n [inclusive]

    تا همینجا بماند تا بعدا تک تک پارامتر‌ها رو توضیح می‌دم.


    ◊ استفاده از nc برای port scanning


    برای پورت اسکنینگ قبلا از NMapWin و nmap استفاده کردیم. اما این کار را با nc هم می‌توان انجام داد ( اگرچه من بازهم برای پورت اسکنینگ همان nmap رو توصیه می‌کنم.) برای port scanning با nc باید بنویسید:

    nc -v -z host pornum

    به‌جای host باید ip ) ip ها) یا نام آن (مثلا اسم سایت) را بنویسیم. و به‌جای portnum ، شماره پورت (یا پورت‌ها) را می‌نویسیم. v- یعنی verbose یعنی نتایج با جزئیات نمایش داده شود. z- وقتی استفاده می‌شود که از nc برای scanning استفاده می‌کنیم.
    فرض کنید می‌خواهیم ip ی به شماره 217.66.195.181 را برای پورت‌های ۱ تا ۲۰۰ چک کنم، می‌نویسم:

    nc -v -z 217.66.195.181 1-200

    و جواب می‌شنوم:

    artawill-1dedm4 [217.66.195.181] 143 (imap) open
    artawill-1dedm4 [217.66.195.181] 139 (netbios-ssn) open
    artawill-1dedm4 [217.66.195.181] 135 (epmap) open
    artawill-1dedm4 [217.66.195.181] 119 (nntp) open
    artawill-1dedm4 [217.66.195.181] 80 (http) open
    artawill-1dedm4 [217.66.195.181] 53 (domain) open
    artawill-1dedm4 [217.66.195.181] 25 (smtp) open
    artawill-1dedm4 [217.66.195.181] 21 (ftp) open
    artawill-1dedm4 [217.66.195.181] 19 (chargen) open
    artawill-1dedm4 [217.66.195.181] 17 (qotd) open
    artawill-1dedm4 [217.66.195.181] 13 (daytime) open
    artawill-1dedm4 [217.66.195.181] 9 (discard) open
    artawill-1dedm4 [217.66.195.181] 7 (echo) open

    می‌بینید که پورت‌ها از آخر به اول لیست شده‌اند. و نیز اینکه این نرم‌افزار هم می‌تواند سرویس‌های احتمالی مربوط به هر پورت باز را هم لیست ‌کند.
    اگر می‌خواستم یک سری پورت را که به صورت پشت‌سرهم نیستند، بررسی کنم، باید پورت ها را یکی پس از دیگری با فاصله از هم جدا کنید. مثلا برای بررسی پورت‌های ۲۵، ۸۰ و ۱۱۰ را چک کنم، می‌نویسم:

    nc -v -z 217.66.195.181 25 80 110

    در درس‌های بعدی با کاربردهای بیشتری از nc آشنا خواهیم شد.

    کوچیک ::: سه شنبه 86/7/17::: ساعت 3:0 صبح
    نظرات دیگران: نظر

    - خلاصه درس: بحث IP Scanning را در این جلسه بررسی می‌کنیم.


    ◊ ادامه بحث Footprinting

    در جلسات قبلی درباره footprinting صحبت کردیم، حالا بحث رو ادامه می‌دم.


    ◊ انواع Scanning


    همان طور که قبلا گفتم، Scanning بر دو نوع است:
    ۱- Port Scanning : در این باره بحث کردیم. یک ip خاص رو مدنظر قرار می‌دهیم و از نظر پورت‌ها آن را بررسی می‌کنیم.
    ۲- IP Scanning : بحث امروز ماست. در این اسکنینگ می‌خواهیم بدانیم که از بین یک مجموعه ip ، کدام‌ها up و کدام‌ها down هستند. یعنی کدام ip ها الان قابل دسترسی هستند (یعنی به یه کامپیوتر در اینترنت نسبت داده شده است! )


    ◊ IP Scanning


    IP Scanning به روش‌های مختلف می‌تواند صورت بگیرد:


    ۱- در ساده‌ترین نوع آن، یک پکت از نوع ICMP ECHO به یک ip خاص می‌فرستیم و اگر یک ICMP ECHO REPLAY به سمت ما برگشت، در این صورت آن ip به‌اصطلاح up است. برای این‌کار می‌توان از ابزارهای زیر استفاده کرد:

    الف) استفاده از ping موجود در سیستم‌عامل‌های ویندوز و یونیکس (لینوکس). به صورت زیر:

    ping xxx.xxx.xxx.xxx

    مثلا برای 63.148.227.65 می‌نویسیم:

    ping 63.148.227.65

    اگر در ویندوز این دستور را تایپ کنید و به جواب زیر برسید، یعنی آن ip فعال است:

    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=1402ms TTL=105
    Reply from 63.148.227.65: bytes=32 time=941ms TTL=105

    و اگه به پیغام زیر رسیدید، یعنی فعال نیست:

    Request timed out.
    Request timed out.
    Request timed out.
    Request timed out.

    همان طور که می‌بینید با این دستور در یک لحظه فقط می‌شود، یک ip را تست کرد و این کار ما را کند می‌کند.

    ب) در سیستم‌عامل لینوکس می‌شود از gping استفاده کرد که یک مجموعه ip را به سرعت تست کرد.

    ج) در سیستم عامل ویندوز می‌شود از Pinger استفاده کرد. برای داون‌لود این نرم‌افزار اینجا را کلیک نکنید. Pinger یک نرم‌افزار گرافیکی است و کار ping کردن به یک مجموعه ip را ساده می‌کند.


    در قسمت From و To مشخص می‌کنیم که از کدام ip تا کدام ip را می‌خواهیم ping کنیم. با فشار دکمه Ping لیست ip هایی که up هستند، نمایش داده می‌شود. فرض کنید که ip فعلی شما 195.219.176.88 باشد و بخواهیم بدانیم در کلاس C مربوط به ما چه ip های دیگری up هستند. در این حالت باید 195.219.176.1 تا 195.219.176.254 را ping کنیم.

    د) حالا می‌خواهیم همین کار را با NMapWin انجام دهیم. برای اینکار باید در برگه Scan، قسمت Mode را در حالت Ping Sweep قرار دهید. برگه Discover باید درحالت ICMP Ping باشد و در قسمت Options باید گزینه OS Detection را از حالت انتخاب شده خارج کنید. بعد باید لیست ip ها را تنظیم کنیم، برای اینکار باید در قسمت Host ، لیست ip ها را وارد می‌کنیم. مثلا اگر بخواهیم 195.219.176.1 تا 195.219.176.254 را تست کنیم باید بنویسیم: 24/195.219.176.0 که این 24/ یعنی کلاس C که از ۱ تا ۲۵۵ است. و بعد دکمه Scan را فشار دهیم.

    Host (195.219.176.0) seems to be a subnet broadcast address ...
    RTTVAR has grown to over 2.3 seconds, decreasing to 2.0
    Host (195.219.176.1) appears to be up.
    Host (195.219.176.3) appears to be up.
    Host (195.219.176.5) appears to be up.
    Host (195.219.176.7) appears to be up.
    Host (195.219.176.9) appears to be up.
    Host (195.219.176.11) appears to be up.
    Host (195.219.176.12) appears to be up.
    Host (195.219.176.13) appears to be up.
    Host (195.219.176.14) appears to be up.
    Host H-GVSVY95KXINRJ (195.219.176.15) appears to be up.
    Host (195.219.176.16) appears to be up.
    Host (195.219.176.17) appears to be up.
    Host (195.219.176.18) appears to be up.
    Host (195.219.176.19) appears to be up.
    Host KERYASBA (195.219.176.20) appears to be up.
    Host MARYAM (195.219.176.22) appears to be up.
    Host (195.219.176.23) appears to be up.
    Host (195.219.176.24) appears to be up.
    Host FFX-L2XA0ZM87Q3 (195.219.176.25) appears to be up.
    Host (195.219.176.26) appears to be up.
    Host (195.219.176.27) appears to be up.
    Host (195.219.176.28) appears to be up.
    ,...

    ملاحظه می‌فرمایید که در بعضی موارد اسم کامپیوتر مربوط به ip هم ذکر شده است.


    ۲- در تمام روش‌های بالا، از پکت‌های ICMP برای پینگ استفاده کردیم. در بعضی کامپیوتر‌ها ممکن است پکت‌های ICMP توسط فایروال یا روتر بلاک شوند. در این حالت باید از پورت اسکنینگ برای IP اسکنینگ استفاده کرد! برای این‌کار می‌توان از ابزارهای زیر استفاده کرد:

    الف) در سیستم عامل یونیکس (لینوکس) می‌توان از ابزارهایی مثل hping و icmpenum و ... استفاده کرد. که فعلا بحث ما نیستند.

    ب) در سیستم‌عامل ویندوز، بازهم از NMapWin استفاده می‌کنیم. ولی طوری Port Scanning می‌کنیم که نیاز ما را برای IP Scanning جواب دهد. این‌کار توسط یک سری پورت‌های عمومی صورت می‌گیرد که در اکثر کامپیوتر‌ها باز هستند مثل ۸۰ ، ۲۵ و...
    برای این‌کار در برگه Scan ، قسمت Mode را در حالت Connect تنظیم می‌کنیم و در قسمت Scan Options ، گزینه Port Range را مثلا برای عدد 80 تنظیم می‌کنیم. Discover را در حالت TCP Ping قرار می‌دهیم. و در برگه Option ، گزینه OS Detection را از حالت انتخاب شده خارج می‌کنیم. لیست ip ها را ست کرده و اسکن را شروع می‌کنیم.

    کوچیک ::: دوشنبه 86/7/16::: ساعت 3:0 صبح
    نظرات دیگران: نظر

    - خلاصه درس: در این جلسه با Social Engineering آشنا می‌شویم. یک سری تکنیک‌های مربوط به آن را می‌آموزیم و از یکی از روش‌های آن برای پیدا کردن password مربوط به yahoo ID یک نفر استفاده می‌کنیم.


    ◊ Social Engineering چیست؟


    Social Engineering یا مهندسی اجتماعی، تکنیکی است که بر گول زدن مردم استوار است. در این تکنیک شما با انسان‌ها سر و کار دارید و نه با کامپیوترها. حال اگه یک user رو مثلا گول بزنید، می‌توانید اطلاعات او را مثل پسورد و ... را بدست بیاورید که نمونه‌ای است از Client Hacking و اگه Administer یک سایت را گول بزنید و سایت را هک کنید، نمونه‌ای است از Server Hacking. پس با مهندسی اجتماعی هم می‌شود کلاینت هک کرد و هم سرور. البته چون کلاینت‌ها معمولا user های کم‌سوادتری (از نظر دانش هک) دارند، هک کردن آنها بسیار آسان‌تر است.
    این نکته را هم باید بگم که روش Social Engineering معمولا در مراحل اولیه هک استفاده می‌شود و بعد از آن باید مسیر را عوض کنید و از اطلاعات فنی‌تان برای ادامه کار بهره ببرید.


    ◊ مثال‌هایی از مهندسی اجتماعی


    در اینجا می‌خواهم تعدادی از تکنیک‌های Social Endineering را براتون بگم. البته توجه کنید که اگرچه این روش‌ها اطلاعات فنی زیادی نمی‌خواد ولی معمولا نتایج خوبی داره. و نیز بگم که این روش‌ها خیلی گسترده است و هر بار به شکلی بروز می‌کند. اما نکته مشترکی که من در همه‌شان دیدم اینه که همیشه از شما می‌خواهند که پسوردتان را یک جایی وارد کنید و این دقیقا محلی است که فرق شما رو با یک user معمولی نشون میده. زیرا نباید گول بخورید (-;

    ۱- تلفن زدن :
    یکی از روش‌های مهندسی اجتماعی است. هکر اطلاعاتی از افراد یک شرکت جمع‌آوری می‌کند و بعد با شرکت تماس گرفته و مثلا از فلان فرد می‌خواهد که پسورد را عوض کند. پیشرفته‌ترین متد‌های این نوع هک توسط مشهورترین (و یکی از بهترین) هکرهای تاریخ، Kevin Mitnick اجرا شده است.

    ۲- مخ زدن برای ارسال فایل:
    مثلا با یک نفر چت می‌کنید و می‌گید که بیا عکس منو ببین! و به جای ارسال یک فایل تصویری، یک فایل اجرایی مثلا تروجان براش می‌فرستید. تا این مرحله کار شما به عنوان مهندسی اجتماعی است ولی مابقی (مثلا استفاده از تروجان فرستاده شده) دیگه Social engineering نیست.

    ۳- برای ما E-mail بزنید و ما پسورد E-mail کسی که شما می‌خواهید را براتون پیدا می‌کنیم:
    ممکنه در اینترنت به این نوع پیغام‌ها برخورد کرده‌اید که مثلا می‌گوید:
    " به ما ایمیل بزنید، در سطر اول E-mail کسی که می‌خواهید ما براتون هک کنیم رو بنویسید، در سطر دوم E-mail خودتون رو، سطر آخر هم پسورد E-mail خودتون رو. ما پسورد E-mail ی که در سطر اول مشخص کردید براتون می‌فرستیم. "
    ممکنه عجیب به نظر برسه ولی خیلی‌ها به همین راحتی هک می‌شوند. این دیگه از اون بهتریناش، چون یک تیره و سه نشون. ۲ تا آدرس E-mail برای فرستادن تبلیغات و نیز پسورد E-mail خودتون.

    ۴- فایل ضمیمه (attached) به E-mail را باز کنید:
    مثلا اینکه می‌گوید در این E-mail عکس من attach شده است باز کنید و ببینید. درحالی که فایل attach شده فایل تصویری نیست، بلکه یک فایل آلوده است.

    ۵- ساختن یک صفحه شبیه به سایت‌های مشهور و درخواست login :
    مثلا ساختن یک صفحه شبیه به یاهو برای login درحالی‌که این صفحه برای دزدیدن id و password شماست. در ادامه یک مثال برای این روش را بیان خواهم کرد.

    ۶- و ...


    ◊ یک مثال برای تکنیک شماره پنجم


    من یک همچین صفحه‌ای ساخته‌ام و روی سایت قرار داده‌ام و طریقه استفاده از اون رو براتون توضیح می‌دم:

    ۱- اول یک نگاهی به این صفحه بکنید تا منظورم رو متوجه بشین: http://www.far30.com/onlinetools/yahoo/default.asp
    این صفحه بسیار شبیه به login page یاهو است ولی در واقع یک صفحه برای دزدیدن id و password است.

    ۲- برای ایجاد یک صفحه چنین برای خود در سایت من، اول باید Sign up کنید. برای این‌کار باید به صفحه http://www.far30.com/onlinetools/yahoo/signup.asp مراجعه کنید. اولین صفحه می‌گه که این سایت (یعنی من) مثل همیشه، هیچ مسوولیتی را قبول نمی‌کنم. بعد از کلیک روی لینک، می‌رید به صفحه دوم که از شما می‌خواد یک پسورد دلخواه وارد کنید ( نه پسورد یاهو ). از این پسورد بعدا برای login استفاده خواهید کرد. صفحه آخر یک عدد به شما می‌دهد که باید یادداشت کنید.

    ۳- در همان صفحه آخر که عددی برای شما مشخص می‌کند، دو تا آدرس هم می‌گوید. در مورد آدرس اول مثلا اگه شماره شما ۳۰ باشد، آدرس اول می‌شود: http://www.far30.com/onlinetools/yahoo/default.asp?key=30&forward=xxxxx
    که باید برای کسی که می‌خواهید او را هک کنید باید بفرستید. به جای xxxxx باید آدرس سایتی را بنوبسید که بعد از اینکه شخص مورد نظر گول خورد و این صفحه را پر کرد، در مرحله بعدی به کجا برود. مثلا به یه شخص می‌گویید که بیا در گروه من عضو شو، حالا باید به‌جای xxxxx آدرسی را وارد کنید که به‌صورتی به گروه یاهو مربوط باشد ( تا شخص مورد نظر شک نکند ) مثلا می‌توانید آدرس را به صورت http://www.far30.com/onlinetools/yahoo/default.asp?key=30&forward=groups.yahoo.com
    به او می‌دهید. دقت کنید که در آدرسی که به‌جای xxxxxx می‌نویسید، از //:http استفاده نکنید.

    ۴- آدرس دومی که در همان صفحه ذکر شده است، http://www.far30.com/onlinetools/yahoo/login.asp است که برای دیدن لیست افرادی است که شما هک کرده‌اید. در این صفحه شماره‌ و پسوردتی که در Sign up مشخص شده‌است را نوشته و وارد می‌شوید و می‌‌توانید لیست را ببینید. دقت کنید که ممکن است بعضی‌ها این کلک را متوجه شده باشند و به‌جای id و password براتون بد و بیراه نوشته‌باشند.

    ۵- حالا این id و pass ها رو با یاهو مسنجر تست کرده و وارد شده و برای دوستان فرد هک شده از هم پیغام می‌فرستید تا آنها هم کلک بخورند و این‌ کار را ادامه می‌دهید.


    خدمت شما عرض کنم که این کار در واقع یک نوع کلاینت هکینگ به کمک مهندسی اجتماعی است. به این کار به عنوان یک تفریح نگاه کنید و نه یک هک جدی. در واقع میشه گفت مسخره‌ترین نوع هکی است که من تا حالا دیده‌ام (-;
    و آخرین نکته اینکه از این صفحه عاقلانه استفاده کنید. دوباره می‌گم که مسوولیتی را نمی‌پذیرم.

    کوچیک ::: یکشنبه 86/7/15::: ساعت 3:0 صبح
    نظرات دیگران: نظر

    <      1   2   3   4   5   >>   >
    لیست کل یادداشت های این وبلاگ

    >> بازدیدهای وبلاگ <<
    بازدید امروز: 3
    بازدید دیروز: 18
    کل بازدید :31846

    >>اوقات شرعی <<

    >> درباره خودم <<

    >>لوگوی وبلاگ من<<
    پاییز 1386 - آرشیو مقالات کامپیوتری

    >>آرشیو شده ها<<

    >>جستجو در وبلاگ<<
    جستجو:

    >>اشتراک در خبرنامه<<
     

    >>تبلیغات<<