شل شوک دومین آسیبپذیری عظیم در سال ۲۰۱۴ بود که موجب بکارگیری سیستمها شده و آلودگی آن در اینترنت منتشر شده است . شل شوک آسیبپذیری است که اجازه اجرای کد به صورت ریموت را میدهد . چگونه به سبب این واقعیت که بش دارای قوانینی برای کار با رشته “;{ ;: } ()” دارد . آسیبپذیری بر این مبنا پایه نهاده شده که سیستم چگونه رشتههای محیطی را تجزیه تحلیل کند .
آزمایشگاه شل شوک Shellshock
به نظر پیچیده میآید ولی بهترین راه برای توصیف شل شوک از طریق یک مثال میباشد . این مثال درک درستی از نحوه عملکرد شلکد به شما خواهد داد . اپلیکیشن وب آسیبپذیر OWASPBWA که در ماشین مجازی آن را ایجاد نمودیم ، به اکسپلوییت بش آسیبپذیر میباشد پس مطمئن باشید که در حال اجراست . به این ماشین لاگین کنید . بوسیله دستورهای زیر یک نسخه از فایل CGI را درون ماشین مجازی OWASPBWA کپی کنید :
wget –no-check-certificate https://raw.githubusercontent.com/cheetz/icmpshock/master/test.cgi -O /usr/lib/cgi-bin/test.cgi
مطمئن شوید که مجوز دسترسی این فایل را تغییر دهید :
chmod +x /usr/lib/cgi-bin/test.cgi
در آخر هم با دستور ifconfig آدرس آیپی این سیستم را بدست آورید :
ifconfig
اکنون اگر به آدرس آیپی زیر در مرورگر در کالی لینوکس بروید با پیام hi در صفحه نمایش مواجه شوید (آدرس آیپی خودتان را وارد کنید) :
http://192.168.1.4/cgi-bin/test.cgi
در سیستم کالی از ابزاری با نام icmpshock.py را استفاده خواهیم کرد . دلیل استفاده از این اسکریپت این است که میخواهیم در بین همه فایل CGI با سرعت بالا جستجو کنیم و همه اطلاعات رایج هدر HTTP مثل User Agent , Cookie , Host , Refer را با شلکد تست کنیم .
خوب به منظور نصب ابزار icmpshock در کالی لینوکس به صورت زیر عمل کنید :
cd /opt/icmpshock
chmod +x icmpshock.py
سپس بایستی فایل target_list.txt را ویرایش کنید و آدرس آیپی سیستم قربانی که در اینجا همان آدرس سیستم OWASPBWA یعنی ۱۹۲.۱۶۸.۱.۴ را وارد میکنیم .
سپس یک شنودگر tcpdump را به صورت زیر فعال میکنیم تا به بسته ICMP گوش دهد :
tcpdump -nni eth0 -e icmp[icmptype] == 8
کاری که ما در اینجا میکنیم این است که اسکریپت به دنبال فایلهای cgi میگردد ، اگر با موفقیت یک فایل شل اسکریپت را پیدا کرد ، اکسپلوییت شلکد را تزریق میکند تا سیستم را مجبور کند که میزبان قربانی را پینگ کند .
به همین دلیل است که یک شنودگر tcpdump را فعال کردیم تا درخواست های بازگشتی را گوش کند . در مثال زیر اسکریپت icmpshock.py جستجو را آغاز میکند :
./icmpshock.py 192.168.1.7 target_list.txt
در دستور بالا 192.168.1.7 آدرس آیپی سیستم لوکال یعنی کالی میباشد . پس از اجرای دستور با کلیک کردن Enter اسکن آغاز میشود . همانطور که میبینید فایل test.cgi یافت میشود . اکنون اگر به tcpdump بازگردیم میبینید که درخواست ICMP ثبت شده است .
مجموعه کاملی از شلکد ها بر روی همه سیستمهای شلکد آسیبپذیر داریم . ما فقط به اکسپلوییت های شلکد مبتنی بر وب محدود نیستیم . توضیح این موارد خارج از حوصله این کتاب است ولی میتوانید موارد مشابه را از مرجع های زیر مشاهده کنید :
SSH : http://resources.infosecinstitute.com/practical-shellshock-exploitation-part-2/
OSX/VMWARE : https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/osx/local/vmware_bash_function_root.rb
OpenVPN : http://www.darknet.org.uk/2014/10/openvpn-vulnerable-to-shellshock-exploit
خوشحال می شویم دیدگاههای خود را در میان بگذارید * فرصت پاسخگویی به سوالات در بلاگ وجود ندارد