حمله PetitPotam
خلاصه: حمله PetitPotam ، نوع جدیدی از حملات NTLM(New Technology LAN Manager) relay ، مهاجم را قادر میسازد تا Domain controller و در نهایت تمامی دامنه Windows را تصاحب کند.
در سیستمهای مایکروسافت Windows active directory، جهت احراز هویت کاربران استفاده میشود. به این صورت که افراد برای احراز هویت با استفاده از زیرساخت کلید عمومی یا همان PKI، خودشان را به سیستم معرفی میکنند و از طریق سرویس Microsoft active directory certificate ، تصدیق اصالت کاربران تایید میشود.
در گذشته حملات متنوعی بر روی NTLM انجام شده است که در آنها مهاجم به گونهای Kerberos ticket granting ticket (TGT) را که معرف کاربر به سیستم است، بدست میآورد و به domain controller دسترسی پیدا میکرد. روشهایی از قبیل عبور از hash و Drop the MIC، پروتکل احراز هویت سیستمهای Active directory مایکروسافت را تحت تاثیر قرار میدادند که با استفاده از NTLMv2 و همچنین قابلیت enable sign تا حد مناسبی از تأثیرات مخرب این حملات جلوگیری شده است. حمله دیگری که بر بستر MS-RPRN و قابلیت پرینترها در پیام رسانی به دیگر سیستمهای شبکه انجام شد که بر خلاف حملات قبلی، جلوگیری از این حمله پیشبینی نشده بود و سازمانها برای مقابله میبایست سرویس Print System Remote Protocol یا بهاختصار MS-RPRN را به طور کامل غیر فعال میکردند.
معرفی PetitPotam
محقق فرانسوی GILLES Lionel (با نام مستعار Topotam ) تکنیک جدیدی برای حملات NTLM relay کشف کرده است که از Encrypting File System Remote یا MS-EFSRPC به جای MS-RPRN استفاده میکند. طبق مستندات مایکروسافت، MS-EFSRPC، جهت نگهداری، کنترل و مدیریت فعالیتها بر روی اطلاعات رمزنگاری شده است و بر بستر شبکه قابلدسترسی میباشد. محقق فرانسوی، proof-of-concept حمله PetitPotam را بر روی github قرار داده است که در آن به صورت کلی domain controller را مجبور میسازد تا فرایند احراز هویت را از طریق MS-EFSRPC که تحت کنترل مهاجم است، انجام دهد. این محقق توضیح داده است که PetitPotam را به عنوان یک آسیب پذیری نمیشناسد و بیشتر آن را در دسته حملاتی قرار میدهد که با سوءاستفاده از توابع بیخطر و مشروع به نحوی به سیستم صدمه میزنند.
جزئیات PetitPotam
کد حمله از تابع EfsRpcOpenFileRaw در MS-EFSRPC برای احراز هویت کاربران به سیستم ویندوز استفاده میکند. روش PetitPotam برای سایر توابع نیز قابل گسترش و پیاده سازی است. ابزار حمله از LSRPC named pipe از طریق واسطی به شناسه c681d488-d850-11d0-8c52-00c04fd90f7e به دلیل رایج بودن برای برقراری ارتباط و رد و بدل کردن پیامها بر بستر SMB، استفاده میکند. همچنین می توان از EFSRPC named pipe و واسطی با شناسه df1941c5-fe89-4e79-bf10-463657acf44d نیز بهره برد.
بعد از راهاندازی named pipe دلخواه از لیست زیر و bound کردن UUID مورد نظر، مهاجم قادر خواهد بود که از طریق EfsRpcOpenFileRaw حمله را عملی کند.
- LSARPC
- EFSR
- SAMR
- LSASS
- NETLOGON
قسمتی از کد ارسالی حمله که وجود فایلی را در شبکه با استفاده از MS-EFSRPC API بررسی میکند؛ در شکل زیر آمده است.
PetitPotam میتواند از طریق SMB relay قابلیت احراز هویت بر بستر HTTP certificate enrollment را فراهم کند. تقلیل نسخه (version downgrade) مورد استفاده یعنی NTLM بهNTLMv1 و دسترسی به حسابهای افرادی که بر روی یک domain قرار دارند از ویژگی هایی است که PetitPotam قابلیت عملی کردن آنها را دارد.
جلوگیری از PetitPotam
تنها راه جلوگیری از این حمله غیر فعال کردن احراز هویت از طریق NTLM یا برقراری مکانیزمهای امنیتی مثل SMB signing ، LDAP signing و channel binding میباشد. متاسفانه، در حال حاضر قابلیتی وجود ندارد که از درخواست احراز هویت با استفاده از EFS service جلوگیری کند.