یک بدافزار اندرویدی جدید به نام Wpeeper در هجدهم آوریل 2024 توسط تیم XLab کشف گردید. این بدافزار در حین بررسی یک فایل ELF ناشناخته که درون فایلهای APK قرار داشت، شناسایی شد. جالب است که تا پیش از آن زمان، هیچ نشانهای از Wpeeper در Virus Total آپلود نشده بود.
Wpeeper از طریق دو دامنه مختلف توزیع شده است. یکی از دامنهها قبلا به عنوان دامنه مخرب نشانه گذاری شده، در حالی که دامنه دوم اخیراً به ثبت رسیده است. این ELF، بدافزاری است که سیستمهای اندروید را مورد هدف قرار میدهد و از سایتهای وردپرس هک شده به عنوان سرور C2 (فرماندهی و کنترل) استفاده میکند.
Wpeeper یک تروجان بکدور متداول برای سیستمهای اندروید میباشد که از عملکردهایی مانند جمعآوری اطلاعات حساس از دستگاه، مدیریت فایلها و دایرکتوریها، آپلود و دانلود و اجرای دستورات پشتیبانی میکند. قابل توجه ترین ویژگی Wpeeper، در عملیات شبکهای آن نهفته است که تلاشهای دقیق سازندگان آن را در سه بخش نشان میدهد:
- ساخت یک معماری چند سطحی C2 با تکیه بر سایتهای وردپرس هک شده برای پنهان کردن آدرس سرور C2 اصلی
- استفاده از فیلد Session برای متمایز ساختن درخواستها، همراه با پروتکل HTTPS برای محافظت از ترافیک شبکه
- رمزگذاری دستورات ارسال شده از C2 با استفاده از AES
بکدور Wpeeper در حداقل دو فروشگاه برنامه غیررسمی مشاهده شده است و دارای بیش از 220 میلیون دانلود میباشد. Wpeeper در بیست و دوم آوریل، به طور ناگهانی فعالیت خود را متوقف کرد.
سوء استفاده از وردپرس به عنوان یک C2
سیستم ارتباطی Wpeeper به گونهای طراحی شده است که از سایتهای وردپرس هک شده استفاده میکند تا مکان و هویت سرورهای C2 واقعی خود را پنهان سازد. ارسال هر فرمان از C2 به رباتها، از طریق همان سایتهای وردپرس صورت میپذیرد.
Wpeeper میتواند سرورهای C2 خود را بهصورت پویا از طریق یک فرمان مرتبط بهروزرسانی کند، بنابراین اگر یک سایت وردپرس حذف گردد، آدرس سایتهای جدید میتوانند به باتنت ارسال شوند. استفاده از چندین سایت هک شده در میزبانها و مکانهای مختلف، نشان از انعطافپذیری مکانیزم C2 دارد که توقف عملیات یا حتی اختلال در تبادل دادهها در یک دستگاه اندرویدی آلوده را دشوار میکند.
قابلیتهای بدافزار
عملکرد اصلی Wpeeper حول محور سرقت داده میباشد. دستورات پشتیبانی شده در این بکدور عبارتند از:
- بازیابی اطلاعات دقیق در مورد دستگاه آلوده، مانند مشخصات سخت افزاری و جزئیات سیستم عامل
- جمع آوری لیستی از تمام برنامههای نصب شده بر روی دستگاه
- دریافت آدرسهای سرور C2 جدید برای به روز رسانی لیست منابع فرمانهای ربات
- تنظیم فرکانس ارتباط با سرور C2
- دریافت یک کلید عمومی جدید برای تأیید امضای دستورات
- دانلود فایلهای دلخواه از سرور C2
- بازیابی اطلاعات مربوط به فایلهای خاص ذخیره شده در دستگاه
- جمع آوری اطلاعات مربوط به دایرکتوریهای خاص از دستگاه
- اجرای دستورات در shell دستگاه
- دانلود و اجرای فایل
- به روزرسانی بدافزار و اجرای یک فایل
- حذف بدافزار از دستگاه
- دانلود و اجرای فایل از یک URL مشخص
میزان توزیع بدافزار
ما اطلاعات دقیقی در خصوص مقیاس توزیع Wpeeper نداریم، اما بر اساس نتایج Google و Passive DNS (PDNS) به نظر میرسد که Wpeeper در زمان کشف، هزاران دستگاه را آلوده کرده است.
تحلیل APK
مهاجمان کد زیر را در MainActivity APK اضافه کردهاند تا یک رشته جدید (MainActivity.F3) برای دانلود فایل ELF مخرب ایجاد کنند.
تابع MainActivity.F3 در نهایت تابع MainActivity.h5 را فراخوانی میکند. خوشبختانه این کد، مبهم نیست و عملکرد آن واضح است. تابع، یک فایل ELF به نام ” android ” را از دو دامنه دانلود میکند، نام آن را به “com.uptodownload.libs” تغییر میدهد و در نهایت آن را اجرا میکند.
تحلیل ELF
نمونههای مخرب Wpeeper دانلود شده از هر دو دامنه یکسان میباشد و اطلاعات اولیه آنها به شرح زیر است:
Family: Wpeeper
MD5: 8e28f482dab8c52864b0a73c3c5c7337
Magic: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /system/bin/linker64, BuildID[sha1]=9fa32612558fab9480496f6b31fa5426ae8885d4, stripped
Packer: None
Wpeeper از تکنیکهای ضد آنالیز استفاده نمیکند. از این رو، مهندسی معکوس آن نسبتاً ساده است. Wpeeper هنگامی که بر روی دستگاه قربانی اجرا میشود، وجود فایلی به نام store.lock را در همان دایرکتوری بررسی میکند که حاوی اطلاعات پیکربندی شامل سرورهای C2 و کوکی است. اگر فایل store.lock وجود داشته باشد، بدافزار از AES CBC به منظور رمزگشایی فایل برای بدست آوردن C2 استفاده میکند.
Wpeeper سپس یک درخواست POST را با استفاده از libcurl برای برقراری ارتباط با سرور C2 ایجاد میکند و منتظر دستورات خواهد ماند. اگر فایل store.lock وجود نداشته باشد، بدافزار، سرورهای C2 تعبیه شده در نمونه را با استفاده از Base64 رمزگشایی میکند، سپس آنها را رمزگذاری کرده و پیش از برقراری ارتباط و اجرای دستورات، آنها را به همان شیوه در فایل store.lock ذخیره میکند.
ارتباطات شبکهای
Wpeeper از کتابخانه libcurl برای ایجاد درخواستهای POST به منظور تعامل با سرور C2 استفاده میکند. فیلدهای Cookie و Session در هدر، بسیار حیاتی هستند چرا که از آنها برای شناسایی انواع مختلف درخواستها استفاده میشود.
نقش C2
Wpeeper در این عملیات، از 45 سرور C2 استفاده کرده است. طراحی این سرورها نشان میدهد که مهاجمان بسیار با تجربه هستند و بهترین شیوه حملات سایبری را دنبال میکنند.
اکثر 45 سرور C2، سایتهای مختلف وردپرس هک شده میباشند که موضوعاتی مانند غذا، دارو، ورزش و محتوای ویژه بزرگسالان را پوشش میدهند. بسیار بعید است که سرورهای C2 مستقیماً در این سایتها مستقر شده باشند، بلکه نقش آنها ارسال درخواستهای ربات به C2 است. این کار، با هدف محافظت از C2 واقعی در برابر شناسایی صورت گرفته است.
سخن پایانی
از آنجایی که اپراتورهای Wpeeper و انگیزه آنها هنوز ناشناخته است، هدف از داده های ربوده شده و نحوه استفاده از آنها مشخص نیست. شواهد بیانگر آن است که هدف طراحان و اپراتورهای Wpeeper، مواردی چون نفوذ به شبکه، جمع آوری اطلاعات و کلاهبرداری مالی میباشد.
توصیه میشود کاربران اندروید به منظور جلوگیری از خطرات بدافزارهایی مانند Wpeeper، برنامههای مورد نیاز خود را تنها از فروشگاه رسمی Google Play دانلود کنند و اطمینان یابند که Play Protect، در دستگاه آنها فعال میباشد.