هدف بدافزار 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 در بات های بعدی متفاوت است.
1- درخواست Downloader یک بات باینری ازC&C
2- اتصال Downloader به C&C
تنها فعالیت دانلودر ارسال یکی از دستورات اجرا به سرور C&C و نوشتن جواب به stdout است. در مورد ذیل این دستور mips میباشد.
3- درخواست Downloader برای bot معماری mips از C&C
تحلیل Bot
در زمان اجرا و بهصورت پیشفرض، بات در background فعال است. اجرا آن با سویچ”-d” به آن دستور میدهد در foreground بماند. پس از شروع پروسه، Bot اسم خود را به موردی موجه عوض میکند (مانند –bash یا –sh). ما –bash را در نسخههای 2.0 و 2.1 و را در نسخه 2.2 دیدهایم.
4- شروع فعالیت Bot
سپس عملکرد Create daemon یک فایل بانام “.kpid” دریکی از directory های از پیش تعیینشده daemon به وجود میآورد و PID را به این فایل write میکند.
5- directory از پیش تعیینشده daemon
اگر فایل “.kdip” وجود داشته باشد پروسه در حال اجرا بدافزاری بر اساس وجود فایل PID متوقف میشود، فایل حذف میگردد، یک فایل جدید “.kdip” به وجود میآید و پروسه بهصورت عادی مجدداً اجرا میشود.
6- به وجود آمدن فایل PID
اتصال به C&C
یک لیست از آدرسهای IP سرور C&C در بات باینریها وجود دارد. یکی از اینها بهصورت اتفاقی انتخاب میشود و بات آن را با پورت hardcode متصل میکند. این پورت در گونهها متفاوت است.
7- اتصال بات به سرور C&C
اگر بات با موفقیت با سرور C&C تماس برقرار کند، از طریق کانال IRC “check-in ” میکند. C&C سپس با یک پیام خوشآمد گویی و دستورات بیشتر پاسخ میدهد. این دستورات توسط بات Parse شده و در دستگاه آلوده اجرا میشوند.
8- پیام خوشآمد گویی بات از C&C
مدیریت دستورات IRC
این بات به دستورات کلی IRC پاسخ میدهد و در لیست زیر به همراه function handler آمدهاند.
9- دستورات IRC
جالبترین دستور “PRIVMSG” میباشد. آن را برای دستور دادن به بات برای اجرا انواع عملیات مخرب مانند flooding، دانلود نمودن فایلها، اسکن telnet و غیره استفاده میکنند.این دستورات میتوانند بهصورت آرایه استاتیک (static array) ارسال شوند.
10- دستورات بات موجود
بیشتر این تواناییها از Linux/Tsunami و بقیه از Linux/Gafgyt برداشتهشدهاند. در شکل زیر نمونههای رشتههای باینری (binary strings) مربوط به رفتار مخرب آمده است. آنها توضیحات بهتری برای عملکرد خوددارند.
11- تواناییهای Flooding
12- اسکن کردن Telnet، دانلود کردن یک فایل، کشتن بات های دیگر
دانلودر embed شده
Linux/Remaiten به دلیل اینکه میتواند چندین دانلودر کوچک را حمل کند و به دستگاه قربانی آپلود کند، درصورتیکه معماریهای وسیله و downloader باهم هماهنگ باشند. در زمان اجرا، downloader از سرور C&C درخواست یک بات باینری میکند.
13- Embedded payloads
14- ساختار payload
اسکنر Telnet
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 میشود.
16- کشف پلتفرم قربانی و چک کردن با downloader برای موجود بودن این پلتفرم
17- قسمتی از عملکرد که EFL Header را Parse میکند
سپس بات payload مناسب را انتخاب میکند و بهوسیله قربانی ارسال میکند.
18- عملکردی که payload را بر اساس معماری سیستم قربانی انتخاب میکند
اولین قدم پیدا کردن یک directory قابل write است. Linux/Remaiten یک لیست مسیرهای عمومی و قابل write را دارد.
19- لیست directory هایی که در ]ن ممکن است downloader ذخیره شود
چندین فایل اجرایی خالی ساخته میشود (“.t” و “retrieve” و “binary”). فایل “retrieve” دارای downloader میباشد و فایل “binary” bot درخواست شده از سرور C&C میباشد. فایل “.t” به نظر میاید که در نسخههای بعد از 2.2 استفادهشده است.
20- امادهسازی payload برای انتقال و اجرا
Linux/Remaiten روشی عجیب برای ساختن یک فایل قابلاجرا خالی دارد: آن باینری busybox را که اکثر وسایل embed شده است را کپی میکند و سپس با دستور >file خالی میکند. Downloader از طریق telnet، با ارسال دستورات echo با هر بایت hex-encoded و با سکانس فرار “/x”، انتقال میابد. این تکنیک قبلاً برای توزیع بدافزار در وسایل لینوکس embed شده دیدهشده است.
21- انتقال payload hexstring با echo
پس از انتقال downloader، آن اجرا میشود تا payload کامل Linux/Remaiten را دانلود کند. downloader یک بات باینری از C&C درخواست میکند و آن را به Standard output رایت (write) میکند و آن را به فایل باینری هدایت میکند. در آخر فایل باینری اجرا میگردد و بات IRS فعال است.
22- اجراشدن Downloader و بات
ارسال وضعیت به C&C
قبل از شروع اسکن telnet، بات مقدار پیشرفت خود را به اطلاع سرور C&C میرساند. بات اطلاعات آدرس IP دستگاه قربانی، اسم کاربر و اسم رمز استخراجشده و اینکه آیا دستگاه دیگری را آلوده کرده است را ارسال میکند.
23- اطلاعرسانی وضعیت به C&C
Kill بات های دیگر
یکی دیگر از دستورات جالب “KILLBOTS” میباشد. در زمان صدور، بات پروسههای در حال اجرا (running processes) را شمرده و تصمیم میگیرد بر اساس شاخصهای محدود خود کدام را kill کند اما بیشتر بر روی اسم آنها تأکید دارد. اسم پروسهها در ورژن های مختلف بات ها متفاوت است.
24- لیست اسامی پروسهها برای kill
25- لیست اسامی پروسههای نادیده گرفتهشده
Linux/Remaiten فقط پروسههایی را قطع میکند که از interactive shell شروعشدهاند و به شماره tty پروسه در وسیله نگاه میکند. سپس بات اسامی پروسههای kill شده را به سرور C&C ارسال میکند.
26- پروسهkill بات های دیگر