TA0004

ارتقاء سطح دسترسی

Privilege Escalation

توضیحات

مهاجم سعی می‌کند مجوزهای سطح بالاتری در سیستم یا شبکه به دست آورد. تکنیک‌های ارتقاء سطح دسترسی شامل بهره‌برداری از ضعف‌های سیستم، پیکربندی‌های نادرست و آسیب‌پذیری‌ها برای دستیابی به دسترسی SYSTEM یا root، مدیر محلی یا حساب‌های با دسترسی مشابه مدیر می‌شود.

تکنیک‌ها (6)

شناسهنام تکنیکزیرتکنیک
تزریق به فرآیندProcess Injection

مهاجمان کد مخرب را به فرآیندهای در حال اجرا تزریق می‌کنند تا از فضای آدرس آن‌ها برای پنهان‌سازی و ارتقاء سطح دسترسی استفاده کنند. تزریق به فرآیندهای با سطح دسترسی بالا می‌تواند به مهاجمان اجازه دهد به منابع سیستمی که معمولاً غیرقابل دسترس هستند دسترسی داشته باشند.

7
تزریق DLLDynamic-link Library Injection

مهاجمان DLL‌های مخرب را به فرآیندهای در حال اجرا تزریق می‌کنند. با استفاده از API‌هایی مانند CreateRemoteThread و LoadLibrary، مهاجمان می‌توانند DLL مخرب را در فضای آدرس یک فرآیند قانونی بارگذاری کنند. این تکنیک برای پنهان‌سازی و ارتقاء سطح دسترسی استفاده می‌شود.

تزریق Portable ExecutablePortable Executable Injection

مهاجمان کد PE (Portable Executable) مخرب را مستقیماً به حافظه فرآیندهای در حال اجرا تزریق می‌کنند. برخلاف DLL injection، این روش نیازی به فایل روی دیسک ندارد و می‌تواند کاملاً در حافظه اجرا شود. این تکنیک برای اجرای fileless malware استفاده می‌شود.

ربودن اجرای threadThread Execution Hijacking

مهاجمان thread‌های موجود در فرآیندهای قانونی را suspend می‌کنند، کد مخرب را به حافظه آن‌ها می‌نویسند و سپس اجرا را از سر می‌گیرند. این تکنیک به مهاجمان اجازه می‌دهد کد مخرب را در زمینه فرآیندهای قانونی اجرا کنند.

فراخوانی رویه ناهمزمانAsynchronous Procedure Call

مهاجمان از Asynchronous Procedure Call (APC) برای تزریق کد به thread‌های فرآیندهای دیگر استفاده می‌کنند. APC یک مکانیزم ویندوز برای اجرای کد در زمینه یک thread خاص است. مهاجمان می‌توانند APC مخرب را به thread‌های در حالت alertable state صف کنند.

Process HollowingProcess Hollowing

مهاجمان یک فرآیند قانونی را در حالت suspended ایجاد می‌کنند، کد اصلی آن را از حافظه خالی می‌کنند و با کد مخرب جایگزین می‌کنند. این تکنیک که به عنوان RunPE نیز شناخته می‌شود، به مهاجمان اجازه می‌دهد کد مخرب را در قالب یک فرآیند قانونی اجرا کنند.

Process DoppelgängingProcess Doppelgänging

مهاجمان از Windows Transactional NTFS (TxF) برای ایجاد فرآیندهایی از فایل‌های مخرب که هرگز روی دیسک نوشته نمی‌شوند استفاده می‌کنند. این تکنیک بسیاری از ابزارهای امنیتی را دور می‌زند زیرا فایل مخرب در سیستم فایل قابل مشاهده نیست.

ListPlantingListPlanting

مهاجمان از پنجره‌های ListView در برنامه‌های ویندوز برای تزریق کد استفاده می‌کنند. با ارسال پیام‌های خاص به پنجره‌های ListView، مهاجمان می‌توانند callback function‌های مخرب را در زمینه فرآیند هدف اجرا کنند.

بهره‌برداری برای ارتقاء سطح دسترسیExploitation for Privilege Escalation

