۰۹-اسفند-۱۳۹۱, ۲۲:۰۵:۲۲
خیلی ها از افرادی که در زمینه کامپیوتری فعالیت میکنند، هکرها را افرادی میبینند که توانایی آن را دارند از طریق حملاتی چون SQLi و امثالهم (که همگی در لایه ۷ از مدل لایه ای شبکه OSI هستند) می توانند یک CMS را هک کنند و تمامی نفوذ را فقط و فقط در سطح همان لایه میبینند. این بار قصد داریم به لایه های پایین تر برویم ! برویم به لایه ۲ از مدل OSI، بله درست حدس زدید قرار است به شرح یک حمله در سطح لایه ۲ که همان پیوند داده ها (Data Link) است بپردازیم.
در سوییچ های لایه ۲ جدولی داریم به نام CAM(Content Addressable Memory) Table که در این جدول اطلاعات شبکه در سطح لایه ۲ نگهداری می شود. قبل از حمله و در حالت عادی در لایه دو، سوییچ هر فریمی را که دریافت می کنند بخش Source MAC از فریم را می خواند و متوجه می شود که برروی پورت دریافتی دستگاهی با چه MAC Address قرار دارد و همچنین مربوط به کدام Vlan است سپس آن را در جدولی که نام بردم CAM(Content Addressable Memory) Table درج میکند. هنگامی که CAM Table تکمیل شد، سوییچ براحتی میتواند بسته های دریافتی را به خروجی مناسب هدایت کند.
با اجرا دستور زیر در سوییچ می توانید جدول را ببینید :
اگر سوییچ فریمی را دریافت کند و MAC Address آن در جدول وجود نداشته باشد، سوییچ مانند Hub عمل میکند و فریم دریافت شده را برروی تمامی پورت های خود ارسال میکند. در شکل زیر بهتر متوجه این عمل خواهید شد، :
سیستم A میخواهد داده ای را برای سیستم B بفرستد ولی پورتی برای آن در جدول تعریف نشده است پس فریم دریافتی را Broadcast میکند. فریم برای سیستم c هم ارسال می شود، ولی چون Des MAC (آدرس mac مقصد) با سیستم c یکسان نیست متوجه خواهد شد که فریم دریافتی متعلق به او نیست بنابراین فریم را از بین خواهد برد.
خوب در تصویر بالا میبینید که بسته ای از سیستم B دریافت شده است، ابتدا Source MAC را میخواند در جدول وجود ندارد پس آن را درج می کند.سپس Des Mac را میخواند که مربوط به سیستم A می باشد و رکوردی برای آن در جدول وجود دارد بنابراین فریم را به خروجی مناسب هدایت میکند. حال که رکوردی برای سیستم B در جدول وجود دارد پس دیگر عمل Broadcast انجام نخواهد شد:
خوب در حالت نرمال پس از گذر از مراحل قبل (Learning) جدول کامل شده است.اگر اطلاعاتی برای سیستمی خاص در شبکه بخواهیم ارسال کنیم چون لایه دو هستیم و با فریم ها سروکار داریم، سوییچ مان تنها MAC Address را می شناسد، بعد از دیافت فریم و خواند بخش Des MAC و جستجوی آن در جدول پورت خروجی مناسب را برای هدایت فریم انتخاب میکند. این روند کار باعث شد تا سوییچ دارای Collision Domain Per Port شود.
حال اگر یک هکر قصد داشته باشد به شبکه مان حمله کند چه اتفاقاتی خواهد افتاد؟ Attacker می داند که حافظه برای ذخیره اطلاعات جدول محدود است، پس با ارسال فریم با Source MAC های جعلی سعی بر پر کردن این جدول میکند(در سوئیچ ۳۷۵۰ در حدود ۶۰۰۰ جای خالی وجود دارد).
هنگامی که جدول سرریز شود دیگر سوییچ مانند هاب عمل کرده و تمامی فریم ها را Broadcast می کند. Attacker چگونه این عمل را انجام میدهد ؟ توسط ابزارهایی که در ادامه یک نمونه آن معرفی می شود سعی بر ایجاد SOurce MAC های جعلی و ارسال سیل آسا آن به سمت سوییچ می کند. زمانی که جدول MAC Address هایمان پر شود و تمامی پورت های آن توسط ترافیک ورودی مشغول شد دیگر آدرس را نمی تواند در جدول خود براحتی پیداکند و مانند هاب عمل خواهد کرد. ابزارهای برای حمله تقریبا ۱۶۰,۰۰۰ فریم در دقیقه می توانند ایجاد کنند و برای سوییچ ارسال کنند که شامل Source,Destination MAC و IP Address بصورت رندوم می باشد.
ابزارهای مختلفی برای حملات لایه ۲ موجود است. همچنین براحتی می توانید توسط port security برروی اینترفیس ها در Cisco IOS و CatOS و … در برابر این نوع حمله محفوظ بمانید.
منبع
در سوییچ های لایه ۲ جدولی داریم به نام CAM(Content Addressable Memory) Table که در این جدول اطلاعات شبکه در سطح لایه ۲ نگهداری می شود. قبل از حمله و در حالت عادی در لایه دو، سوییچ هر فریمی را که دریافت می کنند بخش Source MAC از فریم را می خواند و متوجه می شود که برروی پورت دریافتی دستگاهی با چه MAC Address قرار دارد و همچنین مربوط به کدام Vlan است سپس آن را در جدولی که نام بردم CAM(Content Addressable Memory) Table درج میکند. هنگامی که CAM Table تکمیل شد، سوییچ براحتی میتواند بسته های دریافتی را به خروجی مناسب هدایت کند.
با اجرا دستور زیر در سوییچ می توانید جدول را ببینید :
کد:
DSW1#show mac-address-table
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
All 0014.6922.5440 STATIC CPU
All 0100.0ccc.cccc STATIC CPU
All 0100.0ccc.cccd STATIC CPU
All 0100.0cdd.dddd STATIC CPU
1 0f08.0a01.9b54 DYNAMIC Fa0/1
1 0f08.0a02.42f9 DYNAMIC Fa0/2
Total Mac Addresses for this criterion: 26
سیستم A میخواهد داده ای را برای سیستم B بفرستد ولی پورتی برای آن در جدول تعریف نشده است پس فریم دریافتی را Broadcast میکند. فریم برای سیستم c هم ارسال می شود، ولی چون Des MAC (آدرس mac مقصد) با سیستم c یکسان نیست متوجه خواهد شد که فریم دریافتی متعلق به او نیست بنابراین فریم را از بین خواهد برد.
خوب در تصویر بالا میبینید که بسته ای از سیستم B دریافت شده است، ابتدا Source MAC را میخواند در جدول وجود ندارد پس آن را درج می کند.سپس Des Mac را میخواند که مربوط به سیستم A می باشد و رکوردی برای آن در جدول وجود دارد بنابراین فریم را به خروجی مناسب هدایت میکند. حال که رکوردی برای سیستم B در جدول وجود دارد پس دیگر عمل Broadcast انجام نخواهد شد:
خوب در حالت نرمال پس از گذر از مراحل قبل (Learning) جدول کامل شده است.اگر اطلاعاتی برای سیستمی خاص در شبکه بخواهیم ارسال کنیم چون لایه دو هستیم و با فریم ها سروکار داریم، سوییچ مان تنها MAC Address را می شناسد، بعد از دیافت فریم و خواند بخش Des MAC و جستجوی آن در جدول پورت خروجی مناسب را برای هدایت فریم انتخاب میکند. این روند کار باعث شد تا سوییچ دارای Collision Domain Per Port شود.
حال اگر یک هکر قصد داشته باشد به شبکه مان حمله کند چه اتفاقاتی خواهد افتاد؟ Attacker می داند که حافظه برای ذخیره اطلاعات جدول محدود است، پس با ارسال فریم با Source MAC های جعلی سعی بر پر کردن این جدول میکند(در سوئیچ ۳۷۵۰ در حدود ۶۰۰۰ جای خالی وجود دارد).
هنگامی که جدول سرریز شود دیگر سوییچ مانند هاب عمل کرده و تمامی فریم ها را Broadcast می کند. Attacker چگونه این عمل را انجام میدهد ؟ توسط ابزارهایی که در ادامه یک نمونه آن معرفی می شود سعی بر ایجاد SOurce MAC های جعلی و ارسال سیل آسا آن به سمت سوییچ می کند. زمانی که جدول MAC Address هایمان پر شود و تمامی پورت های آن توسط ترافیک ورودی مشغول شد دیگر آدرس را نمی تواند در جدول خود براحتی پیداکند و مانند هاب عمل خواهد کرد. ابزارهای برای حمله تقریبا ۱۶۰,۰۰۰ فریم در دقیقه می توانند ایجاد کنند و برای سوییچ ارسال کنند که شامل Source,Destination MAC و IP Address بصورت رندوم می باشد.
ابزارهای مختلفی برای حملات لایه ۲ موجود است. همچنین براحتی می توانید توسط port security برروی اینترفیس ها در Cisco IOS و CatOS و … در برابر این نوع حمله محفوظ بمانید.
منبع