سلام . Shell یا خط فرمان قسمتی از نرم‌افزار است که به یک رایانه این امکان را می‌دهد تا با ترجمه متون ورودی با محیط بیرون ارتباط برقرار کند. این مشکل امنیتی نه تنها رایانه‌ها بلکه قفل‌های هوشمند، دوربین‌ها، فضاهای ذخیره سازی و دیگر دستگاه‌های صوتی و تصویری برپایه لینوکس را نیز تحت تاثیر قرار می‌دهد.
این مشکل امنیتی دقیقا چگونه سیستم‌ها را تحت تاثیر قرار می‌دهد؟

این باگ این روز ها سر و صدای زیادی کرده برای همین سعی می کنیم خودمون پیاده سازیش کنیم و نتایج دلخواه رو بیرون بکشیم .

سیستم عامل ها :

1. سرور آسیب پذیر : Cent OS 6.3

2. سیستم نفوذگر : Ubuntu 14.04 / Kali linux

مراحل تست و آزمایش :

0. تست آسیب پذیر بودن bash در Cent OS

1. نصب آپاچی

2. ایجاد یک اسکریپت

3. تست آسیب پذیری با استفاده از افزونه ی Custim User-Agent String By Arpit Kumar در فایرفاکس

4. تست آسیب پذیری با استفاده از متااسپلویت

5. نحوه ی بر طرف کردن این باگ درCent OS

0. تست آسیب پذیر بودن bash در Cent OS :

برای تست این آسیب پذیری بر روی Cent OS و یا کلا هر سیستمی که از bash استفاده می کند , به این صورت عمل کنید :

اگر خروجی ای مطابق عکس زیر یعنی :

دریافت کردید , یعنی نسخه ی bash ای که استفاده می کنید آسیب پذیر است .

4904700246493968653

1. نصب آپاچی در Centos 6 :

آپاچی به صورت پیش فرض در مخازن centos وجود دارد . پس کافیست آن را با استفاده از yum نصب کنیم .

2. ایجاد یک اسکریپت ساده جهت تست :

با فرض فعال بودن CGI , به دایرکتوری زیر رفته و سپس اسکریپت ساده ی hello world زیر را در قالب یک فایل متنی با پسورد cgi. ایجاد کنید :

برای دیدن نتایج ( اسکریپتی که ایجاد کردید ) , از داخل مرورگر آدرس آی پی سرور را باز کنید و ( به عنوان مثال ) به مسیر زیر بروید :

3838442998305853496

3. تست آسیب پذیری با استفاده از افزونه ی Custim User-Agent String By Arpit Kumar در فایرفاکس :

بعد از نصب افزونه کافیست از قسمت tools روی قسمت edit user agent کلیک کنید و در پنجره ی باز شده روی new کلیک کنید . حال ما در این جا دو user agent می سازیم !

اولی :

بدین منظور که سطح دسترسی خودمون رو بدونیم ! طبیعتا وقتی قرار است bash script به واسطه ی آپاچی اجرا شود , یوزر ما نیز محدود و مربوط به آپاچی می باشد .

1426303839193527092

دومی :

همان طور که پیداست برنامه ی cat را از مسیر bin/cat/ جهت خواندن فایل passwd فراخوانده ایم .

 

2129859254169379678

توجه داشته باشید که برای استفاده از user agent ای که ساخته اید باید آن را از قسمت tools انتخاب کنید و سپس صفحه را یک را refresh دهید .

4. تست آسیب پذیری با استفاده از متااسپلویت :

برای این منظور ابتدا باید exploit زیر را به متااسپلویت اضافه کنیم :

 

جهت اضافه کردن exploit ابتدا دایرکتوری های زیر را در home دایرکتوری پیش فرض یوزر ( روت ) ایجاد می کنیم : ( توجه داشته باشید که دو دایرکتوری exploits و shellshock را ما ایجاد کرده ایم پس می توانید از هر نام دیگری استفاده کنید )

سپس فایل ruby بالا را با اسمی دلخواه در مسیر ایجاد شده ذخیره می کنیم .

