ارتقاء سطح دسترسی
Privilege Escalationتوضیحات
مهاجم سعی میکند مجوزهای سطح بالاتری در سیستم یا شبکه به دست آورد. تکنیکهای ارتقاء سطح دسترسی شامل بهرهبرداری از ضعفهای سیستم، پیکربندیهای نادرست و آسیبپذیریها برای دستیابی به دسترسی SYSTEM یا root، مدیر محلی یا حسابهای با دسترسی مشابه مدیر میشود.
تکنیکها (6)
مهاجمان کد مخرب را به فرآیندهای در حال اجرا تزریق میکنند تا از فضای آدرس آنها برای پنهانسازی و ارتقاء سطح دسترسی استفاده کنند. تزریق به فرآیندهای با سطح دسترسی بالا میتواند به مهاجمان اجازه دهد به منابع سیستمی که معمولاً غیرقابل دسترس هستند دسترسی داشته باشند.
مهاجمان DLLهای مخرب را به فرآیندهای در حال اجرا تزریق میکنند. با استفاده از APIهایی مانند CreateRemoteThread و LoadLibrary، مهاجمان میتوانند DLL مخرب را در فضای آدرس یک فرآیند قانونی بارگذاری کنند. این تکنیک برای پنهانسازی و ارتقاء سطح دسترسی استفاده میشود.
مهاجمان کد PE (Portable Executable) مخرب را مستقیماً به حافظه فرآیندهای در حال اجرا تزریق میکنند. برخلاف DLL injection، این روش نیازی به فایل روی دیسک ندارد و میتواند کاملاً در حافظه اجرا شود. این تکنیک برای اجرای fileless malware استفاده میشود.
مهاجمان threadهای موجود در فرآیندهای قانونی را suspend میکنند، کد مخرب را به حافظه آنها مینویسند و سپس اجرا را از سر میگیرند. این تکنیک به مهاجمان اجازه میدهد کد مخرب را در زمینه فرآیندهای قانونی اجرا کنند.
مهاجمان از Asynchronous Procedure Call (APC) برای تزریق کد به threadهای فرآیندهای دیگر استفاده میکنند. APC یک مکانیزم ویندوز برای اجرای کد در زمینه یک thread خاص است. مهاجمان میتوانند APC مخرب را به threadهای در حالت alertable state صف کنند.
مهاجمان یک فرآیند قانونی را در حالت suspended ایجاد میکنند، کد اصلی آن را از حافظه خالی میکنند و با کد مخرب جایگزین میکنند. این تکنیک که به عنوان RunPE نیز شناخته میشود، به مهاجمان اجازه میدهد کد مخرب را در قالب یک فرآیند قانونی اجرا کنند.
مهاجمان از Windows Transactional NTFS (TxF) برای ایجاد فرآیندهایی از فایلهای مخرب که هرگز روی دیسک نوشته نمیشوند استفاده میکنند. این تکنیک بسیاری از ابزارهای امنیتی را دور میزند زیرا فایل مخرب در سیستم فایل قابل مشاهده نیست.
مهاجمان از پنجرههای ListView در برنامههای ویندوز برای تزریق کد استفاده میکنند. با ارسال پیامهای خاص به پنجرههای ListView، مهاجمان میتوانند callback functionهای مخرب را در زمینه فرآیند هدف اجرا کنند.
مهاجمان از آسیبپذیریهای نرمافزاری برای ارتقاء سطح دسترسی استفاده میکنند. این تکنیک شامل بهرهبرداری از باگهای kernel، درایورها، سرویسهای سیستمی و سایر نرمافزارهایی است که با سطح دسترسی بالا اجرا میشوند. موفقیت در این تکنیک معمولاً منجر به دسترسی SYSTEM یا root میشود.
مهاجمان توکنهای دسترسی ویندوز را دستکاری میکنند تا با زمینه امنیتی کاربر یا سیستم دیگری عمل کنند. ویندوز از توکنهای دسترسی برای تعیین مالکیت فرآیند استفاده میکند. با سرقت یا جعل توکن، مهاجمان میتوانند سطح دسترسی خود را از مدیر به SYSTEM ارتقاء دهند.
مهاجمان توکنهای دسترسی کاربران دیگر را سرقت میکنند تا با سطح دسترسی آنها عمل کنند. با استفاده از APIهایی مانند ImpersonateLoggedOnUser و DuplicateTokenEx، مهاجمان میتوانند توکن کاربران با سطح دسترسی بالاتر را جعل کنند.
مهاجمان از API CreateProcessWithTokenW برای ایجاد فرآیندهای جدید با توکن کاربران دیگر استفاده میکنند. این تکنیک به مهاجمان اجازه میدهد فرآیندهایی با سطح دسترسی بالاتر ایجاد کنند بدون اینکه نیاز به اعتبارنامه کاربر داشته باشند.
مهاجمان از API LogonUser برای ایجاد توکن جدید با اعتبارنامههای شناخته شده استفاده میکنند و سپس با آن توکن جعل هویت میکنند. این تکنیک به مهاجمانی که اعتبارنامه کاربر هدف را دارند اجازه میدهد با سطح دسترسی آن کاربر عمل کنند.
مهاجمان شناسه فرآیند والد (PPID) فرآیندهای جدید را جعل میکنند تا از ابزارهای نظارت فرآیند فرار کنند یا سطح دسترسی را ارتقاء دهند. با استفاده از CreateProcess API و STARTUPINFOEX، مهاجمان میتوانند فرآیندی را به عنوان فرزند یک فرآیند با سطح دسترسی بالا ایجاد کنند.
مهاجمان SID-History attribute حسابهای Active Directory را دستکاری میکنند تا سطح دسترسی را ارتقاء دهند. SID-History برای migration حسابها بین دامنهها طراحی شده اما میتواند برای اضافه کردن SIDهای با سطح دسترسی بالا به حسابهای عادی استفاده شود.
مهاجمان تنظیمات سیاست دامنه یا tenant ابری را تغییر میدهند تا سطح دسترسی را ارتقاء دهند یا از دفاعها فرار کنند. با داشتن مجوزهای کافی، مهاجمان میتوانند Group Policy Objectها را تغییر دهند، trustهای دامنه را اضافه کنند یا تنظیمات federation را دستکاری کنند.
مهاجمان Group Policy Objectها (GPO) را تغییر میدهند تا وظایف زمانبندی شده مخرب، اسکریپتها یا تنظیمات را در سراسر دامنه توزیع کنند. با دسترسی به GPO، مهاجمان میتوانند کد مخرب را روی تمام سیستمهای عضو دامنه اجرا کنند.
مهاجمان trustهای دامنه جدید اضافه میکنند یا trustهای موجود را تغییر میدهند تا سطح دسترسی را ارتقاء دهند. این شامل دستکاری تنظیمات federation، جعل SAML token با اضافه کردن certificateهای مهاجم یا تبدیل دامنهها به federated domain میشود.
مهاجمان از مکانیزمهای طراحی شده برای کنترل سطوح دسترسی بالاتر سوءاستفاده میکنند. این مکانیزمها مانند UAC در ویندوز، sudo در لینوکس و macOS برای جلوگیری از اجرای غیرمجاز کد با سطح دسترسی بالا طراحی شدهاند. مهاجمان میتوانند این مکانیزمها را دور بزنند تا بدون اطلاع کاربر به سطح دسترسی بالاتر برسند.
مهاجمان از بیتهای setuid و setgid در سیستمهای لینوکس و macOS برای ارتقاء سطح دسترسی سوءاستفاده میکنند. فایلهای اجرایی با بیت setuid با سطح دسترسی مالک فایل اجرا میشوند. مهاجمان میتوانند این بیتها را روی فایلهای مخرب تنظیم کنند یا از فایلهای موجود با این بیتها سوءاستفاده کنند.
مهاجمان User Account Control (UAC) ویندوز را دور میزنند تا بدون نمایش پنجره تأیید به سطح دسترسی بالاتر برسند. روشهای متعددی برای دور زدن UAC وجود دارد از جمله سوءاستفاده از برنامههای auto-elevated، تغییر رجیستری و استفاده از COM objectهای elevated.
مهاجمان از sudo در سیستمهای لینوکس و macOS برای اجرای دستورات با سطح دسترسی root سوءاستفاده میکنند. sudo اعتبارنامهها را برای مدت کوتاهی cache میکند و مهاجمان میتوانند از این cache برای اجرای دستورات بدون نیاز به رمز عبور استفاده کنند.
مهاجمان از مکانیزمهایی که از کاربر درخواست تأیید برای اجرای elevated میکنند سوءاستفاده میکنند. در macOS، AuthorizationExecuteWithPrivileges API میتواند برای درخواست اجرای elevated از کاربر استفاده شود. مهاجمان میتوانند این API را در برنامههای مخرب استفاده کنند.
مهاجمان از مکانیزمهای دسترسی موقت elevated در محیطهای ابری سوءاستفاده میکنند. این شامل سوءاستفاده از just-in-time access، role assumption و سایر مکانیزمهای دسترسی موقت در AWS، Azure و GCP میشود. مهاجمان میتوانند این دسترسیها را برای اجرای عملیات مخرب استفاده کنند.
مهاجمان Transparency, Consent, and Control (TCC) در macOS را دستکاری میکنند تا به منابع حساس مانند دوربین، میکروفون و فایلهای کاربر دسترسی پیدا کنند. TCC یک چارچوب حریم خصوصی macOS است که دسترسی برنامهها به منابع حساس را کنترل میکند.
مهاجمان از محیطهای کانتینری یا ماشین مجازی فرار میکنند تا به سیستم میزبان دسترسی پیدا کنند. با دسترسی به میزبان، مهاجمان میتوانند به تمام کانتینرها و VMهای در حال اجرا دسترسی داشته باشند. این تکنیک اغلب از آسیبپذیریهای container runtime یا پیکربندیهای ناامن استفاده میکند.