Deobfuscation و بررسی وب‌شل ALFA Shell v4.1
مقاله
  • ۲۴ شهریور ۱۴۰۱
  • دسته بندی نشده
  • ۶ دقیقه خواندن

Deobfuscation و بررسی وب‌شل ALFA Shell v4.1

آکادمی راوین

وب‌شل چیست؟

وب‌شل یک رابط مبتنی بر پوسته (در سیستم‌عامل به معنی ایجاد کننده‌ی ارتباط بین کاربر و سیستم‌عامل) است که دسترسی و کنترل از راه دور به سرور وب را ممکن می‌سازد. به این ترتیب هکرها می‌توانند با استفاده از یک وب‌شل مخرب به فایل‌های شما دسترسی پیدا کنند. وب‌شل‌ها می‌توانند با زبان‌های برنامه‌نویسی مختلفی نوشته شوند.

به عبارت دیگر وب‌شل یک اسکریپت مخرب است که اغلب توسط یک مهاجم با هدف گسترش یا حفظ دسترسی مداوم در یک سامانه‌ی وب استفاده می‌شود. یک وب‌شل به خودی خود نمی‌تواند به یک آسیب‌پذیری از راه دور حمله یا از آن سو استفاده کند، بنابراین همیشه مرحله‌ی دوم حمله است.

مبهم‌سازی (Obfuscation) چیست؟

مبهم‌سازی (Obfuscation) در زمینه‌ی توسعه‌ی نرم‌افزار به فرایند ایجاد تغییر در کدهای یک برنامه گفته می‌شود به ‌گونه‌ای که بررسی و درک آن‌ها برای انسان یا ماشین (مانند آنتی‌ویروس‌ها) دشوار باشد. اغلب از روش‌های مبهم‌سازی برای پنهان کردن هدف و منطق پشت پرده‌ی کد یا مقادیر گنجانده شده در آن استفاده می‌کنند و به این ترتیب احتمال مداخله و مهندسی معکوس را کاهش داده یا آن را به یک معما و سرگرمی برای افرادی تبدیل می‌کنند که قصد یادگیری دارند.

مبهم‌سازی ممکن است به صورت دستی یا با کمک ابزارهای مخصوصی موسوم به مبهم‌ساز (Obfuscator) انجام شود. برخی از تکنیک‌های مبهم‌سازی به شرح زیر است:

  • نام گذاری متغیرها و توابع به صورت گمراه کننده یا بی‌معنا
  • استفاده از کامنت‌های فریب دهنده
  • کدگذاری رشته‌ها
  • حذف یا افزودن فاصله
  • ایجاد ابهام در Control Flow
  • اضافه کردن کدهای بی‌ربط و نوشتن کد با فرم و ظاهری غیر عادی

Deobfuscation کد ابزار Alfa Shell

Alfa Shell  یکی از وب‌شل‌های پرکاربرد منسوب به متخصصین ایرانی است. این وب‌شل حدود چهار نسخه‌ی اصلی دارد که شیوه‌ی Deobfuscation  مربوط به سه نسخه‌ی قبلی را در گذشته بررسی کردم. در این‌جا قصد دارم نسخه‌ی 4.1 ( آخرین نسخه‌ی Alfa Shell) را مورد بررسی قرار بدم.

برای شروع ابتدا باید سورس مبهم‌سازی شده الفا را دریافت کنیم.

https://github.com/Ravin-Academy/DeObfuscation_ALFA_SHELL_V4.1/blob/main/Decode%20Of%20ALFA%20Team/alfav4.1-tesla.php

سپس باید کد مربوطه را در یک فایل با نام دیگر ذخیره کنیم که در اینجا با نام alfav4.1-tesla_encode_1.php ذخیره کردیم.

https://github.com/Ravin-Academy/DeObfuscation_ALFA_SHELL_V4.1/blob/main/alfav4.1-tesla_encode_1.php

