AnyDesk یک برنامه ی محبوب Remote Desktop هستش که به کاربران امکان میده تا از راه دور به رایانه ها و دستگاه متصل بشن. این برنامه ویژگیهایی مانند انتقال فایل، دسترسی بدون نظارت، ضبط جلسه و پروتکلهای امنیتی قوی رو ارائه میده. AnyDesk به دلیل عملکرد بالا، تأخیر کم و رابط کاربری آسون، مورد علاقه متخصصان فناوری اطلاعات و کسبوکارها قرار گرفته.
با این حال، در چشمانداز در حال تکامل امنیت سایبری، ابزارهایی که برای افزایش بهرهوری و سادهسازی عملیات از راه دور طراحی شدن، به طور فزایندهای توسط هکرها مورد سوء استفاده قرار میگیرن. AnyDesk نیز از این قاعده مستثنی نیست و بدلیل پتانسیل استفاده دوگانه خود مورد بررسی قرار گرفته.
AnyDesk در ابتدا، برای تسهیل دسترسی از راه دور قانونی، برای پشتیبانی فناوری اطلاعات، همکاری و کار از راه دور طراحی شده بود، اما مشاهده شده که هکرها، از قابلیتهای AnyDesk برای کنترل رایانهها و در نتیجه دسترسی غیرمجاز به سیستمهای قربانیان استفاده میکنن.
با استفاده از AnyDesk، هکرها میتونن از طریق تکنیکهای مهندسی اجتماعی از کاربران سوء استفاده کنن، از اون به عنوان یک مکانیزم پرسیست استفاده کنن، انواع مختلفی از بدافزارها رو مستقر کنن و دادههای حساس رو خارج کنن.
این امر پیچیدگیها و چالشهای موجود در تأمین امنیت محیطهای دیجیتال رو برجسته میکنه، جایی که نرمافزاری که برای افزایش کارایی و اتصال طراحی شده، میتونه برای اهداف مخرب مورد سوء استفاده قرار بگیره.
در این مقاله که توسط محققین NCCGROUP نوشته شده، نحوه استفاده هکرها از AnyDesk برای اهداف مخرب و همچنین شواهد فارنزیکی که در لاگهای AnyDesk ایجاد میشن رو بررسی کردیم.
MITRE :
دسترسی اولیه:
هکرها اغلب از تکنیکهای مهندسی اجتماعی برای فریب کاربران و دریافت دسترسی از راه دور استفاده میکنن. اونا با جعل هویت پرسنل پشتیبان فناوری اطلاعات یا سایر نهادهای قابل اعتماد، میتونن کاربران رو متقاعد کنن، که اعتبارنامههای AnyDesk خودشون رو به اشتراک بذارن یا درخواستهای دسترسی از راه دور رو تأیید کنن.
گروه باجافزاری Black Basta از تاکتیکهای مشابهی استفاده میکردن، اونا با ارسال اسپم به کاربران هدفمند با ایمیلهای ثبتنام قانونی خبرنامه، باعث اختلال میشدن و بعدش با کاربر تماس تلفنی میگرفتن و اونارو متقاعد میکردن که برای حل مشکل، یک ابزار دسترسی از راه دور مانند AnyDesk رو دانلود کنن.
فیشینگ همچنین یک روش رایج برای هکرها برای به دست آوردن دسترسی اولیه هستش. اونا میتونن کاربران رو فریب بدن تا نسخههای مخرب AnyDesk رو دانلود کنن یا از طریق ایمیلها یا وبسایتهای جعلی، اعتبارنامههای جعلی ارائه بدن. پس از نصب، مهاجمان به دستگاه قربانی دسترسی از راه دور پیدا میکنن.
مانند هر نرمافزاری، AnyDesk میتونه دارای آسیبپذیریهایی باشه که هکرها ممکنه از اونا سوء استفاده کنن. بروزرسانیها و وصلههای منظم برای کاهش این خطرات ضروری هستن. با این حال، سیستمهای وصلهنشده میتونن برای بدست آوردن دسترسی غیرمجاز مورد هدف قرار بگیرن.
یکی از ویژگیهای AnyDesk، دسترسی بدون نظارت هستش که به کاربر اجازه میده یک جلسه کنترل از راه دور با استفاده از یک رمز عبور راهاندازی کنه، بدون نیاز به پذیرش اتصال ورودی. اگه کاربر دسترسی بدون نظارت رو روی دستگاه خودش تنظیم کرده باشه، هکرها میتونن از طریق، Brute Force اعتبارنامههای کاربر یا استفاده از رمز عبورهایی که از جاهای دیگه به دست آوردن، دسترسی پیدا کنن.
اجرا (Execution) :
پس از دستیابی به دسترسی اولیه، بدافزار و باجافزار میتونه روی میزبان مستقر بشه که در بیشتر خانواده های باجافزار مانند Sodinokibi/REvil، Netwalker و Black Basta مشاهده شده. مهاجم همچنین میتونه اسکریپتهایی رو اجرا کنه تا ماندگاری، حرکت جانبی، جمعآوری اعتبارنامهها و اتصال به یک سرور C2 رو فراهم کنه.
ماندگاری (Persistence):
هکرها میتونن از طریق روشهای مختلف دسترسی غیرمجاز بدست بیارن، در ادامه، نصب به عنوان یک سرویس میتونه بعنوان یک مکانیسم ماندگاری برای ایجاد یک بکدور در شبکه استفاده بشه. این تکنیک توسط گروههای هکر مانند Medusa، Karakurt و Lockbit استفاده شده.
کد زیر به هکر اجازه میده AnyDesk رو بطور مخفی نصب کنه و یک رمز عبور برای بدست آوردن دسترسی از راه دور تنظیم کنه. همچنین یک کاربر جدید با امتیازات مدیر ایجاد کنه و حساب جدید رو از صفحه لاگین ویندوز مخفی کنه.
1 2 3 4 5 6 7 8 9 |
cmd.exe /c C:\ProgramData\AnyDesk.exe --install C:\Program\AnyDesk --start-with-win --silent cmd.exe /c echo J9kzQ2Y0qO | C:\ProgramData\anydesk.exe --set-password net user oldadministrator "jsbehsid#Zyw4E3" /add net localgroup Administrators oldadministrator /ADD reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\SpecialAccounts\Userlist" /v oldadministrator /t REG_DWORD /d 0 /f cmd.exe /c C:\ProgramData\AnyDesk.exe --get-id |
فرار از شناسایی :
برخی از هکرها ممکنه برای جلوگیری از جلب توجه،نام اجرایی AnyDesk رو به چیزی تغییر نام بدن، تا کمتر جلب توجه کنه.
حذف لاگهای AnyDesk همچنین میتونه برای اطمینان از شناسایی نشدن اتصالات و فعالیتهای مخرب انجام بشه.
جمع آوری اعتبارنامه ها:
اگه هکر کنترلی روی مکانهایی مانند مرورگر وب یا یک مدیر گذرواژه داشته باشه، میتونه به اعتبارنامهها دسترسی پیدا کنه. همچنین میتونه اسکریپتهایی رو برای جمعآوری اعتبارنامههای کاربر اجرا کنه.
جمع آوری اطلاعات:
پس از اینکه هکر دسترسی از راه دور به میزبان رو بدست آورد، میتونه با استفاده از تکنیکهای مختلف، اطلاعات بیشتری در مورد میزبان و محیط استفاده، بدست بیاره. این اطلاعات میتونه شامل جمعآوری لیست اکانتهای معتبر، دادههای ذخیره شده در مرورگرها، اطلاعات دستگاه، Group Policy و اطلاعات شبکه باشه، اما محدود به اینا هم نیست.
حرکت جانبی:
قبلا مشاهده شده که AnyDesk از طریق SMB shares با استفاده از Cobalt Strike برای حرکت بیشتر در یک شبکه قربانی توزیع شده.
Command and Control :
AnyDesk میتونه برای ایجاد یک کانال تعاملی C2 برای هدف قرار دادن سیستمهای درون شبکهها استفاده بشه. این تاکتیک توسط گروه باجافزار RagnarLocker مشاهده شده که AnyDesk رو از طریق اسکریپت مشابهی که بالا ذکر کردیم، نصب و یک رمز عبور برای دسترسی بدون نظارت تنظیم میکردن.
استخراج (Exfiltration) :
AnyDesk قابلیت انتقال و دانلود فایلها رو داره که میتونه برای خارج کردن دادهها استفاده بشه. استفاده از ابزارهای اداری قانونی، میتونه به هکر اجازه بده تا زیر رادار بمونه و از کنترلهای امنیتی عبور کنه، در حالیکه دادههای حساس رو منتقل میکنه.
شواهد فارنزیکی :
پس از اجرا شدن AnyDesk روی میزبان، چندین فایل و پوشه ایجاد میشه که میتونه اطلاعات مهمی رو در طول یک تحقیق ارائه بده. این شامل جزئیاتی در مورد اتصالات برقرار شده، فایلهای کپی یا دانلود شده، اسکرین شاتهای گرفته شده با استفاده از ویژگی AnyDesk، سیستم عامل استفاده شده و اینکه آیا ورودی کاربر غیرفعال شده یا حالت خصوصی درخواست شده، میشه. این اطلاعات برای فارنزیک کارها بسیار مهم هستش تا مشخص کنن که آیا فایلی بطور بالقوه از طریق AnyDesk خارج شده یا خیر و مدت دسترسی هکر رو ارزیابی کنن.
نسخه ی قابل حمل (Portable) و نصب شده ی AnyDesk، معمولا در مسیرهای زیر مستقر میشن:
1 2 |
Installed - C:\Program Files (x86)\AnyDesk\ Portable - C:\Users\Username\AppData\Roaming\AnyDesk |
وقتی جلسه ای شروع میشه، یسری پروفایل آماده وجود داره که میشه اونارو انتخاب کرد. مانند :
- پیشفرض (Default): حالت حریم خصوصی فعال است، راه اندازی مجدد دستگاه و ایجاد تونلهای TCP غیرفعال هستن.
- اشتراکگذاری صفحه نمایش (Screen Sharing): بدون پرمیشن، فقط اشتراکگذاری صفحه نمایش.
- دسترسی کامل/دسترسی بدون نظارت (Full Access/Unattended Access): تمام پزمیشن ها فعال هستن، مانند راه اندازی مجدد دستگاه، مدیر فایل، فعال کردن حالت خصوصی.
البته میشه پرمیشن ها رو بسته به نیازهای جلسه تغییر داد.
شواهدی که در این مقاله بررسی شدن، روی نسخه قابل حمل، با استفاده از پروفایل پیشفرض هستن.
فولدرها و فایلهای زیر هنگام اجرای AnyDesk، در فولدر AnyDesk ایجاد میشن:
- Cache
- Global_cache
- Thumbnails – تصویر پس زمینه سیستم راه دور، که بصورت محلی ذخیره شده.
- Chat – تاریخچه مکالمات بین کاربران
- Connection_trace – اتصالات ورودی و خروجی AnyDesk
- Service.conf – گواهی، کلید خصوصی
- Ad.trace – این لاگ مهم، حاوی اطلاعات مربوط به جزئیات اتصال، سیستم و اعلانهای برنامه، جزئیات انتقال فایلها، دانلودها، هرگونه درخواست کاربر برای حریم خصوصی، غیرفعال کردن ورودی کاربر و غیره هستش.
- System.conf – فایل پیکربندی
- User.conf
- Gcapi.dll – این فایل پس از باز شدن برنامه در کنار اون دانلود میشه. این بخشی از مرورگر وب Google Chrome هستش که برای تعامل با Google Cloud API استفاده میشه.
یک فولدر Videos در C:\Users\Username\Videos\AnyDesk در هر دو میزبان محلی و راه دور ایجاد میشه. اگه از صفحه فیلمبرداری بشه، در این فولدر و روی میزبان آغازکننده جلسه ذخیره میشه، البته اگه لایسنس استفاده شده این ویژگی رو مجاز کنه.
یک فولدر Pictures در C:\Users\Username\Pictures\AnyDesk ایجاد میشه. اگه از گزینه ی اسکرین شات در AnyDesk استفاده بشه، اسکرینشاتها بطور پیشفرض اینجا ذخیره میشن. اسکرین شات های گرفته شده فقط برای کاربری که از طریق AnyDesk اسکرین شات گرفته، در دسترس خواهد بود.
فایل Connection_trace:
وقتی یک درخواست اتصال دریافت میشه، AnyDesk فایل ‘connection_trace.txt’ رو ایجاد میکنه که شامل اطلاعاتی در مورد جلسه از جمله تاریخ و زمان اتصال، نحوه پذیرش یا رد اتصال و همچنین کسی که درخواست اتصال رو ارسال کرده، میشه.
فایل Ad.trace قادر به شناسایی شواهد حیاتی، از جمله زمانبندی (timestamps) شروع و پایان جلسه، آدرسهای IP اتصال، مجوزهای اعطا شده (مانند حالت خصوصی، مسدود کردن ورودی کاربر) و جزئیات مربوط به فعالیتهای کپی/انتقال فایل هستش. در حالیکه اکثر این شواهد بطور یکسان در هر دو میزبان محلی و راه دور ثبت میشن، برخی ناسازگاریها وجود داره. بعنوان مثال، رویدادهایی مانند اسکرینشاتها ممکنه فقط در یک میزبان، کاربری که اسکرینشات رو گرفته، ثبت بشه. شواهدی که میشه در طول یک تحقیق شناسایی کرد عبارتند از:
در میزبان محلی/قربانی:
اتصالات ایجاد شده:
1 2 |
anynet.any_socket - Logged in from [IP Address] on relay [XXX] anynet.connection_mgr - Making a new connection to client [XXX] |
این رویداد میتونه اطلاعاتی در خصوص ارتباط بین قربانی و هکر رو ارائه بده.
پروفایل انتخاب شده:
1 2 3 |
winapp.gui.permissions_panel - Selecting Profile: _unattended_access, hasPw: N winapp.gui.permissions_panel - Selecting Profile: _full_access, hasPw: N winapp.gui.permissions_panel - Selecting Profile: _default, hasPw: N |
این رویداد جزییات سطح پرمیشن جلسه رو در اختیار فارنزیک کار قرار میده.
شروع فیلمبرداری :
1 |
desk_rt.capture_component - Starting capture (video) |
در صورتیکه لایسنس AnyDesk امکان ضبط رو بده، مهاجم میتونه اقدام به رکورد صفحه کنه. در طول بررسی این ویژگی، محققا ویدیویی رو رکورد نکردن، اما لاگهای رویداد نشون میده که ضبطی رخ داده.
ارسال Thumbnail :
1 |
app.backend_session - Sending a new thumbnail |
یک تصویر کوچک از دستگاهی که در یک جلسه ی AnyDesk متصل شده، که معمولا تصویر والپیپر دستگاه متصل شده هستش.
نسخه ی AnyDesk استفاده شده:
1 |
main - * Version 8.0.10 (release/win_8.0.10 8941b379f03505960bfba86d51b033e4f12eac4a) |
نسخه ی AnyDesk در طول تحقیق از این نظر میتونه مفید باشه که اگه نسخه ی قدیمی استفاده شده باشه، ممکنه اون نسخه آسیب پذیر باشه و مهاجم از اون استفاده کرده.
وضعیت نصب AnyDesk :
1 |
main - Install status: not installed (<4) |
مشخص کننده نصب بودن یا حالت قابل حمل، AnyDesk هستش.
سیستم عامل کاربر راه دور:
1 |
main - Process started at 2024-06-11. PID XXX. OS is Windows 10 (64 bit) |
فایل کپی و پست شده:
1 2 3 4 5 |
clipbrd.capture - Found 1 files clipbrd.capture - Relaying file offers. app.ft_src_session - New session (4d9603677ecb87a3). app.ctrl_clip_comp - Got a request to list files in offer 4d9603677ecb87a3. app.ft_src_session - Starting to iterate files from offer 4d9603677ecb87a3. |
این رویدادها نشون میدن که یک فایل با استفاده از کلیپ بورد، از میزبان محلی، کپی و پست شده.
دانلود مدیر فایل:
1 2 |
Preparing files in 'C:\Users\Username\Desktop'. app.local_file_transfer - Preparation of 1 files completed (io_ok). |
فایلها از میزبان محلی با استفاده از ویژگی مدیر فایل دانلود شدن. لاگها نشون نمیدن که کدوم فولدرها در مدیر فایل بررسی شدن. با این حال، لاگ نشون میده که یک دایرکتوری نتونسته لیست بشه. این میتونه نشون دهنده این باشه که کاربر راه دور/هکر در حال بررسی فایلها بوده.
1 |
app.readdir - Could not list directory C:\Users\Username\Documents\My Videos\* |
ورودی کاربر فعال/غیرفعال است:
1 2 |
os_win.input_injector - Disabling user input. os_win.input_injector - New input state: blocked |
این ویژگی باعث میشه کاربر نتونه دستگاهش رو کنترل کنه. مهاجم میتونه درخواست غیرفعال کردن ورودی کاربر و کنترل کامل میزبان رو داشته باشه.
در میزبان راه دور/مهاجم:
فیلمبرداری از صفحه:
1 |
app.frontend_session - Enabling screen capturing |
گرفتن اسکرین شات:
1 2 |
desk_rt.display_component - Saving screenshot. desk_rt.display_component - Saved screenshot to C:\Users\Username\Pictures\AnyDesk\anydesk00000.png |
اسکرین شات های گرفته شده توسط ویژگی AnyDesk ، فقط در لاگ های کسی که اسکرین شات رو گرفته، قابل مشاهده هستش. متاسفانه این لاگها در سیستم قربانی وجود نداره و بنابراین نمیشه متوجه شد که مهاجم اسکرین شات گرفته یا نه.
فایلهای کپی و پست شده:
1 2 3 4 5 6 7 |
app.ctrl_clip_comp - Got a file offer (333275618805696f). app.ctrl_clip_comp - File offer accepted. app.ctrl_clip_comp - Got a file list for offer 333275618805696f. ole.files - Starting file paste operation. ole.files - Waiting app.ctrl_clip_comp - Got a file list for offer 333275618805696f. ole.files - Finished file paste operation (0x00000000). |
این رویداد نشون میده که یک فایل با استفاده از کلیپ بورد، از میزبان محلی کپی و پست شده. این رویدادها با لاگهای میزبان یکمی متفاوت هستن.
فایل منیجر در AnyDesk :
1 2 |
app.session - Session features: file browser, chat. app.service - Creating remote control session. |
نشون میده که فایل منیجر در AnyDesk برای ماشین کاربر محلی/قربانی فعال شده.
فایلهای دانلود شده در حالیت فایل منیجر:
1 2 |
app.local_file_transfer - Download started (0). app.local_file_transfer - Download finished. |
ورودی های راه دور پذیرفته شده/ مسدود شده:
1 2 |
app.frontend_session - Received new permissions to block input: (enabled allowed supported) app.frontend_session - Received new permissions to block input: (disabled allowed supported) |
اگه درخواستی توسط مهاجم مبنی بر غیرفعال کردن/فعال کردن ورودی راه دور داده شده باشه، این رویدادها در لاگها وجود دارن.