آسیب پذیری buffer overflow یا سرریز بافر
در این اموزش به مبحث آسیب پذیری Buffer OverFlow می پردازیم و در نهایت شما را با یک مثال کاربردی اشنا خواهیم کرد با ما در ادامه اموزش هک و امنیت همراه باشید
آسیب پذیری buffer overflow
یکی از مهم ترین ویژگی های یک متخصص امنیت اشنایی و توانایی کار کردن با انواع باگ ها است به این منظور برای تبدیل شدن به یک متخصص امنیت نیاز دارید تا با انواع باگ ها و روش کار انها اشنا باشید که در ادامه شمارا با یکی از مهم ترین باگ ها اشنا می کنیم اما در ابتدا نیاز دارید تا با یکسری از اصطلاحات اشنا باشید که در ادامه انها را شرح می دهیم
Buffer یا پشته چیست ؟
بافر یک محل ذخیره اطلاعات به صورت موقت در نرم افزار ها است که این اطلاعات قبل از ارسال به مقصد در این محل ذخیره شده و پس از تغیرات cpu بر روی ان ، سپس به مقصد ارسال می شود
منطق باگ Buffer Overflow
این باگ زمانی به وجود می اید که برنامه نویس نوع ورودی های نرم افزار خود را مشخص و کنترل نکرده باشد
نرم افزاری را تصور کنید که برای بافر خود مقدار 2 هزار کیلوبایت را در نظر گرفته است
نکته : مقدار 2 هزار کیلوبایت صرفا فقط یک مثال برای درک آسیب پذیری buffer overflow است
و نرم افزار های مختلف نسبت به کارایی خود مقدار متفاوتی برای بافر خود اختصاص میدهند.
تصور کنید اطلاعات بسیار زیادی با حجم چنیدن هزار کیلوبایت به بافر این نرم افزار انتقال داده می شود که در نهایت موجب سرریز شدن اطلاعات می شود اما این سرریز شدن چه مشکلات خطرناکی را به همراه دارد ؟ ، مشکل اول این است که اطلاعات سرریز شده برروی هارد نوشته می شود و ممکن است جایگزین اطلاعات مهمی شود که دیگر قابل بازگشت نیست
مشکل بعدی و البته خطرناک ترین مشکل گیج شدن نرم افزار است که باعث می شود هردستوری به ان داده شد بدون هیچ محدودیتی بر روی سیستم اجرا کند زیرا نرم افزار گیج شده و نمیتواند نفوذگر را از ادمین تشخیص دهد و نفوذگرمی تواند با استفاده از دستورات مختلف و مخرب کار های دلخواه خود را بر روی سیستم قربانی از جمله اجرای فایل مخرب یا دانلود یک فایل از سیستم قربانی انجام دهد
این اسیب پذیری به دوصورت local و remot است که در ادامه با این دو روش اشنا می شوید
اسیب پذیری buffer overflow از نوع Local و Remot
برای دسترسی گرفتن از طریق اسیب پذیری Buffer Overflow دو روش وجود دارد که روش اول وجود باگ در سیستم هدف و روش دوم ارسال پکت است که روش دوم اکثرا برای نفوذ به وایرلس استفاده می شود به این منظور که نفوذگر با ارسال پکت های بسیار زیاد به مودم وایرلس , بافر وایرلس را سرریز می کند و زمانی که وایرلس گیج می شود نفوذگر دستور نمایش دادن پسورد را به وایرلس ارسال می کند و در نهایت با استفاده از رمز عبور وارد شبکه داخلی می شود
حمله Buffer Overflow مانند حمله DOS و حمله DDOS یا حمله تکذیب سرور است اما با این تفاوت که حمله DOS در نهایت موجب down شدن سرور می شود اما حمله Buffer Overflow در نهایت دسترسی لازمه را به نفوذگر میدهد به این صورت که نفوذگر با استفاده از ارسال پکت هایی با سایز مشخص به سمت هدف , دسترسی لازمه را میگیرد
اگر سیستم هدف نفوذگر باگ را داشته باشد کار نفوذگر بسیار ساده است و فقط با تنظیم کردن چندین اپشن دسترسی لازم را میگیرد اما قبل تر همان گونه که گفته شد نفوذگر می تواند از طریق آسیب پذیری buffer overflow با ارسال پکت دسترسی بگیرد که اکثرا برای حملات سمت وایرلس استفاده می شودپ
جمع اوری اطلاعات
در ابتدای کار برای انجام مراحل تست نفوذ خود باید از جمع اوری اطلاعات استفاده کنید و نرم افزار های مورد استفاده هدف خود را شناسایی کنید تصور کنید بعد از انجام مرحله جمع اوری اطلاعات متوجه شده ایم که هدف ما از یکی از ورژن های قدیمی نرم افزار badblue استفاده میکند
در مرحله بعدی باید به دنبال اسیب پذیری در نرم افزار موردنظر باشید
که می توانید از سایت های زیر استفاده نمایید
سایت هایی که در بالا برای شما قرار داده ایم برترین سایت ها در زمینه ثبت اکسپلویت هستند
که جلوتر اموزش کار با این سایت ها را برای شما شرح خواهیم داد
یکی از روش های دیگر برای پیداکردن اکسپلویت مناسب برای حملات ابزار قدرتمند Metasploit است که با استفاده از دستور search می توانید اکسپلویت مربوطه خود را مشاهده کنید
چگونه یک اکسپلویت مناسب سرریز بافر پیدا کنیم ؟
بعد از مرحله جمع اوری اطلاعات نیاز دارید تا یک اکسپلویت مناسب
برای آسیب پذیری buffer overflow خود پیدا کنید که می توانید از سایت های ثبت اکسپلویت استفاده کنید
کار با سایت exploit-db برای آسیب پذیری buffer overflow
زمانی که وارد این سایت شوید با صفحه زیر رو به رو می شوید
در این قسمت می توانید جدیدترین اسیب پذیری های ثبت شده را مشاهده و از انها استفاده کنید اما برای پیدا کردن اکسپلویت مناسب برای کار خود باید در قسمت جستجوی سایت اسم نرم افزار مورد نظر خود را بنویسید و Enter کنید و منتظر بمانید تا سایت در دیتابیس خود اقدام به جستجوی اسیب پذیری در نرم افزار مورد نظر شما کند که نرم افزار مورد نظر ما , نرم افزار badblue است.
همانطور که مشاهده کردید با جستجوی نام ابزار badblue اسیب پذیری های مختلفی را برای ما به نمایش در اورد و شما میتوانید نسبت به نیاز خود یکی از اسیب پذیری هارو انتخاب کنید و بر روی ان کلیک کنید سپس بعد از کلیک بر روی اسیب پذیری مورد نظر وارد صفحه زیر که مربوط به اسیب پذیری است شوید که می توانید اطلاعاتی کامل از اسیب پذیری به دست اورید و از ان استفاده کنید
در قسمت اول می توانید اکسپلویت این آسیب پذیری buffer overflow را دانلود کنید و از ان استفاده کنید
در قسمت دوم می توانید نسخه ابزاری که این اسیب پذیری را دارد دانلود کنید
و به هدف خود دهید تا ان را نصب کند و با استفاده از اکسپلویت از هدف خود دسترسی بگیرید
سایت های ثبت اکسپلویت همگی همین منطق را دارند فقط کمی ظاهر انها متفاوت است
که با کمی کار کردن با انها می توانید به انها مسلط شوید
استفاده از ابزار metasploit برای آسیب پذیری buffer overflow
روش دیگری که برای پیدا کردن اکسپلویت مورد نظر استفاده می شود کمک از ابزار قدرتمند Metasploit است به این منظور با استفاده از دستور زیر در محیط کامندی کالی لینوکس یا هر سیستم عامل دیگری که متاسپلویت برروی ان نصب است می توانید این ابزار را اجرا کنید و از ان برای آسیب پذیری buffer overflow استفاده نمایید برای اشنایی با ان ها میتوانید اموزش معرفی سیستم عامل هکر ها را مشاهده کنید
msfconsole
سپس در مرحله بعد با استفاده از دستور زیر و نام نرم افزار مورد نظر
می توانید اکسپلویت مناسب کار خود را پیدا و استفاده کنید
secrch badblue
استفاده از ابزار searchsploit
ابزار search sploit ابزاری است که با استفاده از ان می توانید در دنیای اکسپلویت ها جستجویی داشته باشید
که منبع این ابزار سایت معروف exploit-db است که پیش تر با ان اشنا شده اید
سینتکس این ابزار به این صورت است که باید در ترمینال لینوکس خود نام ابزار را وارد کنید
و ان را فراخانی کنید و نام نرم افزار مورد نظر خود را که میخواهید
از طریق آسیب پذیری buffer overflow به ان نفوذ کنید را در ادامه ان وارد کنید
به مثال زیر توجه کنید
searchsploit badblue
تفاوت میان اکسپلویت Local و Remot
همانطور که پیشتر گفته شد در باگ Buffer Overflow یک نمونه local و یک نمونه remot وجود دارد
در اکسپلویت لوکال شما نیاز دارید تا با استفاده از اکسپلویت یک پیلود revarse بسازید
که در کانفیگ پیلود باید از ایپی خود استفاده کنید
اما در اکسپلویت remot باید با استفاده از متد گفته شده در usage اکسپلویت و داشتن ایپی هدف به سیستم هدف دسترسی بگیرید و نیازی به وارد کردن ایپی خود ندارید اما هدف شما باید ایپی پابلیک داشته باشد مگر اینکه در یک شبکه لوکال قرار گرفته باشید که در این صورت می توانید از ایپی لوکال استفاده کنید
شروع کار با اکسپلویت remot ابزار badblue
تا به این مرحله با پیش نیاز ها اشنا شده اید و در ادامه به مبحث اصلی میپردازیم
اکسپلویتی که قرار است با ان کار کنیم به صورت پیشفرض در Metasploit وجود دارد
برای اجرای متاسپلویت و استفاده از آسیب پذیری buffer overflow
در قدم اول باید دستور زیر را در ترمینال خود وارد کنید
msfconsole پس از اجرای متاسپلویت با صفحه زیر رو به رو خواهید شد
پس از اجرای محیط متاسپلویت می توانید از دستور زیر برای جستجو در اکسپلویت ها بپردازید
search badblue
نکته : جایگزین نام badblue نام اکسپلویت خود را بنویسید
در مرحله بعدی با استفاده از دستور use و مسیر اکسپلویت باید اکسپلویت خود را فراخوانی کنید
use exploit/windows/http/badblue_passthru
در ادامه باید به تنظمات و کانفیگ اکسپلویت بپردازید که با استفاده از دستور زیر می توانید
تنظیماتی که باید بر روی اکسپلویت اعمال کنید را مشاهده کنید
show options
در این قسمت می توانید تنظیماتی که باید برروی اکسپلویت اعمال کنید را مشاهده کنید که نام تنظیمات در قسمت name برای شما مشخص شده است و اگر در قسمت Required گزینه مورد نظر بر روی yes قرار داشت حتما باید ان فیلد تنظیم شود اما اگر بر روی no قرار داشت نیازی به تنظیم ان نیست
انجام تنظیمات متاسپلویت برای استفاده از آسیب پذیری buffer overflow
در این قسمت تنها قسمت RPORT و RPORT بر روی yes قرار دارد پس فقط باید پورت و ایپی را تنظیم کنید
در قدم بعدی باید با استفاده از دستورزیر ایپی هدف خود برای آسیب پذیری buffer overflow را مشخص کنید
set RHOST 192.168.1.5
نکته : در قسمت ایپی باید ایپی هدف خود را وارد کنید و حتما به بزرگ و کوچکی حروف دقت کنید
زیرا لینوکس به حروف بزرگ و کوچک حساس است.
به استفاده از همین دستور تنها با کمی تفاوت باید RPORT را تنظیم کنید
و یک پورت رندوم را از پوست های شبکه انتخاب کنید
set RPORT 4567
نکته : در قسمت پورت باید یک پورت دلخواه , ازاد و رندوم انتخاب شود
سپس در مرحله اخر با استفاده از دستور زیر اکسپلویت مورد نظر خود را اجرا کنید
و اگر سیستم هدف شما از نرم افزار اسیب پذیر استفاده کند دسترسی به شما داده خواهد شد
exploit
امنیت در برابر اسیب پذیری Buffer Overflow
به صورت کلی و خلاصه بهترین راه برای بالا بردن امنیت خود در برابر این نوع حملات استفاده از جدیدترین ورژن نرم افزار ها است و هر روز سایت های ثبت اکسپلویت را بررسی کنید تا اگر اسیب پذیری جدیدی کشف شد طبق سورس ان اسیب پذیری خود را در برابر ان ایمن کنید
پایدار باشید.