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

بررسی دست تکانی سه مرحله ای با استفاده از wireshark

قبلا نام آن ethereal بود که بعد شد wireshark که آن هم از ابزاری به نام tcpdump  اطلاعاتش را بدست می آورد . tcpdump یک ابزار text mode است . wireshark کار فیلتر و ضبط بسته ها را به صورت راحت تر در اختیار مان قرار می دهد .

حال listen را فعال می کنیم شکل 8 . حال به این سیستم ( مثلا با آی­پی 192.169.100.128 ) که در حال گوش دادن به پورت 3434 است وصل می شویم ( شکل 9)

حال در نرم افزار wireshark می توان بسته هایی که در ارتباط بالا رد وبدل شده است را آنالیز کرد ( شکل 10).

حال می توان یکی از بسته های این ارتباط که برقرار شده است را پیدا کرد . حالا اگر داده هم فرستاده شود wireshark آن را ضبط خواهد کرد ( packetهای مشکی رنگ )

شکل 10

شکل 11

OpenCm(شکل 11) چیست ؟ این نگاشتی است بین اعداد پورتی که گفتم با یک نام (مثل 3434 با یک نام) . در سیستم های مختلف این mapping (نگاشت ) وجود دارد در سیستم های مبتنی بر لینوکس و یونیکس در زیرشاخه /etc/services لیست ها و پورت ها ی که استفاده می شوند لیست شده است . پس OpenCm یک نگاشت است یعنی به جای اینکه بگوید از پورت 3434 به پورت دیگر ، اسم آن را می گوید . از قضا پورت 3434 برای یک سرویس به نام OpenCm است .

توجه : پورت های زیر 1024، well known هستند . پورت هایی هستند که کاربر عادی اجازه listen کردن روی آن را ندارد چون این پورت ها برای سرویس های مشخصی رزرو شده اند . مثلا پورت 80 برای وب سرور است . پس مثلا نمی توانیم با telnet به یک سرور وصل شویم و بگوییم که به پورت 80 گوش بده ، چون کاربر عادی اصلا اجازه ی گوش دادن به پورت 80 را ندارد . در یک لحظه دو Application نمی توانند روی یک پورت listen انجام دهند ( یک Application گوش می کند و مدیریت می کند بین بقیه برنامه ها ). همین اجازه داده نمی شود که برنامه شما پورت های زیر 1024 را به خودش تخصیص دهد . حال چه نتیجه ای می توان گرفت ؟ اگر خواستیم درجایی sniff یا تستی انجام دهیم ، پورت های زیر 1024 را بررسی کنیم . مثلا اگر خواستیم scan بکنیم به جای بررسی 65539 پورت ، 1024 پورت را اسکن می کنیم . چون غالبا سرویس ها را روی آن اجرا می کنند . حال اگر روی بسته ( شکل 4) دوبار کلیک کنید پنجره ای باز می شود که اطلاعاتی را درباره بسته نمایش می دهد . از جمله این اطلاعات ، طول هدر ، flagها ، window size ، checksum و Data ( که در قسمت Data اطلاعات ارسالی قرار می گیرد ) Sequence number ، Number Acknowledge ، Destination Port و Source Port ( شکل 12) هستند.

شکل 12

این بسته نشان دهنده این است که بسته از پورت 3434 به پورت 49317 ارسال شده است .

توجه : mac address آدرس سخت افزاری کارت شبکه است . آیا ثابت است . حالت عادی ثابت است اما می توان آن را تغییر داد . اطلاعات mac address را نیز می توان از بسته بدست آورد . mac address از قسمت های مختلفی تشکیل شده است که هرکدام معنی دارند . مثلا شرکت سازنده و …

