احسان امجدی
کارشناس امنیت اطلاعات و ارتباطات

حمله FTP Bounce چیست؟ آشنایی یا FTP Bounce Attack

در این نکته میخواهم در رابطه با نوعی از حملات سایبری به نام FTP Bounce صحبت کنم که شاید از لحاظ گستردگی و تعداد در میان حملاموجود در دنیای امروز چندان بچشم نیاید اما بهر حال نوعی از حملات خاص سایبری است و درک آن برای کسانی که میخواهند در این زمینه فعالیت داشته باشند، اجتناب ناپذیر است.در بحث اجرای FTP دو روش وجود دارد:

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
سرفصل های این مطلب
  1. Active mode
  2. Passive mode
  1. Active FTP
  2. Passive FTP

در این قسمت به عنوان بخش اول موضوع قصد داریم تا در رابطه با این دو روش و تفاوت هایشان صحبت کنیم.خوب همانطور که در بالا هم گفته شد، Active و Passive دو روش موجود در اجرای FTP هستند. FTP از دو کانال بین کلاینت و سرور استفاده میکند:

  1. Command channel
  2. Data channel

این دو کانال از کانکشن های TCP جدا و مستقل از هم استفاده میکنند. Command channel مخصوص دستورات و پاسخ های مربوط به آن ها میباشد و در طرف مقابل Data channel صرفا به منظور انتقال فایل ها مورد استفاده قرار میگیرد. ارسال دستورات به سرور بدون الزام به انتظار برای اتمام انتقال دیتای فعلی، به نظر روشی جذاب میرسد که از طریق استقلال این دو کانال از هم صورت پذیرفته است.در مدل Active، کلاینت برقرار کننده Command channel است (از کلاینت پورت X به سرور پورت 21) و سرور وظیفه ایجاد Data channel را بر عهده دارد (از سرور پورت 20 به کلاینت پورت Y و Y را خود کلاینت تعیین میکند).

در مدل Passive، هر دو کانال را خود کلاینت برقرار میکند. در این حالت، سرور به کلاینت میگوید که باید از چه پورتی برای Data channel استفاده شود. مدل Passive عموما در موقعیت هایی استفاده میشود که سرور FTP قادر به برقراری Data channel نیست. یکی از مهمترین دلایل چنین رخدادی وجود فایروال ها در شبکه است. شما این اختیار را دارید تا در فایروال رولی مبنی بر باز گذاشتن کانال های FTP به ftp.microsoft.com بنویسید، اما در مقابل سرورهای مایکروسافت چنین قدرت و اختیاری را ندارند تا در فایروال شما مسیر برگشت Data channel را باز بگذارند. در مدل Passive این موضوع با باز گذاشتن مسیر هر دو نوع کانال از طرف کلاینت حل شده است.به منظور روشن شدن بیشتر موضوع در زیر خلاصه صحبت های بالا را بصورت تیتروار بیان کردم.

Active mode

  • کلاینت Command channel را از پورت 2000 به پورت 21 سرور باز میگذارد.
  • کلاینت پورت 2001 را به سرور ارسال میکند و سرور آن را از طریق Command channel که در مرحله قبل ایجاد شده بود، تائید میکند.
  • سرور Data channel را از پورت 20 خودش به پورت 2001 کلاینت باز میکند.
  • کلاینت تائیدیه آن را بر روی Data channel که در مرحله قبل ایجاد شد، میفرستد.
وب سایت توسینسو

Passive mode

  • کلاینت Command channel را از پورت 2000 به پورت 21 سرور باز میگذارد.
  • کلاینت بر روی بستر Command channel عبارت PASV را برای سرور ارسال میکند.
  • سرور پس از شروع شنود بر روی پورت 1234، بر روی همان بستر Command channel این پورت را برای کلاینت میفرستد.
  • کلاینت Data channel را از پورت 2001 خودش به پورت 1234 سرور ایجاد میکند.
  • سرور بر روی Data channel تائیدیه را ارسال میکند.

در این لحظه هر دو کانال Data و Command باز هستند.

وب سایت توسینسو

نکته: به یاد داشته باشید که استفاده از پورت های 21 و 22 فقط یک قرارداد در ارتباط FTP است (این قرارداد جهانی است و در اکثر موارد از این پورت ها استفاده میشود) و در صورت لزوم میتوان بجای آن ها و دیگر پورت های مثال زده شده در این نکته (پورت های 2000، 2001 و 1234) از پورت های قراردادی دیگری استفاده کرد.

سربلند و مانا باشید.

نویسنده: احسان امجدی

منبع: انجمن تخصصی فناوری اطلاعات ایران

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.


احسان امجدی
احسان امجدی

کارشناس امنیت اطلاعات و ارتباطات

احسان امجدی ، مشاور امنیت اطلاعات و ارتباطات و تست نفوذ سنجی ، هکر کلاه سفید ، مدرس دوره های تخصصی امنیت اطلاعات و شبکه ، تخصص در حوزه های سرویس های مایکروسافت ، Routing و Switching ، مجازی سازی ، امنیت اطلاعات و تست نفوذ ، کشف جرائم رایانه ای و سیستم عامل لینوکس ، متخصص در حوزه SOC و ...

نظرات