مهاجمان از آسیب‌پذیری‌های نرم‌افزاری برای ارتقاء سطح دسترسی استفاده می‌کنند. این تکنیک شامل بهره‌برداری از باگ‌های kernel، درایورها، سرویس‌های سیستمی و سایر نرم‌افزارهایی است که با سطح دسترسی بالا اجرا می‌شوند. موفقیت در این تکنیک معمولاً منجر به دسترسی SYSTEM یا root می‌شود.

دستکاری توکن دسترسیAccess Token Manipulation

مهاجمان توکن‌های دسترسی ویندوز را دستکاری می‌کنند تا با زمینه امنیتی کاربر یا سیستم دیگری عمل کنند. ویندوز از توکن‌های دسترسی برای تعیین مالکیت فرآیند استفاده می‌کند. با سرقت یا جعل توکن، مهاجمان می‌توانند سطح دسترسی خود را از مدیر به SYSTEM ارتقاء دهند.

5
جعل/سرقت توکنToken Impersonation/Theft

مهاجمان توکن‌های دسترسی کاربران دیگر را سرقت می‌کنند تا با سطح دسترسی آن‌ها عمل کنند. با استفاده از API‌هایی مانند ImpersonateLoggedOnUser و DuplicateTokenEx، مهاجمان می‌توانند توکن کاربران با سطح دسترسی بالاتر را جعل کنند.

ایجاد فرآیند با توکنCreate Process with Token

مهاجمان از API CreateProcessWithTokenW برای ایجاد فرآیندهای جدید با توکن کاربران دیگر استفاده می‌کنند. این تکنیک به مهاجمان اجازه می‌دهد فرآیندهایی با سطح دسترسی بالاتر ایجاد کنند بدون اینکه نیاز به اعتبارنامه کاربر داشته باشند.

ساخت و جعل توکنMake and Impersonate Token

مهاجمان از API LogonUser برای ایجاد توکن جدید با اعتبارنامه‌های شناخته شده استفاده می‌کنند و سپس با آن توکن جعل هویت می‌کنند. این تکنیک به مهاجمانی که اعتبارنامه کاربر هدف را دارند اجازه می‌دهد با سطح دسترسی آن کاربر عمل کنند.

جعل Parent PIDParent PID Spoofing

مهاجمان شناسه فرآیند والد (PPID) فرآیندهای جدید را جعل می‌کنند تا از ابزارهای نظارت فرآیند فرار کنند یا سطح دسترسی را ارتقاء دهند. با استفاده از CreateProcess API و STARTUPINFOEX، مهاجمان می‌توانند فرآیندی را به عنوان فرزند یک فرآیند با سطح دسترسی بالا ایجاد کنند.

تزریق SID-HistorySID-History Injection

مهاجمان SID-History attribute حساب‌های Active Directory را دستکاری می‌کنند تا سطح دسترسی را ارتقاء دهند. SID-History برای migration حساب‌ها بین دامنه‌ها طراحی شده اما می‌تواند برای اضافه کردن SID‌های با سطح دسترسی بالا به حساب‌های عادی استفاده شود.

تغییر سیاست دامنهDomain or Tenant Policy Modification

مهاجمان تنظیمات سیاست دامنه یا tenant ابری را تغییر می‌دهند تا سطح دسترسی را ارتقاء دهند یا از دفاع‌ها فرار کنند. با داشتن مجوزهای کافی، مهاجمان می‌توانند Group Policy Object‌ها را تغییر دهند، trust‌های دامنه را اضافه کنند یا تنظیمات federation را دستکاری کنند.

2
تغییر Group PolicyGroup Policy Modification

مهاجمان Group Policy Object‌ها (GPO) را تغییر می‌دهند تا وظایف زمان‌بندی شده مخرب، اسکریپت‌ها یا تنظیمات را در سراسر دامنه توزیع کنند. با دسترسی به GPO، مهاجمان می‌توانند کد مخرب را روی تمام سیستم‌های عضو دامنه اجرا کنند.

تغییر TrustTrust Modification

