LOADING CLOSE

هدف بدافزار Remaiten روترها و وسایل IoT

هدف بدافزار Remaiten روترها و وسایل IoT

هدف بدافزار Remaiten روترها و وسایل IoT

هدف بدافزار Remaiten روترها و وسایل IoT

محققان ESET در حال فعالانه مانیتور کردن یک بدافزار هستند که سیستم‌های embed شده مانند روتر ها، gateway ها و نقاط دسترسی وایرلس را هدف قرار میدهد. این bot توانایی‌های بدافزارهای Tsunami/Kaiten و Gafgyt را ادغام کرده است و در آن بهبود و چند عملکرد جدید دیده می‌شود. ESET نام این بدافزار را Linux/Remaiten گذاشته است. تابه‌حال سه ورژن (2.0، 2.1، 2.2) آن بر اساس محتوای کد شناسایی‌شده‌اند. این بدافزار جدید را سازنده آن “KTN-Remastered” یا “KTN-RM” نام‌گذاری کرده است. شرح ذیل مکانیزیم توزیع، مشخصات و تفاوت‌های بین ورژن ها را ارائه می‌دهد.

مکانیزم توزیع بهبودیافته
یکی از مشخصه‌های برجسته Linux/Gafgyt اسکن telnet  می‌باشد. در زمان دستور دهی برای اجرا اسکن telnet، این بدافزار سعی بر اتصال به آدرس‌های IP تصادفی در اینترنت از پورت 23 را دارد. اگر اتصال با موفقیت انجام شود، آن سعی می‌کند که اطلاعات login را از لیست embed شده، اسم کاربر/اسم رمز، را حدس بزند. در صورت موفقیت login انجام می‌شود و بدافزار دستور shell برای دانلود کردن بات قابل‌اجرا برای معماری‌های مختلف را صادر می‌کند و سعی بر اجرا آنها می‌کند. با این کار قربانی جدید آلوده می‌شود چون به‌هرحال یکی از binary ها ممکن است قربانی را هک کند.
Linux/Remaiten مکانیزم توزیع را ارتقا و بهبود می‌دهد، چون downloader اجراکننده “معماری‌های CPU” را در وسایل embed شده Linux (مانند ARM و MIPS) حمل می‌کند. پس از login از طریق درخواست telnet در وسیله قربانی، بدافزار سعی می‌کند که پلتفرم وسیله قربانی را مشخص نماید و تنها downloader مناسب را ارسال کند. کار این downloader درخواست کردن معماری مناسب باینری bot Linux/Remaiten از سرور C&C می‌باشد. این binary سپس  بر روی دستگاه قربانی اجرا می‌شود  و یک bot مخرب برای هکرها به وجود می‌آورد.

تحلیل فنی downloader
دانلودرهای Linux/Remaiten برنامه‌های کوچک قابل‌اجرا هستند که در باینری bot ها embed شده‌اند. در زمان اجرا در سیستم قربانی، این دانلودر ها به سرور C&C بات متصل می‌شوند و یکی از دستورات زیر را با یک خط جدید ارسال می‌کنند.
•    mips
•    mipsel
•    armeabi
•    armebeabi
C&C با یک بات باینری EFL
C&C با یک بات باینری ELF معماری درخواستی را ارسال می‌کند. پورت TPC استفاده‌شده برای اتصال به سرور C&C از سرور IRC در بات های بعدی متفاوت است.

Remaiten1

 
1- درخواست Downloader یک بات باینری ازC&C

Remaiten2

2- اتصال Downloader به C&C

تنها فعالیت دانلودر ارسال یکی از دستورات اجرا به سرور C&C و نوشتن جواب به stdout است. در مورد ذیل این دستور mips می‌باشد.

 

 Remaiten3
3- درخواست Downloader برای bot معماری mips از C&C

