مبحث یکم : مقدمه و تاریخچه
مبحث دوم: مراحل نفوذ کردن / جلوگیری از نفوذ
مبحث سوم: حملات شبکه ای
مبحث چهارم - کار عملی
مبحث پنجم - DHCP
مبحث ششم - وب و حملات مطرح در آن
مبحث هفتم - حملات DoS
مبحث هشتم - سیستم عامل
مبحث نهم - مهندسی اجتماعی
مبحث دهم - Vulnerability (آسیب پذیری)

تمرین : یک گروه سه نفره ایجاد کنید . آلیس و باب و Eve . در این گروه های سه نفره آلیس با باب سعی میکند ارتباط برقرار کند ، Eve سعی می کند شنود کند . آلیس با باب با استفاده از ncat (و یا استفاده از دستور nc) در backtrack یک ارتباط برقرار می کند .

حال Eve با استفاده از ettercap این ارتباط را شنود می کند . در صورتی که فایروال سیستم مشکل ایجاد می کند آن را Off کنید ( البته اگر در محیط آزمایشی هستید؛ بعد از کار کردن مجددا آن را On کنید)

سعی کنید در حالت text mode کار کنید .

  • ابتدا manual ابزار ettercap را بررسی می کنیم . یکی از حملات آن arp است . با استفاده از این حمله می توان ARP Poisoning انجام داد . اگر بخواهیم با واسط گرافیکی ettercap کار کنیم از دستور ettercap –G استفاده می کنیم . با دستور ettercap –T به حالت text mode می رویم . با استفاده از دستور زیر از حالت text(-T) ، حمله مرد میانی (-m) و سپس طریقه ی انجام حمله (arp) و سپس دو target خود را مشخص می کنیم .

ettercap –T -M arp /192.168.100.52/ / 192.168.100.243/

نکته : هدف را به شکل سه تایی آدرس پورت / آدرس IP / آدرس MAC می نویسیم . مثال 1 : //80 یعنی تمام mac address ها ، تمام IP ها و فقط پورت 80 . مثال 2 : /10.0.0.1/ یعنی هر آدرس MAC و فقط IP با آدرس 10.0.01 و با هر پورتی .

نکته : یکی از مزایای ettercap این است که به محض اینکه Sniff را انجام می دهد اگر کلید q را بزنید سیستم را Re–ARP می کند، یعنی سعی می کند مقادیر درست ARP را بر گرداند .

نکته: حال پس از اجرای دستور بالا می توان بسته هایی که بین Bob و Alice رد وبدل می شود را Sniff کرد . اما اگر به خروجی دستور نگاه کنید داده بسته های sniff شده را به صورت نقطه نمایش می دهد . ettercap زمانی که معادل ASCII کاراکتری را نتواند پیدا کند به صورت نقطه نشان می دهد .

  • برای sniff کردن و MitM انجام دادن در TCP چند نکته وجود دارد . مسائلی مثل وجود Acknowledge و وجود Checksum پیچیدگی هایی را اضافه می کنند . یعنی بسته ای را که در حال Sniff آن هستید باید Ack بسته قبل را درست فراهم کنید ( به خاطر استفاده TCP از تکنیک Piggy backing یعنی یک بسته که می رود ACK بسته قبلی را با خود می برد ) یعنی یک بسته را که Eve می گیرد، در آن ACK بسته Alice هم وجود دارد . در نتیجه بسته ای که به طرف دیگر ارتباط فرستاده می شود اصلا به آن نمی رسد و یا یک در میان می گیرد . یا یک سری محتوای ناخواسته . کاری که باید انجام دهیم این است که به گونه ای پیچیدگی TCP را bypass کنیم . محتوای پیام را عوض می کنیم . مثلا Alice به Bob می گوید . .hello ما آن را به bye عوض می کنیم . آیا این کار در TCP جواب میدهد ؟ خیر چون در بسته ها، CRC برای بررسی صحت داده ها وجود دارد . سیستم مقصد نگاه می کند CRC محاسبه شده توسط خود با CRC موجود در بسته مطابقت ندارد مثلا احتمال دارد نویز بسته را خراب کرده باشد ، پس می گوید بسته را دوباره بفرست و به همین ترتیب دائما بسته مجددا ارسال می شود . اگر بخواهیم تغییر را انجام دهیم باید از فیلترهای موجود در ettercap استفاده کنیم . با استفاده از فیلترها است که میتوان در محتویات بسته ها جست و جو انجام داد ، replace انجام داد و …

نکته : در backtrack فایل به نام etter.filter.examples وجود دارد که مثالهایی از فیلترهای ettercap  در آن وجود دارد . این فایل در مسیر /user/share/ettercap می باشد . درصورتی که در آن مسیر نبود با استفاده از دستور find آن را پیدا کنید .

نکته : می توانید برای جلوگیری از پیچیدگی های TCP، آزمایش و تست خود را در ارتباط UDP انجام دهید. کافی است به دستور nc پارامتر –u را اضافه کنید .

نکته : با استفاده از پارامتر –V می توانیم نحوه نمایش بسته ها را به فرمت های مختلف انتخاب کنیم hex: نمایش به صورت مبنای 16 . ascii نمایش به فرمت ASCII و در صورتی که یک کاراکتر قابل نمایش نباشد آن کاراکتر با نقطه (.) نمایش داده می شود . text نمایش به فرمت ASCII و در صورتی که یک کاراکتر قابل نمایش نباشد ، ignore می شود .

  • پس از اینکه توانستیم ارتباط را sniff کنیم در مرحله بعد برای این که MitM کامل انجام شود می خواهیم داده تبادل شده را تغییر دهیم . این کار را با استفاده از فیلترهای ettercap انجام می دهیم (etterfilter). مثلا می گوییم بسته ای که محتوایش Hello بود آن را با good bye ، replace کن . باید ساختار TCP/IP ، UDP را بدانیم . بحث طول بسته . یعنی Content Length در هر بسته در حال ارسال. اگر طول بسته بگوید 5 بایت، اما داده ما 6 بایت باشد ، ناهمگونی پیش می آید یعنی مقداری که در حال replace آن هستیم باید هم طول با تعداد اصلی باشد ( در UDP)

نکته : اگر درحال حاضر Bobو Alice دستور arp –a را در سیستم خود بزنند باید به جای mac همدیگر ، mac مربوط به Eve در آن قرار داده شده باشد .

نکته : حمله man in the middle می تواند base حمله دیگری به نام Session hijacking باشد . کاری که درآن حمله انجام می شود این است که روال یک ارتباط مثل Sequence number و … را بدست می آوریم . پس حمله کننده خود را جای یک طرف ارتباط قرار می دهد و کاری می کند که آن طرفی از ارتباط که خود را جای آن قرار داده قطع شود ( مثلا بر روی آن DoS انجام می دهد )

اسکرول به بالا