در گام بعدی مقدار متغیر $WMKVyvv=’e’.’v’.’a’.’l’ را به $WMKVyvv=’echo’; تغییر می‌دهیم. و سپس این دستور را در ترمینال لینوکس اجرا می کنیم:

php alfav4.1-tesla_encode_1.php > alfav4_decode.php

محتوای دیکد شده در فایل جدید  alfav4_decode.php  ذخیره می شود:

https://github.com/Ravin-Academy/DeObfuscation_ALFA_SHELL_V4.1/blob/main/alfav4_decode.php#L145&L181

متنی زیر را در ابتدای این فایل مشاهده می‌کنید:

/* You’re killing me again 🎧 Am I still in your head ? 🎧 You used to light me up 🎧 Now you shut me down — Solevisible */

این متن از موزیک Archive – Again  می باشد:

www.youtube.com/watch?v=r7rF2EZ0A_0

نکته بعدی این که یک شرط به شرح زیر در کد وجود دارد:

if(!isset($_SERVER[“HTTP_HOST”]))exit

با توجه به این شرط، اجرای اینوب‌شل  باید از طریق یک وب سرور انجام شود و در غیراین صورت از برنامه  خارج می‌شود. این خط کد را کامنت می‌کنیم تا ادامه‌ی کار میسر شود.

در ادامه‌ی مسیر با افزودن کد base64decode  قادر به ادامه‌ی Deobfuscation  کد ALFA Shell  خواهیم بود. مسیر کد اضافه شده به شرح زیر است:

https://github.com/Ravin-Academy/DeObfuscation_ALFA_SHELL_V4.1/blob/main/alfav4_decode.php#L66&L70

سپس دوباره دستور زیر را در ترمینال لینوکس اجرا می‌کنیم:

php alfav4_decode.php > final_decode.php

حال مشاهده می‌کنیم که خروجی کد مبهم شکسته شده در فایل final_decode.php  ذخیره شد. این فایل از لینک زیر قابل دریافت است:

https://github.com/Ravin-Academy/DeObfuscation_ALFA_SHELL_V4.1/blob/main/final_decode.php

مقایسه نسخه‌ی Decode‌ شده‌ی ما با نسخه‌ی Decode شده‌ی Alpha

فایل زیر نسخه‌ی Decode  شده‌ی وب‌شل هست که خود تیم Alpha همراه با نسخه‌ی Encode  شده‌ی خود در اختیار دیگران قرار داده‌اند. در ادامه قصد داریم خروجی decode شده‌ی خود را با  نسخه‌ی Decode شده‌ی Alpha مقایسه کنیم تا ببینیم چه تفاوت‌هایی با هم دارند:

https://github.com/Ravin-Academy/DeObfuscation_ALFA_SHELL_V4.1/blob/main/Decode%20Of%20ALFA%20Team/alfa-shell-v4.1-tesla-decoded.php

به همین منظور دو فایل ذکر شده را برای مقایسه در سایت زیر بارگذاری کردیم که بر اساس نتیجه‌ی به دست آمده، هیچ‌تفاوتی با هم ندارند. بنابراین به این نتیجه می‌رسیم که فرایندdecode  کردن وب‌شل به درستی پیش رفته است.

https://www.diffchecker.com/MT1BKXXj

بررسی استاتیک static

یکی از روش‌های متداول که هکرها برای سرقت دسترسی‌های متعلق به سایر هکرهای غیر حرفه‌ای انجام می‌دهند، تولید و انتشار بدافزارهایی است که در صورت استفاده، به عنوان یک درب پشتی یا Backdoor برای مهاجمین تولید کننده‌ی بدافزار عمل می‌کند. بر همین اساس قصد داریم در ادامه به بررسی و تحلیل این وب‌شل بپردازیم که آیا به عنوان درب پشتی برای تولیدکنندگان خود (تیم Alpha) عمل می‌کند یا خیر؟