حال اگر یک بار کنسول متااسپلویت را باز کنید خواهید دید که یک اکسپلویت به تعداد اکسپلویت ها اضافه شده است .

 

8494325382714354798

مقادیری که باید حتما آن ها را ست کنید عبارت اند از :

مقدار rhost در را آی پی سرور آسیب پذیر و مقدار rport را پورتی که قرار است به وب سرور متصل شویم را قرار می دهیم .

نکته : مقدار rport به صورت پیش فرض 80 در نظر گرفته شده است چرا که به صورت پیش فرض پورت آپاچی 80 می باشد . اگر به وب سروی برخورد کردید که از پورت دیگری به جای 80 استفاده می کرد ( مثلا 8080 ) آن را تغییر دهید .

یک مقدار پیش فرض جهت CMD یا همان فرمانی که قرار است به صورت ریموت اجرا شود در نظر گرفته شده است که ما از همان استفاده می کنیم .

نکته : فرمان ما در back ground سیستم اجرا و بسته می شود ( چه برنامه درست کار کند چه غلط . چه دارای خروجی باشد و چه دارای خروجی نباشد ) در نتیجه وقتی این exploit را اجرا کنیم , نتیجه ی تغییرات را شاید نتونیم در کنسول ببینیم اما در پشت پرده روی سیستم فرمان اجرا شده است . به عنوان مثال همین ایجاد کردن فایل metasploit در مسیر tmp/

نکته : تمامی یوزر ها به دایرکتوری tmp/ دسترسی دارند با این تفاوت که هیچ یوزری نمی تواند فایل های دیگر یوزر ها را پاک کند مگر یوزر روت . پس با یوزر محدود آپاچی می توانیم فایل با اسم metasploit را در داخل آن ایجاد کنیم .

در نهایت با اجرای exploit خواهیم دید که یک فایل خالی به نام metasploit در دایرکتوری tmp/ واقع در سرور ایجاد شده است .

 

182383017532125886

نکته : به قسمت Gid و Uid در عکس بالا توجه کنید .

5. نحوه ی بر طرف کردن این باگ در Cent OS :

درست است که آپدیت های Cent os کمی دیر تر از آپدیت های نسخه ی enterprise شرکت redhat بیرون می آید اما این بدان معنا نیست الان نتونیم با استفاده از دستور زیر این باگ را بر طرف کنیم !

حال اگر دوباره تست قسمت 0 را انجام دهید , خواهید دید که عبارت vulnerable در خروجی چاپ نخواهد شد و exploit ای که در بالا توضیح داده شد دیگر بر روی سرور کار نخواهد کرد .

 

1699346180711299142

حرف آخر : به جمله ی زیر که از سایت های خبری پیدا کردم نگاه کنید ….

نکته ای که این ویروس را از ویروس هارت بلید متمایز می سازد، آن است که هارت بلید تنها به مهاجم اجازه می داد از سیستم شما اطلاعات استخراج کند؛ این در حالی است که شل شاک با استفاده از باس می تواند فرمان صادر کرده و کنترل سیستم یا سرور شما را به دست گیرند

1067135200530406582

نویسنده : E2MA3N

منبع : او اس لرن . آی آر | http://OSLearn.ir

 

از این مطلب راضی هستید ؟ می خواهید به سایت کمک کنید ؟ رضایت خودتون رو با دونیت به ما اعلام کنید . برای دونیت روی خرید کلیک کنید . با تشکر

[parspalpaiddownloads id=”8″]

درباره نویسنده :

ایمان همایونی هستم، از سال 2009 با گنو لینوکس فعالیت خودم رو در زمینه ی کامپیوتر و IT شروع کردم و تا الان موفق به گذروندن دوره هایLPIC 1 / LPIC 2 / VCP5-DCV / MCITP / CCNA / MTCNA شدم . مدتی در زمینه امنیت فعالیت هایی داشتم اما در حال حاضر تمرکز خودم رو بر روی مجازی سازی و لینوکس گذاشته ام .

تمام پست های من - وب سایت من