COMrade

COMrade – اسکریپت PowerShell برای شمارش برنامه های DCOM آسیب پذیر

DCOMrade یک اسکریپت PowerShell است که می تواند برنامه های کاربردی DCOM آسیب پذیر را شمارش کند. این اسکریپت برای کار با Powershell 2.0 ساخته شده اما با نسخه های دیگر هم کار می کند. اسکریپت در حال حاضر از سیستم عامل های زیر پشتیبانی می کند (هر دو x86 و x64):

  • مایکروسافت ویندوز ۷

  • مایکروسافت ویندوز ۱۰

  • مایکروسافت ویندوز سرور ۲۰۱۲/۲۰۱۲ R2

  • مایکروسافت ویندوز سرور ۲۰۱۶

  • طریقه کارکرد اسکریپت

DCOM مخفف Distributed Component Object Model می‌باشد که معادل دقیقی در فارسی ندارد اما معنای  آن “مدل شی‌گرای عنصر توزیع شده” است.

این اسکریپت بر اساس تحقیق انجام شده توسط مت نلسون enigma0x3 ، انجام شده و برنامه های DCOM را جستجو میکند . این فرآیند برای تیم تست نفوذ ها بسیار سودمند می باشد .

ابتدا یک ارتباط از راه دور با سیستم هدف ایجاد شده است، این اتصال در سراسر اسکریپت برای عملیات های متعددی استفاده می شود. یک دستور Powershell بر روی سیستم هدف اجرا می شود که تمامی برنامه های DCOM و AppID آنها را بازیابی می کند.

AppID برای حلقه یا گره از طریق رجیستری ویندوز مورد استفاده قرار می گیرد و برای هر APID که کلیدی LaunchPermission را در ورود آنها ندارند بررسی می شود، این AppID ذخیره شده و برای بازیابی CLSID مربوطه مورد استفاده قرار می گیرد .

اسکریپت PowerShell از یک لیست سیاه خاصی در هر سیستم عامل استفاده می کند، به همین دلیل گزینه های مختلفی برای سیستم عامل هدف وجود دارد. لیست سیاه ، لیستی از CLSID را باز می کند که ممکن است اسکریپت را به دلیل برنامه های DCOM که نمی توانند فعال شوند ، اجرا کنند .

این عمل باعث کاهش بار بر روی سیستم هدف می شود و زمان برای تکمیل اسکریپت را کاهش می دهد.

با CLSID، برنامه DCOM مرتبط با آن می تواند فعال شود. CLSID ‘میانبر’ برای شمارش مقدار memberTypes مرتبط با آن استفاده می شود، این کار برای بررسی مقدار پیش فرض memberTypes انجام می شود. این شماره برای چک کردن CLSID است که هر چیزی متفاوت از این مقدار است. اسکریپت این کار را با

CLSID “میانبر” (HKEY_CLASSES_ROOT \ CLSID \ (00021401-0000-0000-C000-000000000046} انجام می دهد) زیرا این یک CLSID به اشتراک گذاشته شده در سیستم عامل های مایکروسافت است. CLSID با مقدار دیگری از MemberTypes ممکن است یک روش یا Property داشته باشد که میتواند (ab) استفاده شود و به آرایه اضافه شود.

CLSID در آرایه بر روی رشته های memberTypes بررسی می شود که ممکن است راه (ab) استفاده از آن را نشان دهد، این لیست رشته ها را می توان در فایل VulnerableSubset پیدا کرد.

لطفا توجه داشته باشید که این لیست به هیچ وجه لیست کامل برای پیدا کردن هر یک از برنامه های آسیب پذیر DCOM نیست، اما به عنوان یک بخش پویا از روند کار باید کاربر را به یک اسکریپت برای جستجوی رشته های خاص مرتبط سازد که ممکن است برای هدف خود مفید باشد.

نتایج اسکریپت PowerShell در یک گزارش HTML نمایش داده می شود و باید برای حسابرسی یک سیستم به عنوان یک اقدام پیشگیرانه مورد استفاده قرار گیرد. برای طرف تهاجمی ما یک ماژول Empire ایجاد کردیم که در زمان نوشتن در انتظار تایید در شاخه اصلی است.