تحلیل Bot
در زمان اجرا و به‌صورت پیش‌فرض، بات در background فعال است. اجرا آن با سویچ”-d” به آن دستور می‌دهد در foreground بماند. پس از شروع پروسه، Bot اسم خود را به موردی موجه عوض می‌کند (مانند –bash یا –sh). ما –bash را در نسخه‌های 2.0 و 2.1 و  را در نسخه 2.2 دیده‌ایم.

Remaiten4

4- شروع فعالیت Bot

سپس عملکرد Create daemon یک فایل بانام “.kpid” دریکی از directory های از پیش تعیین‌شده daemon به وجود می‌آورد و PID را به این فایل write می‌کند.

Remaiten5
5- directory از پیش تعیین‌شده daemon

 

اگر فایل “.kdip” وجود داشته باشد پروسه در حال اجرا بدافزاری بر اساس وجود فایل PID متوقف می‌شود، فایل حذف می‌گردد، یک فایل جدید  “.kdip” به وجود می‌آید و پروسه به‌صورت عادی مجدداً اجرا می‌شود.

 Remaiten6
6- به وجود آمدن فایل PID

اتصال به C&C
یک لیست از آدرس‌های IP سرور C&C در بات باینری‌ها وجود دارد. یکی از اینها به‌صورت اتفاقی انتخاب می‌شود و بات آن را با پورت hardcode متصل می‌کند. این پورت در گونه‌ها متفاوت است.

 Remaiten7
7- اتصال بات به سرور C&C

اگر بات با موفقیت با سرور C&C تماس برقرار کند، از طریق کانال IRC “check-in ” می‌کند. C&C سپس با یک پیام خوش‌آمد گویی و دستورات بیشتر پاسخ می‌دهد. این دستورات توسط بات Parse شده و در دستگاه آلوده اجرا می‌شوند.

Remaiten8
8- پیام خوش‌آمد گویی بات از C&C

مدیریت دستورات IRC
این بات به دستورات کلی IRC پاسخ می‌دهد و در لیست زیر به همراه function handler آمده‌اند.

Remaiten9

9- دستورات IRC

جالب‌ترین دستور “PRIVMSG” می‌باشد. آن را برای دستور دادن به بات برای اجرا انواع عملیات مخرب مانند flooding، دانلود نمودن فایل‌ها، اسکن telnet و غیره استفاده می‌کنند.این دستورات می‌توانند به‌صورت آرایه استاتیک (static array) ارسال شوند.

Remaiten10
10- دستورات بات موجود

بیشتر این توانایی‌ها از Linux/Tsunami و بقیه از Linux/Gafgyt برداشته‌شده‌اند. در شکل زیر نمونه‌های رشته‌های باینری (binary strings) مربوط به رفتار مخرب آمده است. آنها توضیحات بهتری برای عملکرد خوددارند.

 Remaiten11
11- توانایی‌های Flooding

Remaiten12

12- اسکن کردن Telnet، دانلود کردن یک فایل، کشتن بات های دیگر

دانلودر embed شده
Linux/Remaiten به دلیل اینکه میتواند چندین دانلودر کوچک را حمل کند و به دستگاه قربانی آپلود کند، درصورتی‌که معماری‌های وسیله و downloader باهم هماهنگ باشند. در زمان اجرا، downloader از سرور C&C درخواست یک بات باینری می‌کند.

 Remaiten13
13- Embedded payloads

Remaiten14
14- ساختار payload

اسکنر Telnet

Remaiten15

15- حدس زدن شناسه login در telnet

اسکنر telnet بدافزار Remaiten  وقتی‌که سرور C&C دستور “QTWLNET” را صادر می‌کند شروع به کار می‌کند. تحلیل نشان می‌دهد که شرح دستور سازنده بدافزار درست است و آن نسخه بهبودیافته اسکنر telnet موجود در بدافزار Gafgyt  می‌باشد.
اسکن Telnet در مراحل زیر انجام می‌شود:
1.    انتخاب یک آدرس IP  اتفاقی عمومی و اتصال به آن از پورت 23
2.    امتحان انواع ترکیب‌های اسم کاربر و اسم رمز
3.    کشف ساختار معماری قربانی
4.    ارسال و اجرا معماری مناسب
معماری با اجرا فرمان “cat $SHELL” در سیستم قربانی و Parse کردن نتایج کشف می‌شود. متغیر محیط SHELL دارای مسیر به اجراکننده فعلی ” command line interpreter” می‌باشد. اگر این فایل یک ELF قابل‌اجرا باشد، Header آن نیز برای تعیین معماری parse می‌شود.

