بلاگ آزمایشگاه امنیت وایت لب بلاگ آزمایشگاه امنیت وایت لب

Plurox - بکدوری ماژولار

| زمان مطالعه : 5 دقیقه
Plurox -  بکدوری ماژولار

به گزارش securelist:
در ماه فوریه امسال یک بکدور در سیستم مانیتوریگ دیده شد. این بدافزار به طور فوق العاده‌ای قوی و حرفه‌ای بود. چند ویژگی در آن باعث می‌شد تا قدرت آن چند برابر شود. از مهم‌ترین آن‌ها پخش خودکار در شبکه محلی بود. بعد از انتشار اقدام به نصب معدن‌کاو‌ها (miners) و دیگر نرم‌افزار‌های مخرب می‌کرد. ویژگی بسیار جالب این بکدور امکان نصب پلاگین روی آن بود که با توجه به موقعیت و شرایط شبکه به صورت خودکار نصب می‌شد.
نتیجه آن بود که بکدور به صورت فوق العاده‌ای گسترش پیدا می‌کرد و باعث آلودگی و آسیب دیدن بسیاری از سیستم‌ها می‌شد.
طبق بررسی‌های انجام شده نام این بکدور Backdoor.Win32.Plurox بود.

ویژگی‌های کلیدی

Plurox نوشته شده به زبان C و کامپایل شده توسط Mingw GCC است. با توجه به وجود خطوط خطایابی در ابتدای آن می‌توان گفت، این بدافزار در حالت بررسی و توسعه بوده است.

خطوط خطایابی که در ابتدای بکدور یافت شده است.

این بکدور از پروتکل TCP برای ارتباط با سرور C&C استفاده می‌کرد. همچنین پلاگین‌ها بارگیری شده بودند و به صورت مستقیم از دو پورت مختلف استفاده می‌نمود که این دو پورت در بکدور مورد نظر گنجانده شده بود. همچنین آدرس C&C نیز در برنامه قرار داده شده بود.
در حین رصد کردن فعل و انفعالات بدافزار، توانستیم دو زیر شبکه را شناسایی کنیم. در یکی از آن‌ها، Plurox تنها معدن‌کاو‌ها را دریافت می‌کرد. (ماژول‌های auto_proc, auto_cuda, autp_gpu_nvidial)
در دیگری، در کنار معدن‌کاو‌ها (ماژول‌های auto_opencl_amd, auto_miner)، چندین پلاگین مختلف وجود داشت که در ادامه مطلب به آن خواهیم پرداخت.

خانواده Plurox به صورت مجازی از هیچ رمزنگاری استفاده نمی‌کنند. تنها ۴ بایت کلید برای یک رمزنگاری ساده XOR استفاده می‌شود.
ترافیک ضبط شده برای صدا زدن C&C شبیه به شکل زیر است.

ترافیک ضبط شده برای صدا زدن C&C

رشته buffer با استفاده از کلید ابتدایی بسته XOR شده است. پاسخ دریافتی از C&C شامل دستورات به همراه داده برای اجرا روی سیستم است که با XOR رمزنگاری شده‌اند. هنگامی که پلاگین بارگیری می‌شود، bot به صورت خودکار با توجه به سیستم برنامه و پلاگین مورد نیاز را درخواست می‌دهد (auto_proc, auto_proc64)
در پاسخ به آن یک بسته رمزنگاری شده دریافت می‌شود. یک پرونده معمولی MZ-PE.

دستورات پشتیبانی شده

در Plurox بررسی شده در کل ۷ دستور وجود داشت.

  • بارگیری (Download) و اجرای پرونده‌ها با استفاده از WinAPI CreateProcess
  • بروزرسانی bot
  • حذف و توقف کردن (حذف سرویس‌های خود، حذف بارگیری خودکار، حذف پرونده‌ها و حذف مصنوعات از registry)
  • بارگیری و اجرای پلاگین‌ها
  • توقف (stop) پلاگین‌ها
  • بروزرسانی پلاگین‌ها (توقف پروسه و حذف فایل‌های قدیمی و بارگیری و اجرای دوباره پلاگین)
  • توقف و حذف پلاگین‌ها
    سوییچ مدیریت دستورات

پلاگین‌ها

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

پلاگین معدن کاوها