پیش نیازها

اسکریپت PowerShell ، در حالی که به عنوان یک ماژول Empire استفاده نمی شود، محدودیت هایی دارد و کارکرد اسکریپت و نحوه اتصال آن با دستگاه هدف متفاوت است. جهت استفاده از این اسکریپت برای کار، سرویس های مدیریت از راه دور ویندوز باید در فایروال ویندوز (۵۹۸۵) مجاز باشد؛

اگر پروفایل شبکه مورد نظر Public تعریف شود، دستور زیر باید اجرا شود تا سرویس های کنترل از راه دور ویندوز در سیستم هدف مورد استفاده قرار گیرد:

Enable-PSRemoting -SkipNetworkProfilecheck -Force

این اسکریپت تنها زمانی کار می کند که یک کاربر دارای اعتبار یک Administrator محلی در سیستم هدف باشد. بدون این اعتبار شما قادر به راه اندازی یک جلسه از راه دور با دستگاه هدف نیستید یا قادر به فعال کردن برنامه های DCOM نیستید.

مثال استفاده :

هنگامی که در دامنه ویندوز مایکروسافت هستید:

.\DCOMrade.ps1 -ComputerName [Computername / IP] -User [Local Administrator] -OS [Operating System] -Domain [Domain name]

DCOMrade

هنگامی که در دامنه مایکروسافت ویندوز نیستید:

.\DCOMrade.ps1 -ComputerName [Computername / IP] -User [Local Administrator] -OS [Operating System]

DCOMrade

اجرای اسکریپت PowerShell :

محدودیت ها

در حال حاضر اسکریپت PowerShell سعی می کند هر برنامه کاربردی DCOM را مستقیما فعال کند اما برخی از فعال سازی ها فرآیندهای جدیدی را شروع می کنند (مانند Internet Explorer)، که این فرایندها می توانند متوقف شوند، اما این بدان معنی است که اگر یک کاربر در سیستم هدف از این برنامه خاص استفاده کند، این فرآیند نیز برای آنها متوقف خواهد شد؛

نکته ایی که باید توجه داشت  مربوط به مهارت های برنامه نویسی سطح پایین است که اگر سیستم هدف منابع زیادی نداشته باشد، این اسکریپت ممکن است بار قابل توجهی در سیستم هدف ایجاد کند. هنگام استفاده از این در محیط تولید یا در سرورها، توجه داشته باشید؛

اسکریپت ممکن است زمان زیادی برای اجرای کامل داشته باشد، این بستگی به میزان برنامه های DCOM و اندازه فایل زیر مجموعه آسیب پذیر  دارد .

More

تهیه کننده : سید محمد اسماعیلی

 

نوشته های مرتبط

بلاک چین Blockchain

۲۷

اردیبهشت
همه موضوعات

معماری بلاک چین Blockchain

اجزاء، ساختار، مزایا و ایجاد بلاک چین ( Blockchain ) انتشار محتوای سایت ایران سایبر فقط با ذکر منبع رسمی مجاز است اصطلاح بلاک چین blockchain برای اولین بار در سال ۱۹۹۱ مطرح شد و گروهی از محققان خواستار ایجاد یک ابزاری برای تایید اسناد زمانبندی شده دیجیتالی شدند به طوری که قابل بازگشت به عقب و […]

حملات XSS

۲۲

اردیبهشت
همه موضوعات

سناریوهای عملی برای تست نفوذ حملات XSS

در ارزیابی های انجام شده چندین سناریوی عملی ( XSS attack ) یا حملات XSS وجود دارد که می تواند به عنوان PoCs ها برای اثبات خطرات واقعی آسیب پذیری های (Cross-Site Scripting (XSS انجام شود . به عنوان یک متخصص تست نفوذ ، اگر می خواهید مشتریان شما درک عمیقی از خطر آسیب پذیری ها که[…]