مهاجمان trust‌های دامنه جدید اضافه می‌کنند یا trust‌های موجود را تغییر می‌دهند تا سطح دسترسی را ارتقاء دهند. این شامل دستکاری تنظیمات federation، جعل SAML token با اضافه کردن certificate‌های مهاجم یا تبدیل دامنه‌ها به federated domain می‌شود.

سوءاستفاده از مکانیزم کنترل ارتقاءAbuse Elevation Control Mechanism

مهاجمان از مکانیزم‌های طراحی شده برای کنترل سطوح دسترسی بالاتر سوءاستفاده می‌کنند. این مکانیزم‌ها مانند UAC در ویندوز، sudo در لینوکس و macOS برای جلوگیری از اجرای غیرمجاز کد با سطح دسترسی بالا طراحی شده‌اند. مهاجمان می‌توانند این مکانیزم‌ها را دور بزنند تا بدون اطلاع کاربر به سطح دسترسی بالاتر برسند.

6
Setuid و SetgidSetuid and Setgid

مهاجمان از بیت‌های setuid و setgid در سیستم‌های لینوکس و macOS برای ارتقاء سطح دسترسی سوءاستفاده می‌کنند. فایل‌های اجرایی با بیت setuid با سطح دسترسی مالک فایل اجرا می‌شوند. مهاجمان می‌توانند این بیت‌ها را روی فایل‌های مخرب تنظیم کنند یا از فایل‌های موجود با این بیت‌ها سوءاستفاده کنند.

دور زدن کنترل حساب کاربریBypass User Account Control

مهاجمان User Account Control (UAC) ویندوز را دور می‌زنند تا بدون نمایش پنجره تأیید به سطح دسترسی بالاتر برسند. روش‌های متعددی برای دور زدن UAC وجود دارد از جمله سوءاستفاده از برنامه‌های auto-elevated، تغییر رجیستری و استفاده از COM object‌های elevated.

Sudo و کش SudoSudo and Sudo Caching

مهاجمان از sudo در سیستم‌های لینوکس و macOS برای اجرای دستورات با سطح دسترسی root سوءاستفاده می‌کنند. sudo اعتبارنامه‌ها را برای مدت کوتاهی cache می‌کند و مهاجمان می‌توانند از این cache برای اجرای دستورات بدون نیاز به رمز عبور استفاده کنند.

اجرای elevated با promptElevated Execution with Prompt

مهاجمان از مکانیزم‌هایی که از کاربر درخواست تأیید برای اجرای elevated می‌کنند سوءاستفاده می‌کنند. در macOS، AuthorizationExecuteWithPrivileges API می‌تواند برای درخواست اجرای elevated از کاربر استفاده شود. مهاجمان می‌توانند این API را در برنامه‌های مخرب استفاده کنند.

دسترسی موقت elevated ابریTemporary Elevated Cloud Access

مهاجمان از مکانیزم‌های دسترسی موقت elevated در محیط‌های ابری سوءاستفاده می‌کنند. این شامل سوءاستفاده از just-in-time access، role assumption و سایر مکانیزم‌های دسترسی موقت در AWS، Azure و GCP می‌شود. مهاجمان می‌توانند این دسترسی‌ها را برای اجرای عملیات مخرب استفاده کنند.

دستکاری TCCTCC Manipulation

مهاجمان Transparency, Consent, and Control (TCC) در macOS را دستکاری می‌کنند تا به منابع حساس مانند دوربین، میکروفون و فایل‌های کاربر دسترسی پیدا کنند. TCC یک چارچوب حریم خصوصی macOS است که دسترسی برنامه‌ها به منابع حساس را کنترل می‌کند.

فرار به میزبانEscape to Host

مهاجمان از محیط‌های کانتینری یا ماشین مجازی فرار می‌کنند تا به سیستم میزبان دسترسی پیدا کنند. با دسترسی به میزبان، مهاجمان می‌توانند به تمام کانتینرها و VM‌های در حال اجرا دسترسی داشته باشند. این تکنیک اغلب از آسیب‌پذیری‌های container runtime یا پیکربندی‌های ناامن استفاده می‌کند.