بدافزار توانایی نصب معدن‌کاوهای یکی از چندین ارز مجازی را روی سیستم قربانی دارد که بستگی به سیستم قربانی و مشخصات آن است. Bot یک بسته حاوی اطلاعات سیستم و مشخصات آن را برای C&C ارسال می‌کند. در جواب اطلاعاتی درباره دریافت پلاگین مربوط به معدن‌کاوها دریافت می‌کند. ما توانستیم ۸ ماژول برای این کار پیدا کنیم. که با توجه به نام آن‌ها می‌توان کارایی آن‌ها رو حدس زد.

  • auto_proc
  • auto_cuda
  • auto_miner
  • auto_opencl_amd
  • auto_gpu_intel
  • auto_gpu_nvidia
  • auto_gpu_cuda
  • auto_gpu_amd

پلاگین UPnP

این ماژول از سوی C&C یک زیر شبکه با mask /24 دریافت می‌کند و تمامی آدرس‌های آن را می‌گیرد و سعی می‌کند تا پورت‌های ۱۳۵ (MS-RPC) و ۴۴۵ (SMB) از طریق پروتکل UPnP ارسال کند. اگر موفقیت آمیز باشد، bot گزارشی را برای C&C ارسال می کند. برای ۳۰۰ ثانیه (۵ دقیقه) صبر می‌کند و سپس ارسال پورت (port frowarding) را حذف می‌کند. ما حدس می‌زنیم که این پلاگین به منظور حمله در شبکه محلی مورد استفاده قرار می‌گیرد. در این ۵ دقیقه حمله کننده تمامی exploitهای موجود روی این دو سرویس را بررسی می‌کند تا دسترسی به شبکه بگیرد. اگر مدیریت شبکه متوجه حمله در شبکه بشود، آن را از طریق router به صورت مستقیم خواهد دید و متوجه نخواهد شد که از طریق یکی از ماشین‌های محلی است. لذا باعث می‌شود تا مجرمان مجازی دسترسی خود به شبکه را حفظ کنند.

اسکن شبکه و تشخیص مایشن‌های محلی

با توجه به توضیحات می‌تواند متوجه شد این پلاگین بسیار به EternalSilence شباهت دارد. تنها تفاوت آن ارسال پورت ۱۳۵ به جای ۱۳۹ می‌باشد.
مقاله آکامی را برای جزئیات بیشتر درباره EternalSilence مطالعه بفرمایید:

1
2
{“NewProtocol”: “TCP”, “NewInternalPort”: “445”, “NewInternalClient”: “192.168.10.165”,
“NewPortMappingDescription”: “galleta silenciosa”, “NewExternalPort”: “47622”}

در زیر قالب استفاده شده در پلاگین Plurox قابل مشاهده است.

1
2
3
4
5
<NewProtocol>TCP</NewProtocol>
<NewInternalPort>%d</NewInternalPort>
<NewInternalClient>%s</NewInternalClient>
<NewEnabled>1</NewEnabled>
<NewPortMappingDescription>galleta silenciosa</NewPortMappingDescription>

پلاگین SMB

این ماژول مسئولیت گسترش و پخش کردن بدافزار در شبکه را با استفاده از اکسپلویت EternalBlue دارد که با نام wormDll32 و ماژول Trojan.Win32.Trickster شناخته می‌شود. در این ماژول هیچ خطی برای خطایابی وجود ندارد. به علاوه payloadهای بارگیری شده در این پلاگین از طریق سوکت انجام شده است.

پلاگین SMB

تصویر چپ: پلاگین SMB که برای تزریق کد استفاده می‌شود.
تصویر راست: WormDll تزریق کد انجام می‌دهد.

مقایسه پلاگین Plurox و WormDLL

تصویر چپ: پلاگین Plurox و NetSaverEnum
تصویر راست: مربوط به WormDll و NetSaverEnum

همانطور که در این مثال‌ها قابل مشاهده است، نه تنها تزریق کد‌ها یکسان است، بلکه استاندارد و نحوه نگارش کد نیز یکسان است. بر اساس این موضوع، می‌توان حدس زد که هر دو از یک کد منبع الهام گرفته‌اند (خطوط کامنت شده در پلاگین Trickster در Plurox وجود ندارند)، که میتوان نتیجه گرفت سازنده‌ی آن‌ها با هم ارتباط دارند.