در این مرحله بررسی کردیم که آیا این وب‌شل در صورت نصب، برای ارتباط با آدرس خاصی تلاش می‌کند یا خیر. به عنوان مثال متداول است که وب‌شل‌های آلوده پس از نصب، آدرس URL خود را به تولیدکنندگان خود ارسال می‌کند. با بررسی کدهای مربوط به این بخش، مورد مشکوکی مشاهده نشد.

مشاهده شد وب‌شل پس از نصب یک درخواست HTTP‌به آدرس https://solevisible.com ارسال می‌کند. در نتیجه پس اگر شما جایی این وب‌شل را اپلود کنید درخواستی به این آدرس ارسال شده و آدرس IP‌ سرور آلوده، در وب سرور solevisible.com ثبت خواهد شد. به عنوان مثال یک نمونه از ساختار لاگ Apache  در شکل زیر نمایش داده شده است:

بررسی کدهای Python و Perl

براساس بررسی انجام شده، بخشی از این وب‌شل کدهای obfuscate شده به زبان‌های Python و Perl را فراخوانی می‌کند. این بخش از وب‌شل، وظیفه‌ی ایجاد Reverse Shell‌ در سرورهای لینوکسی را بر عهده دارد. در نتیجه این کدها را نیز Deobfuscate کردم تا ببینیم مورد مشکوک یا مخربی در آن‌ها مشاهده می‌شود یا خیر، این کد‌ها را می‌توانید از آدرس‌های زیر دریافت کنید:

https://github.com/Ravin-Academy/DeObfuscation_ALFA_SHELL_V4.1/blob/main/obfuscation_perl.pl

https://github.com/Ravin-Academy/DeObfuscation_ALFA_SHELL_V4.1/blob/main/obfuscation_python.py

این دو بخش را هم Deobfuscate و به طور کامل بررسی کردم، در نهایت مورد مشکوکی در این بخش از وب‌شل پیدا نشد.

فایل باینری windows.exe

این فایل باینری در صورت نیاز به گرفتن یک NC به صورت Reverse Shell، به طور خودکار از آدرس https://solevisible.com/bc/windows.exe دانلود و اجرا می‌شود. این فایل را نیز با GHIDRA  بررسی کردیم و مورد مشکوکی یافت نشد. نکته‌ی قابل توجه در خصوص این فایل، این است که توسط برخی آنتی‌ویروس‌ها به عنوان بدافزار شناخته می‌شود و در صورتی که از آن استفاده کنید احتمال شناسایی توسط آنتی‌ویروس سرور وب وجود خواهد داشت.

بررسی شناسایی وب‌شل نسخه‌یDeobfuscate  شده با نسخه‌ی Obfuscate

همان‌گونه که در شکل زیر می‌بینید، نسخه‌یDeobfuscate  شده‌ی ما توسط برخی از آنتی‌‌ویروس‌ها به عنوان بدافزار شناسایی می‌شود.

مطابق تصویر زیر، نسخه‌ی obfuscate شده توسط هیچ‌کدام از آنتی‌ویروس‌ها شناسایی نشد.

در تصویر زیر نیز نتیجه‌ی تحلیل نسخه‌ی بدونobfuscate  که توسط خود تیم آلفا ارایه شده است را مشاهده می‌کنید.

با بررسی‌هایی که انجام شد، فعالیت مخربی از این وب‌شل یافت نشد اما آدرس سروری که شما وب‌شل را بر روی آن نصب کردید به سرور تیم آلفا ارسال خواهد شد. لذا در فعالیت‌های تست نفوذ یا تیم قرمز خود، تا جایی که امکان دارد از ابزارهای آماده استفاده نکرده یا حداقل قبل از استفاده، با دقت آن را بررسی کنید. همچنین مشاهده کردیم که کمی تغییر در کد یک بدافزار یا Obfuscate  کردن آن، تاثیر قابل توجهی در برخورد آنتی‌ویروس‌ها با آن فایل یا کد مخرب خواهد داشت.

ارتباط با نویسنده‌ی این مقاله در لینکدین: «رامین فرج‌پور»