حال روی بسته ( مثلا شکل 11) راست کلیک می کنیم و گزینه follow TCP Stream را انتخاب می کنیم . می توانیم ببینیم چه اطلاعاتی رد وبدل شده است و این یک نمونه sniff  است . حمله sniff دو نوع دارد : passive و active . حمله passive این است که نفوذگر یک sniffer  ، run  می کند ( سعی می کند sniffer را در نقاط اساسی شبکه run کند . مثلا کنار gateway در خروجی شبکه و شروع می کند به گوش دادن . و بدون هیچ اثر و نشانی، هر بسته ای که می آید ، یک نسخه را برای خود بر می دارد اصطلاحا ترافیک شبکه را dump می کند ). آیا این نفوذ قابل شناسایی است ؟ راه هایی برای جلوگیری آن وجود دارد اما راهکاری برای تشخیص آن در سیستم عادی نیست . جلوگیری آن چگونه است ؟ این که پورت ها را کنترل کنیم . Port Security قرار دهیم . هر آدرس mac نتواند به هرجا وصل شود . هرکسی نتواند به شبکه وصل شود . هر IP تخصیص داده نشود . نگذاریم هر کسی physical security را تهدید کند (مثلا اینکه کابل خود را به شبکه متصل کند). یکی از مزایایی که در شبکه های LAN نسبت به wireless داریم ، directed  بودن رسانه انتقال است. یعنی محیط انتقال داده هدایت شده است (کابل است). مثل وایرلس در هوا پخش نیست . در وایرلس اگر کسی در شبکه قرار بگیرد می تواند آن را Sniff کند اما در LAN باید به LAN وصل شود . نکته مهم در نوع Passive این است که در یک جای حیاتی و اساسی سیستم ، sniff کنیم .

توجه : اگر اطلاعات رمز نشده باشد کل محتوا را هم می توان دید یکی از دلایلی که از telnet استفاده نمی شود به همین خاطر است .

تمرین : یک سرور داریم که دارای username = test و password=1234 است که با استفاده از telnet می خواهیم به آن وصل شویم . حال به این سرور telnet می کنیم و username و password را نیز وارد می کنیم . در سرور ، wireshark را run  می کنیم و فیلتر tcp.deport==23 را قرار می دهیم . حال به wireshark نگاه می کنیم که چه بسته هایی آمده است . برای مثال یکی از بسته های فیلتر شده را انتخاب و روی آن کلیک راست کرده و گزینه  Follow TCP Stream را می زنیم . همانطور که در شکل 13 می بینید یک سری اطلاعات فرستاده شده است . نقطه ها نشان دهنده ی کاراکترهای غیرقابل چاپ مثل Ctrl + X یا Ctrl + V است.

شکل 13

 یک قسمت از اطلاعات فرستاده شده (دربالای شکل ) مربوط به اطلاعات بنر است (welcome to Microsoft telnet service (به هر سرویسی که می خواهیم وصل شویم یک سری ACK و NACK با همدیگر انجام می دهند . یک سری اطلاعات فرستاده می شود و یک سری اطلاعات دریافت می شود . مثلا اطلاعاتی درباره ی اینکه terminal شما چیست ؟ آیا terminal شما رنگ را تشخیص می دهد و …) چرا عبارت test به صورت tteesstt درآمده است؟ چون یک بار فرستاده شده و یک بار گرفته شده است . سرویس هایی که غالبا ارائه می شوند . نام کاربری را که شما وارد می کنید . مثلا کاراکتر t را می زنید ، کاراکتر t به سمت سرور فرستاده می شود ، تصمیم می گیرد که آیا به شما نشان دهد یا خیر . تصمیم که گرفته شده ، t به شما برگردانده می شود و نمایش داده می شود . البته می توان سیستم را جوری تنظیم کرد که وقتی دستور مثلاً ls را می زنید در آن جا AZ نمایش داده شود ( چون می توان درباره ی echo شدن کاراکتر ها تصمیم گرفت ) پس چرا password دوبار نشان داده نشد ؟ چون password ، echo نمی شود . مشکل پسورد در حالت Clear text این است که به راحتی در شبکه قابل sniff است .

 

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