حمله DNS Poison

تاریخ انتشار : 1399/04/10 | نویسنده : _SHRoot_

حمله DNS Poison

در این مطلب به بررسی یک نمونه از نحوه اجرای حمله DNS poison می پردازیم.

حمله DNS poison چیست؟

در حملات سایبری، به دسته ای از حملات که در آن مهاجم از طریق protocol: DNS ترافیک های درخواستی قربانی را از مسیر اصلی و سایت مقصد، منحرف کرده و در عوض قربانی را به صفحه مخربی که خود آن را میزبانی می نماید می فرستد، حمله DNS poison یا DNS spoof می گویند. اما چگونه مهاجم می تواند حمله مذکور را پیاده نماید؟

برای اجرای حمله DNS poison روش های زیادی وجود دارد. به عنوان نمونه مهاجم می تواند یک فایل مخرب بسازد که بعد از اجرا شدن بر روی سیستم قربانی، محتوای DNS cache سیستم وی را مطابق با تبدیل اسم به IP مورد نظر مهاجم تغییر دهد، روشی که در اغلب Malware های امروزی شاهد آن هستیم. اما یکی از آسان ترین روش هایی که برای اجرای حمله DNS spoof می تواند توسط مهاجمان مورد استفاده قرار بگیرد، تغییر محتوای فایل hosts.txt سیستم قربانی است.

همان طور که می دانید، زمانی که یک سیستم عامل برای تبدیل یک نام به IP، درخواستی صادر می کند، اولین فایلی که برای پاسخ به درخواست سیستم بررسی می شود، فایل hosts.txt هست که در مسیر زیر بر روی سیستم عامل های ویندوزی وجود دارد:

C:\Windows\System32\drivers\etc\hosts.txt

 هر تبدیل اسم به IPای که در این فایل قید شده باشد، برای پاسخ به درخواست کاربران مورد استفاده قرار می‌گیرد. چنان چه تبدیل مورد نظر کاربر در این فایل وجود نداشته باشد، مابقی مراحلی که برای پاسخ به درخواست کاربر مبنی بر resolve کردن نام، وجود دارند طی می‌شوند. بنابراین اگر مهاجم بتواند محتوای فایل hosts.txt را تغییر دهد، می‌تواند حمله DNS poison را با موفقیت اجرا نماید. برای نمونه سناریوی زیر را در نظر بگیرید.

سناریوی مورد نظر:

مهاجم ابتدا با استفاده از آسیب پذیری معروف Eternalblue که با نام MS17_010 نیز شناخته می شود، بر روی سیستم قربانی، reverse shell به دست آورده است. سپس با دسترسی که بر روی سیستم قربانی برای مهاجم به وجود آمده است، می تواند فایل hosts.txt را به گونه ای تغییر دهد که هرگاه قربانی صفحه LinkedIn را بر روی سیستم خود باز کرد، در واقع صفحه fake login ای که مهاجم آن را طراحی کرده است مشاهده نماید. برای درک بهتر حمله DNS poison با سناریوی مذکور، مراحل اجرای حمله را دنبال نمایید.

مراحل اجرای حمله:

مرحله اول: مهاجم یک صفحه fake login مربوط به LinkedIn طراحی می کند و آن را بر روی web server خود قرار می دهد. نمونه ای از fake page طراحی شده در تصویر زیر نشان داده شده است:

 

 

مرحله دوم: مهاجم از آسیب پذیر بودن سیستم قربانی به حمله Eternalblue که مربوط به protocol: SMB است بهره برده و بر روی سیستم قربانی reverse shell به دست می‌آورد. شایان ذکر است که برای تشخیص این که آیا یک سیستم نسبت به حمله MS17_010 آسیب پذیر است یا خیر، می توان از ماژولی که در تصویر زیر مشاهده می شود، بهره برد:

 

نکته مهمی که در اجرای حمله DNS poison وجود دارد، این هست که مهاجم باید بر روی سیستم قربانی، دسترسی بالای NT Authority/ SYSTEM به دست آورده باشد تا بتواند حمله را به روشی که در این مطلب به آن پرداخته می شود، انجام دهد. همان طور که در تصویر زیر مشاهده می شود، دسترسی که مهاجم در نتیجه exploit کردن آسیب پذیری Eternalblue بر روی سیستم قربانی به دست آورده است، از سطح دسترسی مورد نیاز برخوردار است:

 

 

مرحله سوم: اکنون زمانی است که مهاجم دسترسی بالایی بر روی سیستم قربانی در اختیار دارد و می تواند برای اجرای حمله DNS poison از طریق تغییر محتوای فایل hosts.txt از post module نام برده زیر استفاده کند (چنان چه دسترسی به دست آمده بر روی سیستم قربانی، دسترسی بالایی نیست، می توان از روش های مختلفی مثل getsystem، استفاده از post module های مربوط به uac bypass و ... استفاده کرد) :

post/windows/manage/inject_host

برای استفاده از post module مذکور، سه پارامتر باید مقداردهی بشوند:

            1- شماره sessionای که مهاجم از سیستم قربانی به دست آورده است.

            2- آدرس IPای که مهاجم می خواهد در فایل hosts.txt برای تبدیل اسم به IP مورد استفاده قرار گیرد.

            3- domain ای که قرار هست بعد از اجرای این post module در فایل hosts.txt اضافه شود و به IP مورد نظر مهاجم resolve بشود.

 

 

پس از اجرای این post module، تغییر مورد نظر مهاجم در فایل hosts.txt سیستم قربانی اعمال می شود:

 

 

مرحله چهارم: پس از این که تبدیل اسم به IP مورد نظر مهاجم در فایل hosts.txt قرار گرفت، اکنون هرگاه قربانی بر روی سیستم خود، آدرس http://linkedin.com را وارد نماید، با fake login طراحی شده توسط مهاجم مواجه می شود:

 

 

مرحله پنجم: پس از این که قربانی، اطلاعات حساب کاربری خود را در fake login طراحی شده مهاجم وارد نماید، مهاجم می تواند آن را sniff کرده و پس از به دست آوردن ایمیل و password حساب LinkedIn قربانی، از آن سوء استفاده نماید: