نویسنده: کوشا زنجانی
دیشب به همراه یکی از دوستانم برای باگهانتینگ، در Shodan و Censys دنبال سرورهای Redis NoSQL بودیم (مشخصا به خاطر این که بیشتر این دیتابیسها هیچ سازوکار احراز هویتی ندارند 😆). در همین فرایند به چند نکتهی جالب برخوردم که باعث شد این پست بلاگ را بنویسم. به نظر میرسید اکثر سرورهای Redis اکسپلویت شده و به یک ماینر ساخت تیم هکری TeamTNT آلوده شدهاند. برای پیدا کردن سرورهای Redis، از این کوئری شودان استفاده کردم:
port:6379
Redis ابزاری به نام redis-cli دارد که با آن میتوانید با سرورهای Redis کار کنید. من با استفاده از این ابزار به سرورهای Redis متصل شدم تا آسیبپذیریها و دادههای حساس را برای آوردن در گزارش باگهانتینگ پیدا کنم. برای اتصال به یک سرور Redis میتوانید از دستور زیر استفاده کنید:
redis-cli -h [Redis Server IP]
یک دیتابیس NoSQL از نوع کلید-مقدار (Key-Value) است که داده را در حافظه (RAM) سرور ذخیره میکند. با استفاده از دستور info میتوانیم اطلاعات کلی درباره سرور Redis و سیستمعامل آن را به دست آوریم. اگر قصد دارید فضای کلیدها یا Keyspace (اطلاعات مربوط به کلیدها و دیتابیسها) را ببینید، از دستور info Keyspace استفاده کنید.
همانطور که میبینید، سرور بالا یک دیتابیس با نام db0 با 4 کلید دارد. با استفاده از دستور DUMP میتوانیم کلیدها را دامپ کنیم؛ اگر دستور DUMP کار نکرد از دستور MGET نیز میتوانیم استفاده کنیم (تکنیک بایپس؟! 😃).
همانطور که میبینید توسط cURL یک URL ریکوئست شده است. من این فایل را دانلود کردم و از دستور file استفاده کردم تا تعیین کنم چه نوع فایلی است.
این فایل 1488 خط کد است 😐. من چند بخش از این اسکریپت بش را بررسی کردم و در این جا بخشی از کارکردهای آن را توضیح میدهم. در تصویر بالا میتوانید ببینید که خط 4 خروجی دستور id را به سرور فرماندهی و کنترل (C2) هکرها ارسال میکند. علاوه بر این، میتوانید ببینید که در خطهای بعدی کلمهی miner چندین بار تکرار شده است که نشان میدهد به احتمال زیاد با یک کریپتوماینر طرف هستیم.
پس از آن، کد چک میکند که سرویس مانیتورینگ ابری Alibaba فعال است یا نه (تا خط 140). پس از آن SELINUX ، AppArmor و Aliyun را غیرفعال میکند. این بدافزار بش از این اسکریپت برای غیرفعالکردن سرویس مانیتورینگ ابری Alibaba استفاده میکند.
به جامعه کارشناسان امنیت بپیوندید:
پس از انجام تمام این کارها، چندین URL با پسوند jpg قرار دارند که لینکهای پیکربندی، ماینر و … هستند.
اولین URL (که به mid.jpg ختم میشود) را دانلود کردم که یک فایل gzip بود. نام آن را تغییر دادم و آن را اکسترکت کردم که خروجی هم یک فایل فشردهی tar بود که آن را هم از حالت فشرده خارج کردم.
خروجی این کار دو فایل با نامهای [ext4] و [ext4.pid] بود. فایل اصلی یک فایل ELF است و فایل با پسوند pid هم یک فایل پیکربندی در قالب JSON است.
جلوتر که برویم، در خط 789 یک متغیر به نام DIA_TAR هست که با الگوریتم base64 انکود شده است. من این متغیر را دیکود و ذخیره کردم. خروجی یک فایل gzip بود که آن را از حالت فشرده خارج کردم که حاصل آن 3 فایل با نامهای diamorphine.c ، diamorphine.h و Makefile بود. یک روتکیت! هورااا!! این روتکیت قابلیتهای مختلفی مثل پنهانکردن یک پروسس، ارتقای دسترسی و … دارد و توسط سیستم در قالب یک ماژول so کامپایل و اجرا میشود.
بدافزار بعد از تمام کامپایلها و اجراشدن تمام بخشها و…، از طریق SSH یک بکدور روی سیستم قربانی ایجاد میکند.
حالا همهچیز برای اجرای xmrig آماده است. بدافزار یک لوگوی TeamTNT پرینت میکند و ماینر xmrig را برای ماینکردن ارز monero اجرا میکند.
این بدافزار چند فایل دیگر هم دانلود میکند که چون وقت زیادی برای تحلیل آنها نداشتم، در اینجا توضیحی درباره آنها ندادهام، تنبلی مرا ببخشید! پس از این که نصب بدافزار کامل شد، یک اسکریپت شل دیگر دانلود میکند تا زنجیرهی کشتار کامل شود. همچنین ابزاری به نام pnscan دانلود میکند که یک اسکنر پورت است.
به طور خلاصه، این بدافزار یک ماینر و RAT برای سیستمهای لینوکسی است. من این نمونهها را در any.run آپلود کردم و شما میتوانید آنها را دانلود کرده و این بدافزار را بیشتر تحلیل کنید. اگر چیز جالبی پیدا کردید حتما برای من ارسال کنید!