شرح کلی
نوع: وبشل (WebShell)
درجه تخریب: زیاد
میزان شیوع: متوسط
اسامی بدافزار
Backdoor.PHP.WebShell.Indosec (padvish)
PHP/Webshell.NHE (ESET-NOD32)
HEUR:Backdoor.PHP.WebShell.gen (Kaspersky)
وب شل (WebShell) چیست؟
WebShell، اسکریپت مخربی است که با زبانهای اسکریپتنویسی همانند ASP ،Python،PHP یا JSP نوشته شده است. هنگامی که وبشلها بر روی وبسرور قربانی تزریق میشوند، کنترل کامل سایت را در اختیار نفوذگر قرار میدهند. این حملات معمولاً با بهرهجویی از نقصهای امنیتی در وب سرورهای آسیبپذیر صورت میگیرد.
مهاجمان به راحتی سرورهای قابل دسترس بر روی اینترنت را کشف کرده و مورد هدف قرار میدهند. با بارگذاری وبشل در وبسرور، خطرهای جدی و گاه جبرانناپذیری متوجه سازمان خواهد بود. بنابراین الزامی است که سازمانها بیش از پیش این نوع هشدارها را جدی بگیرند و تدابیر امنیتی پیشه کنند.
بدافزار Backdoor.PHP.WebShell.Indosec چیست؟
در این گزارش به شرح نمونهای از وبشلهای خانواده Indosec پرداخته شده است. نفوذگران با استفاده از این وبشل و قابلیتهای آن، قادر به انجام مجموعهای از اقدامات مخرب بر روی سرور قربانی میباشند.
قابلیتهای این بدافزار عبارتند از:
- آپلود فایل در یک مسیر خاص
- رمز کردن فایلها و درخواست باج
- تغییر ظاهری یا Deface کردن وبسایت قربانی
- ایجاد فایل و پوشه و اعمال تغییرات بر روی آنها و…
توضیحات فنی
شرح عملکرد
مهاجم برای ورود به پنل مدیریتی وبشل، صفحه لاگین با نام کاربری admin برای خود تعریف کرده است که در تصویر زیر صفحه لاگین قابل مشاهده است.
تصویر۱- صفحه login
پس از اینکه login صورت گرفت صفحه زیر نمایش داده میشود. همان گونه که در تصویر مشخص است، ابزار IndoSec Shell قابلیتهای گوناگونی را در اختیار مهاجم قرار میدهد.
تصویر ۲- نمایی از سربرگ home
- در بخش terminal همانطور که در تصاویر زیر نمایش داده شده است، این وبسل با توجه به سیستم عامل سرور قربانی امکان اجرای دستورات ویندوزی و لینوکسی را دارد
در دو تصویر زیر یک دستور تحت ترمینال ویندوز در حالی که وبشل در محیط ویندوز اجرا شده و یک دستور تحت ترمینال لینوکس در حالی که وبشل در محیط لینوکس اجرا شده است را میتوان مشاهده کرد:
▫️نتیجه اجرای ipconfig در محیط ویندوز:
تصویر ۳- اجرای دستور ویندوزی در ترمینال
▫️نتیجه اجرای دستور uname -a در محیط لینوکس:
تصویر ۴- اجرای دستور لینوکسی در ترمینال
- بخش informasi اطلاعات مربوط به سیستم جاری را نمایش میدهد.
تصویر ۵- اطلاعات مربوط به سیستم
- در بخش زیر خروجی هر اقدام انجام شده، نمایش داده میشود. به طور مثال در حالت لاگین اولیه فایلهای موجود در دایرکتوری جاری به همراه نوع دسترسی و اقدامات قابل انجام بر روی فایلها نمایش داده میشود و یا پس از اجرای دستورات تحت ترمینال، خروجی در این قسمت مشاهده خواهد شد.
تصویر ۶- نمایش دایرکتوری جاری
قابلیت های مختلف بدافزار به شرح موارد مندرج در جدول زیر است :
نام قابلیت | شرح قابلیت |
upload | با استفاده از این بخش میتوان فایلی در مسیر دلخواه بارگذاری کرد. |
Bautfile | فایل جدیدی میتوان ایجاد کرد و به آن محتوای دلخواه را افزود. |
Bautfolder | پوشه جدیدی در مسیر دلخواه میتوان ایجاد کرد. |
Mass deface | مهاجم از این گزینه برای تغییر دستهای فایلهای index که به defece شدن وبسایتهای موجود بر روی سرور قربانی منجر میشود، استفاده میکند. در این بخش میتوان به طور همزمان محتوای چند فایل را تغییر داد به این صورت که مسیر مورد نظر و نام فایل هدف توسط مهاجم مشخص میشود. در نتیجه محتوای تمام فایلهای با نام مشخص شده (به صورت پیش فرض index.php ) که در مسیر مربوطه قرار دارند، تغییر مییابد. |
Mass delete | همزمان چند فایل را delete میکند. |
jumping | در بخش Jumping وجود کنترل پنلهای مدیریت هاست در سیستم بررسی شده و فایلهای موجود در مسیرهای مرتبط با آنها نمایش داده میشوند. |
config | مسیر فایلهای کانفیگ سیستمهای مدیریت محتوای مختلف (CMS) که بر روی سیستم وجود دارد را در فایلی با نام $user_con-$nama_config.txt قرار میدهد. این فایل اطلاعات مهمی از CMS در اختیار مهاجم قرار میدهد از جمله نام دیتابیس و رمز عبور آن. سیستمهای مدیریت محتوایی (پلتفرمهایی) که بررسی میشوند: Hostbills, Zencart, BoxBilling, WHMCS, Joomla, WordPress, IPB, OsCommerce, MyBB, Vbulletin, Ellislab, OpenCart, Magento, PrestaShop, Drupal, phpBB, Lokomedia, cPanel |
adminer | با انتخاب این گزینه اگر بر روی سیستم، فایل adminer وجود داشته باشد صفحه مدیریت پایگاه داده باز میشود و میتوان پایگاه داده را مشاهده کرد. همچنین میتوان با داشتن نام کاربری و گذر واژه پایگاه داده تغییرات مختلفی را نیز بر روی آن انجام داد. |
symlink | در این قسمت از کد در ابتدا محتوای فایل named.conf یا نام named.txt به صورت جدول که شامل ستونهای Domains, Users, symlink است، نمایش داده میشود و سه لینک مختلف ایجاد میشود که هر کدام از آنها برای کاربرد خاصی است که در ادامه و در توضیحات تکمیلی این بخش به آنها اشاره خواهد شد. |
Auto reset cpanel | اگر برای مدیریت وبسایتی که هدف حمله است از cpanel استفاده شده باشد، با این گزینه پسورد آن reset میشود. |
ransomware | این ماژول فایلهای دایرکتوری مورد نظر را رمز میکند و در صورتی که موفق به انجام این کار شود به انتهای نام هر فایل پسوند indsc. را اضافه میکند و در پایان یک فایل index.php که payment مربوط به باجافزار است را در کنار فایلها قرار میهد. با توجه به اینکه عمل رمزنگاری در آدرس: http://encrypt.indsc.me/api.php?type=encrypt انجام میشود و این آدرس فعال نیست، در حال حاضر رمزنگاری فایلها انجام نمیشود. |
smtpgrabber | نمایش اطلاعات smtp از قبیلSMTP Host ,SMTP Port, SMTP User, SMTP Pass, SMTP Auth, SMTP Secure با این بخش امکانپذیر است. |
Bypass cloud flare | اگر وبسایت مجهز به cdn کلودفلر باشد، میتوان بخشهای مختلف آن را bypass کرد و IP واقعی هر کدام از سرورهای webmail, ftp , cpanel و غیره را به دست آورد. |
keluar | از برنامه خارج میشود و مجددا وارد صفحه لاگین میشود. |
توضیحات تکمیلی
🔺 Mass deface
بعد از انتخاب این گزینه محتوایی که قرار است جایگزین محتوای اصلی فایل مورد نظر شود، در فایلهای دایرکتوری مربوطه نوشته میشود. در نهایت محتوای تمام فایلهای با نام مشخص شده در بخش NamaFile که در دایرکتوری مورد نظر وجود دارند تغییر میکند.
تصویر ۷- محتوای صفحه Mass deface
تصویر ۸- لیست فایلهای تغییر داده شده به وسیله Mass deface
تصویر ۹- صفحه deface شده
🔺 Jumping
در بخش Jumping وجود کنترل پنلهای مدیریت هاست در سیستم بررسی شده و فایلهای موجود در مسیرهای مرتبط با آنها نمایش داده میشوند. نحوه عملکرد این بخش به شکل زیر است:
• اگر کنترل پنل H-sphere بر روی سیستم وجود داشته باشد به تعداد یوزرهای سیستم و URLهایی که وجود دارد برای مسیر زیر لینک jump ایجاد میشود:
hsphere/local/home/$user/$url
• اگر H-sphere روی سیستم نباشد به دایرکتوری vhosts میرود و برای URLهای متفاوتی که وجود دارد لینک jump برای این مسیر زیر ایجاد میکند:
/var/www/vhosts/$url/httpdocs
• در نهایت به ازای هر یک از یوزرها برای مسیر /home/$user_pro_jump/public_html لینک jump ایجاد میکند. در تصویر زیر نمونه اجرا شده مشاهده میشود که نوع دسترسی آن فقط خواندن است و با رنگ سبز نمایش داده شده است.
تصویر ۱۰- خروجی jumping
🔺 Adminer
Adminer یک ابزار مدیریت پایگاه داده است. بدافزار وجود این ابزار بر روی سیستم را بررسی میکند و در صورت وجود، صفحه ورود به پایگاه داده را نمایش میدهد. در این بخش مهاجم میتواند در صورت به دست آوردن اطلاعات لاگین با استفاده از بخشهای دیگر به راحتی به پایگاه داده دسترسی یابد:
تصویر ۱۱- نمایش صفحه adminer
🔺 Symlink
Symlinkها فایلهایی هستند که به عنوان اشارهگر به فایلهای دیگر عمل میکنند. Symlinkها یا همان پیوندهای نرم حاویِ محتویات پرونده منبع نیستند، فقط به آنها اشاره میکنند. یعنی اگر پرونده اصلی حذف شود، Symlink دیگر قابل استفاده نیست.
تصویر ۱۲- ماژول Symlink بدافزار
با توجه به تصویر فوق، ماژول Symlink این بدافزار شامل موارد زیر است:
1️⃣ Bypass Read: بعد از انتخاب این گزینه محتوای فایل named.conf با دسترسی خواندن در خروجی نمایش داده میشود و با فشرده شدن کلید save این محتوا در فایلی با نام named.txt در مسیر اجرای فایل اصلی ذخیره میشود.
تصویر ۱۳- Bypass Read در ماژول Symlink
2️⃣ Symlink404: در این قسمت میتوان یک فایل symlink از فایل هدف در دایرکتوری indosec_sym404 با نام دلخواه ایجاد کرد. جهت تست مسیر یکی از فایلهای wordpress به عنوان فایل Target و نام 12.txt به عنوان نام فایل symlink وارد شد و پس از کلیک بر روی لینک پیغام >>Sukses<< نمایش داده میشود.
تصویر ۱۴- بخش Symlink404
تصویر ۱۵- امکان نمایش محتوای فایل Target
3️⃣ Symlink Bypass: این گزینه محتوای فایل etc/passwd را که دربردارنده اطلاعات مربوط به اکانتهای سیستم است، نمایش میدهد. با انتخاب گزینه Symlink محتوای آن با نام passwd.txt در مسیر جاری ذخیره میشود.
تصویر ۱۶- Symlink Bypass
🔺 Ransomware: این گزینه به قابلیت اجرای باجافزار اشاره دارد. برای این قسمت همانطور که در کادر قرمز رنگ شماره ۱ در تصویر زیر قابل مشاهده است، فایل هدف ابتدا از مسیری که انتخاب شده خوانده میشود و محتوای آن با الگوریتم base64 کد میشود و به سمت سرور مهاجم فرستاده میشود. محتوای پکت بازگردانده شده از سمت سرور نیز شامل فایلی رمز شده است. این دیتا دیکد شده و در متغیر $_ENC قرار میگیرد.
پس از اینکه این مرحله انجام شد پسوند INDSC. به انتهای نام فایل افزوده میشود و پیغام SUCCESS در خروجی نمایش داده میشود. در هنگام تحلیل این بدافزار به دلیل خارج از دسترس بودن سرور مربوطه فرآیند رمز شدن فایلهای هدف و تغییر پسوند آنها انجام نشد.
در کادر شماره ۲، عملیات مربوط به نمایش صفحه PAYMENT انجام میشود و یک فایل INDEX.HTML به عنوان PAYMENT ساخته میشود که محتوای آن در ادامه نمایش داده شده است.
تصویر ۱۷- محتوای HTML مربوط صفحه payment
تصویر ۱۸- صفحه payment
روش مقابله و پاکسازی سیستم
آنتیویروس پادویش این بدافزار را شناسایی میکند. به منظور جلوگیری از آلوده شدن به چنین بدافزارهایی توصیه میشود:
✅ وبسرور خود را به صورت کامل و ایمن پیکربندی کنید.
✅ پورتها و سرویسهایی را که مورد استفاده نیستند، مسدود سازید.
✅ سعی کنید از گذر واژههای پیچیده استفاده کنید و در بازههای زمانی معین، نسبت به تغییر گذرواژهها اقدام نمایید.
✅ بهروزرسانیهای امنیتی را به طور مداوم اعمال کنید.
✅ همچنین پیشنهاد میشود با توجه به افزایش چشمگیر حملات سایبری و به منظور اطمینان از امنیت شبکه و سیستمهای در معرض خطر و جهت مقابله با حملات سایبری و تهدیدات پیشرفته پایدار، ضمن رعایت توصیههای امنیتی از محصول پادویش نسخه کشف و پاسخ به حملات سایبری یا Padvish MDR استفاده نمایید.