Remaiten16

16- کشف پلتفرم قربانی و چک کردن با downloader برای موجود بودن این پلتفرم

Remaiten17

17- قسمتی از عملکرد که EFL Header را Parse می‌کند

سپس بات payload مناسب را انتخاب می‌کند و به‌وسیله قربانی ارسال می‌کند.

Remaiten18
18- عملکردی که payload را بر اساس معماری سیستم قربانی انتخاب می‌کند

اولین قدم پیدا کردن یک directory قابل write است. Linux/Remaiten یک لیست مسیرهای عمومی و قابل write را دارد.

 

 Remaiten19
19- لیست directory هایی که در ]ن ممکن است downloader  ذخیره شود

چندین فایل اجرایی خالی ساخته می‌شود (“.t” و “retrieve” و “binary”). فایل “retrieve” دارای downloader می‌باشد و فایل “binary” bot درخواست شده از سرور C&C می‌باشد. فایل “.t” به نظر میاید که در نسخه‌های بعد از 2.2 استفاده‌شده است.

 Remaiten20
20- اماده‌سازی payload برای انتقال و اجرا

Linux/Remaiten روشی عجیب برای ساختن یک فایل قابل‌اجرا خالی دارد: آن باینری busybox را که اکثر وسایل embed شده است را کپی می‌کند و سپس با دستور >file خالی می‌کند. Downloader از طریق telnet، با ارسال دستورات echo با هر بایت hex-encoded و با سکانس فرار “/x”، انتقال میابد. این تکنیک قبلاً برای توزیع بدافزار در وسایل لینوکس embed شده دیده‌شده است.

 

 Remaiten21
21- انتقال payload hexstring با echo

 

پس از انتقال downloader، آن اجرا می‌شود تا  payload کامل Linux/Remaiten را دانلود کند. downloader یک بات  باینری از C&C درخواست می‌کند و آن را به Standard output رایت (write) می‌کند و آن را به فایل باینری هدایت می‌کند. در آخر فایل باینری اجرا می‌گردد و بات IRS فعال است.

 

 Remaiten22
22- اجراشدن Downloader و بات

ارسال وضعیت به C&C
قبل از شروع اسکن telnet، بات مقدار پیشرفت خود را به اطلاع سرور C&C می‌رساند. بات اطلاعات آدرس IP دستگاه قربانی، اسم کاربر و اسم رمز استخراج‌شده و اینکه آیا دستگاه دیگری را آلوده کرده است را ارسال می‌کند.

 Remaiten23
23- اطلاع‌رسانی وضعیت به C&C

Kill بات های دیگر
یکی دیگر از دستورات جالب “KILLBOTS” می‌باشد. در زمان صدور، بات پروسه‌های در حال اجرا (running processes) را شمرده و تصمیم می‌گیرد بر اساس شاخص‌های محدود خود کدام را kill کند اما بیشتر بر روی اسم آنها تأکید دارد. اسم پروسه‌ها در ورژن های مختلف بات ها متفاوت است.

 

 Remaiten24
24- لیست اسامی پروسه‌ها برای kill

Remaiten25
25- لیست اسامی پروسه‌های نادیده گرفته‌شده

Linux/Remaiten فقط پروسه‌هایی را قطع می‌کند که از interactive shell شروع‌شده‌اند و به شماره tty پروسه در وسیله نگاه می‌کند. سپس بات اسامی پروسه‌های kill شده را به سرور C&C ارسال می‌کند.

 Remaiten26

26- پروسهkill بات های دیگر

دیدگاهتان را بنویسید