دوستان در حال اماده کردن کتابی هستم تحت عنوان opsec و ناشناس بودن برای تیم های قرمز این کتاب، اصول پیشرفته امنیت عملیاتی (OpSec) و راهکارهای ناشناس ماندن دیجیتال را به طور خاص برای اعضای رد تیم، مهندسان امنیت تهاجمی و متخصصان شبیهسازی تهدید آموزش میدهد. دوره شامل سه ماژول ساختاریافته است مبانی، ابزارها و تکنیکها، و مطالعات موردی واقعی تا دانشجویان یاد بگیرند چطور زیرساختهای ایزولهشده با هویت جعلی بسازند، از شناسایی شدن جلوگیری کنند و عملیاتهای مخفیانه را در شرایط واقعی اجرا کنند.
برخلاف آموزشهای تئوریک OpSec، این کتاب کاملاً فنی است آموزش قدمبهقدم ابزارها از مخفیسازی اثر انگشت شبکه و راهاندازی C2 تا ضد جرمشناسی و متادیتا، خوانندگان مهارتهایی واقعی برای عملیاتهای تهاجمی سطح بالا و حفظ ناشناس بودن به دست میآورند.
این دوره برای حرفهایهایی مناسب است که میخواهند مهارتهای رد تیم خود را ارتقا دهند، ریسک شناسایی را کاهش دهند و همیشه یک قدم جلوتر از سیستمهای شناسایی باقی بمانند.
اگر پیشنهادی دارید خوشحال میشوم توی گروه tryhackbox بنویسید یا از طریق توییتر به من بگید .
twitter : https://www.x.com/kavehxnet
chat : @TryHackBoxGroup
برخلاف آموزشهای تئوریک OpSec، این کتاب کاملاً فنی است آموزش قدمبهقدم ابزارها از مخفیسازی اثر انگشت شبکه و راهاندازی C2 تا ضد جرمشناسی و متادیتا، خوانندگان مهارتهایی واقعی برای عملیاتهای تهاجمی سطح بالا و حفظ ناشناس بودن به دست میآورند.
این دوره برای حرفهایهایی مناسب است که میخواهند مهارتهای رد تیم خود را ارتقا دهند، ریسک شناسایی را کاهش دهند و همیشه یک قدم جلوتر از سیستمهای شناسایی باقی بمانند.
اگر پیشنهادی دارید خوشحال میشوم توی گروه tryhackbox بنویسید یا از طریق توییتر به من بگید .
twitter : https://www.x.com/kavehxnet
chat : @TryHackBoxGroup
X (formerly Twitter)
kaveh (@KavehxNet) on X
Red Teamer | #HackingIsNotACrime Advocate
❤7🔥2
دوستان در حال اماده کردن کتابی هستم تحت عنوان opsec و ناشناس بودن برای تیم های قرمز این کتاب، اصول پیشرفته امنیت عملیاتی (OpSec) و راهکارهای ناشناس ماندن دیجیتال را به طور خاص برای اعضای رد تیم، مهندسان امنیت تهاجمی و متخصصان شبیهسازی تهدید آموزش میدهد.…
بخشی از مطالب کتاب :
شاخصهای سازش (IoC) تولیدشده توسط Red Teamها
شاخصهای سازش (Indicators of Compromise – IoC) آرتیفکتهای فنی هستند که به تیم آبی اجازه میدهند فعالیت مخرب را شناسایی، مسدود یا بررسی کنند. اگرچه معمولاً مربوط به مهاجمان واقعی (APTها، بدافزار، کمپینهای جاسوسی) هستند، IoCها مستقیماً به عملیاتهای رد تیم ضعیف هم مربوط میشوند.
رد تیمهای بیتجربه یا دارای OpSec ضعیف IoCهایی تولید میکنند که منجر به انتساب فوری، همبستگی کمپینها و حتی شناسایی اپراتورها یا شرکت مجری عملیات میشود.
چه چیزی IoC محسوب میشود؟
IoC
هر سیگنال فنی قابل مشاهده است که نشاندهنده حضور یا فعالیت مهاجم باشد. برای رد تیمها، دستههای کلیدی شامل:
۱. شاخصهای مبتنی بر میزبان (Host-Based Indicators):
⦁ فایلهای ایجاد یا تغییر یافته (مثلاً payloadها در %TEMP%، DLLهای مخرب)
⦁ کلیدهای رجیستری برای ماندگاری (Run، RunOnce، Services)
⦁ پردازشهای تزریقشده یا مشکوک (rundll32، regsvr32، mshta)
⦁ زمانبندیهای ناسازگار (نشانه timestomping)
⦁ رشتههای استاتیک داخل فایلهای اجرایی
@KavehOffSec
شاخصهای سازش (IoC) تولیدشده توسط Red Teamها
شاخصهای سازش (Indicators of Compromise – IoC) آرتیفکتهای فنی هستند که به تیم آبی اجازه میدهند فعالیت مخرب را شناسایی، مسدود یا بررسی کنند. اگرچه معمولاً مربوط به مهاجمان واقعی (APTها، بدافزار، کمپینهای جاسوسی) هستند، IoCها مستقیماً به عملیاتهای رد تیم ضعیف هم مربوط میشوند.
رد تیمهای بیتجربه یا دارای OpSec ضعیف IoCهایی تولید میکنند که منجر به انتساب فوری، همبستگی کمپینها و حتی شناسایی اپراتورها یا شرکت مجری عملیات میشود.
چه چیزی IoC محسوب میشود؟
IoC
هر سیگنال فنی قابل مشاهده است که نشاندهنده حضور یا فعالیت مهاجم باشد. برای رد تیمها، دستههای کلیدی شامل:
۱. شاخصهای مبتنی بر میزبان (Host-Based Indicators):
⦁ فایلهای ایجاد یا تغییر یافته (مثلاً payloadها در %TEMP%، DLLهای مخرب)
⦁ کلیدهای رجیستری برای ماندگاری (Run، RunOnce، Services)
⦁ پردازشهای تزریقشده یا مشکوک (rundll32، regsvr32، mshta)
⦁ زمانبندیهای ناسازگار (نشانه timestomping)
⦁ رشتههای استاتیک داخل فایلهای اجرایی
@KavehOffSec
❤6
وقتی بحث رد تیم میشه، معمولاً میگن این نوع عملیات فقط به درد شرکتهای بالغ میخوره یعنی شرکتهایی که امنیت اطلاعات قوی، SOC اختصاصی و تست نفوذ منظم دارن. اما صحبت درباره بلوغ خود تیم رد تیم کمتر پیش میاد.
بلوغ تیم رد تیم رو نمیشه فقط با تعداد عملیاتهای انجامشده سنجید. اگه یه تیم توی شش ماه ۸ تا ۱۰ عملیات داشته باشه، باید به کیفیت کار و سطح آمادگی تردید کرد (مگر اینکه تیم خیلی بزرگ باشه و کارها رو موازی انجام بده). هر عملیات معمولاً ۶ تا ۸ هفته طول میکشه.
بلوغ رد تیم رو میشه با سطح آمادگی، نوع TTPهایی که استفاده میکنه و داشتن R&D اختصاصی ارزیابی کرد. این بلوغ به سه سطح تقسیم میشه:
⦁ سطح ابتدایی
⦁ استفاده از TTPهای ساده و رایج
⦁ اجرای سناریوهای حمله ساده و عمدتاً تکراری
⦁ اتکا به ابزارهای متداول
⦁ نداشتن توسعه اختصاصی
⦁ سطح پنهانکاری پایین
⦁ سطح متوسط
⦁ استفاده از TTPهای رایج با تغییرات
⦁ اجرای سناریوهای پیچیدهتر و اعمال تغییر در صورت نیاز
⦁ استفاده محدودتر و هوشمندانهتر از ابزارها
⦁ ترکیب ابزارها با امکانات سیستمعامل
⦁ انجام توسعههای ابتدایی یا تغییر در ابزارهای موجود
⦁ سطح پنهانکاری متوسط
⦁ سطح پیشرفته
⦁ ابداع و استفاده از TTPهای اختصاصی
⦁ پیادهسازی سناریوهای پیچیده و غیر تکراری
⦁ خودداری از استفاده ابزارهای شناخته شده بازار (مگر در حالت آفلاین)
⦁ تمرکز روی امکانات سیستمعامل
⦁ توسعه اختصاصی، C2 اختصاصی و R&D
⦁ سطح پنهانکاری بسیار بالا (مگر طبق توافق یا اتفاق)
برای انجام مانورهای سایبری، هر سه سطح بلوغ رد تیم میتونن مورد نیاز باشن، بسته به نوع سناریو و مدل مهاجم. رد تیم پیشرفته حتی میتونه از موضع تیمهای سادهتر هم شبیهسازی کنه. اگه بلو تیم فقط با تهدیدهای آشنا روبهرو بشه، هیچوقت آماده واکنش به حملات واقعاً پیچیده و جدید نمیشه.
@KavehOffSec
بلوغ تیم رد تیم رو نمیشه فقط با تعداد عملیاتهای انجامشده سنجید. اگه یه تیم توی شش ماه ۸ تا ۱۰ عملیات داشته باشه، باید به کیفیت کار و سطح آمادگی تردید کرد (مگر اینکه تیم خیلی بزرگ باشه و کارها رو موازی انجام بده). هر عملیات معمولاً ۶ تا ۸ هفته طول میکشه.
بلوغ رد تیم رو میشه با سطح آمادگی، نوع TTPهایی که استفاده میکنه و داشتن R&D اختصاصی ارزیابی کرد. این بلوغ به سه سطح تقسیم میشه:
⦁ سطح ابتدایی
⦁ استفاده از TTPهای ساده و رایج
⦁ اجرای سناریوهای حمله ساده و عمدتاً تکراری
⦁ اتکا به ابزارهای متداول
⦁ نداشتن توسعه اختصاصی
⦁ سطح پنهانکاری پایین
⦁ سطح متوسط
⦁ استفاده از TTPهای رایج با تغییرات
⦁ اجرای سناریوهای پیچیدهتر و اعمال تغییر در صورت نیاز
⦁ استفاده محدودتر و هوشمندانهتر از ابزارها
⦁ ترکیب ابزارها با امکانات سیستمعامل
⦁ انجام توسعههای ابتدایی یا تغییر در ابزارهای موجود
⦁ سطح پنهانکاری متوسط
⦁ سطح پیشرفته
⦁ ابداع و استفاده از TTPهای اختصاصی
⦁ پیادهسازی سناریوهای پیچیده و غیر تکراری
⦁ خودداری از استفاده ابزارهای شناخته شده بازار (مگر در حالت آفلاین)
⦁ تمرکز روی امکانات سیستمعامل
⦁ توسعه اختصاصی، C2 اختصاصی و R&D
⦁ سطح پنهانکاری بسیار بالا (مگر طبق توافق یا اتفاق)
برای انجام مانورهای سایبری، هر سه سطح بلوغ رد تیم میتونن مورد نیاز باشن، بسته به نوع سناریو و مدل مهاجم. رد تیم پیشرفته حتی میتونه از موضع تیمهای سادهتر هم شبیهسازی کنه. اگه بلو تیم فقط با تهدیدهای آشنا روبهرو بشه، هیچوقت آماده واکنش به حملات واقعاً پیچیده و جدید نمیشه.
@KavehOffSec
❤9🔥2
ناشناسی یک حالت باینری نیست یک رشته لایهای است. شما میتوانید در فضای IP کاملاً ناشناس باشید و همچنان از طریق زمانبندی، رفتار، DNS یا استفاده از گواهینامه هویت خود را افشا کنید. هر لایه (شبکه، اپلیکیشن، انسان) باید بهصورت جداگانه مقاومسازی شود.
بخشی از کتاب ناشناس بودن برای ردتیمرها
@KavehOffSec
بخشی از کتاب ناشناس بودن برای ردتیمرها
@KavehOffSec
👍8❤🔥2
#پاسخ به #سوالات شما :
ریدایرکتور چیست؟
ریدایرکتور، همانطور که از نامش پیداست، سروری است که درخواستهای HTTP/HTTPS را بر اساس اطلاعات موجود در بدنه درخواست HTTP هدایت (ریدایرکت) میکند. در سیستمهای عملیاتی، ممکن است یک "ریدایرکتور" را به شکل یک لود بالانسر (Load Balancer) ببینید. این سرور معمولاً از آپاچی 2 یا NGINX استفاده میکند.
@KavehOffSec
ریدایرکتور چیست؟
ریدایرکتور، همانطور که از نامش پیداست، سروری است که درخواستهای HTTP/HTTPS را بر اساس اطلاعات موجود در بدنه درخواست HTTP هدایت (ریدایرکت) میکند. در سیستمهای عملیاتی، ممکن است یک "ریدایرکتور" را به شکل یک لود بالانسر (Load Balancer) ببینید. این سرور معمولاً از آپاچی 2 یا NGINX استفاده میکند.
@KavehOffSec
👍2😁2
Forwarded from Try Hack Box
C2Matrix TryHackBox.xlsx
94.3 KB
🔖 چگونه یک فریم ورک C2 انتخاب کنیم ؟
پس از اتمام این کتاب، ممکن است سوالاتی براتون پیش بیاد و امیدواریم یکی از آنها این باشد: «چگونه بدونم کدوم فریم ورک C2 رو برای عملیاتهای تیم قرمز خود انتخاب کنم؟» پاسخ درست یا غلطی برای این سوال وجود ندارد، فقط چند سوال کلی که ابتدا باید به آنها پاسخ بدید :
اهداف شما چیست؟
آیا بودجهای دارید؟
آیا به چیزی بسیار قابل تنظیم نیاز دارید؟
آیا از Evasion آنتیویروسهای آماده (Off-the-shelf AV Evasion) ضروری است؟
آیا نیاز دارید که بتوانید ماژولها/اسکریپتهای خودتان را ایجاد کنید؟
آیا گزارشگیری داخلی برای شما ضروری است؟
سپس باید این اطلاعات را به فایل xlsx گسترده C2 Matrix ببرید و انتخاب خود را بر اساس سوالات بالا محدود کنید. اگر یک فریم ورک C2 پریمیوم پیدا کردید که معیارهای شما را برآورده میکند، به شدت توصیه میشود که درخواست یک نسخه آزمایشی/ارزیابی کنید تا ببینید آیا آن فریم ورک C2 برای شما بهترین گزینه است یا خیر.
مطالب بخشی از کتاب ردتیم ما که در حال آماده شدن است .
@TryHackBox | #RedTeam
پس از اتمام این کتاب، ممکن است سوالاتی براتون پیش بیاد و امیدواریم یکی از آنها این باشد: «چگونه بدونم کدوم فریم ورک C2 رو برای عملیاتهای تیم قرمز خود انتخاب کنم؟» پاسخ درست یا غلطی برای این سوال وجود ندارد، فقط چند سوال کلی که ابتدا باید به آنها پاسخ بدید :
اهداف شما چیست؟
آیا بودجهای دارید؟
آیا به چیزی بسیار قابل تنظیم نیاز دارید؟
آیا از Evasion آنتیویروسهای آماده (Off-the-shelf AV Evasion) ضروری است؟
آیا نیاز دارید که بتوانید ماژولها/اسکریپتهای خودتان را ایجاد کنید؟
آیا گزارشگیری داخلی برای شما ضروری است؟
سپس باید این اطلاعات را به فایل xlsx گسترده C2 Matrix ببرید و انتخاب خود را بر اساس سوالات بالا محدود کنید. اگر یک فریم ورک C2 پریمیوم پیدا کردید که معیارهای شما را برآورده میکند، به شدت توصیه میشود که درخواست یک نسخه آزمایشی/ارزیابی کنید تا ببینید آیا آن فریم ورک C2 برای شما بهترین گزینه است یا خیر.
مطالب بخشی از کتاب ردتیم ما که در حال آماده شدن است .
@TryHackBox | #RedTeam
❤5
با تمرکز روی حملات به AD CS من روی مفاهیم پایهای تمرکز میکنم اما با دیدگاه ردتیم: چطور این ویژگیها رو enumerate کنیم abuse کنیم برای escalation یا theft و evasion تکنیکها رو اضافه میکنم.
مثالهای عملی با ابزارهایی مثل Certify، CertUtil، و PowerShell میدم تا بتونید در لابراتورتون تمرین کنید.
با هشتگ زیر این آموزش ها رو دنبال کنید :
#ADCS
@KavehOffSec
مثالهای عملی با ابزارهایی مثل Certify، CertUtil، و PowerShell میدم تا بتونید در لابراتورتون تمرین کنید.
با هشتگ زیر این آموزش ها رو دنبال کنید :
#ADCS
@KavehOffSec
🔥5👍1
⭕ مقدمهای بر AD CS: زیرساخت کلید عمومی در اکتیو دایرکتوری
AD CS یا Active Directory Certificate Services
یکی از نقشهای کلیدی ویندوز سرور است که به سازمان ها امکان میدهد تا زیرساخت کلید عمومی (PKI) را پیادهسازی و مدیریت کنند. این سرویس برای صدور، مدیریت و اعتبارسنجی گواهی های دیجیتال استفاده میشود که در پروتکل های امنیتی مانند SSL/TLS، احراز هویت و رمزنگاری کاربرد دارند. گواهیهای دیجیتال، جایگزینی امن تر و قابل اعتمادتر برای احراز هویت مبتنی بر پسورد هستند و از رمزنگاری نامتقارن (کلید عمومی و خصوصی) به همراه امضاهای دیجیتال بهره میبرند.
💢 چرا AD CS مهم است؟
به سازمانها کمک می کند تا امنیت ارتباطات و احراز هویت را در سطح بالاتری مدیریت کنند. گواهیهای دیجیتال صادره توسط AD CS در سناریوهای مختلفی کاربرد دارند، از جمله:
- رمزنگاری ایمیلها: برای اطمینان از محرمانگی و اصالت ایمیلها.
- امضای دیجیتال: برای امضای اسناد یا کد های نرمافزاری جهت تضمین یکپارچگی و اصالت.
- احراز هویت مبتنی بر گواهی: برای کاربران، کامپیوترها یا دستگاهها (مثلاً در Kerberos با پروتکل PKINIT).
- پروتکلهای امن: مانند VPN، SSH یا سیستم فایل رمزنگاریشده (EFS).
این قابلیتها باعث میشوند AD CS به یکی از اجزای حیاتی زیرساخت امنیتی سازمانها تبدیل شود.
💢 چرا AD CS برای تیم قرمز جذاب است؟
از منظر تیم قرمز (Red Team)، AD CS یک هدف طلایی است، چون اغلب بهدرستی درک یا پیکربندی نمیشود. تنظیمات نادرست (misconfiguration) مثل قالبهای گواهی آسیبپذیر (vulnerable certificate templates) میتوانند راه را برای نفوذ به دامنه (domain) بدون نیاز به اکسپلویت های پیچیده باز کنند. برای مثال، اگر مهاجم بتواند گواهی ای با Extended Key Usage (EKU) مربوط به Client Authentication را سرقت کند، میتواند یک TGT (Ticket Granting Ticket) از Kerberos بگیرد و به راحتی هویت یک کاربر یا سیستم را جعل (impersonate) کند. این تکنیک که به Pass-the-Cert معروف است، یکی از روشهای قدرتمند سوءاستفاده از AD CS است.
آموزش عملی: بررسی وجود AD CS برای شروع، باید بررسی کنید که آیا AD CS در محیط تارگت فعال است یا خیر. میتوانید از PowerShell استفاده کنید:
اگر این دستور خروجی برگرداند، یعنی AD CS در دامنه فعال است. حالا میتوانید از ابزارهایی مثل Certify برای لیست کردن Certification Authorities (CAs) و بررسی تنظیمات آنها استفاده کنید.
نکته برای Evasion: برای جلوگیری از شناسایی توسط آنتیویروسهایی مثل Windows Defender، ابزار Certify را با استفاده از ConfuserEx مبهم سازی (obfuscate) کنید تا احتمال تشخیص آن کاهش یابد.
نکته : سوءاستفاده از PKI برای پایداری (Persistence)
یکی از بزرگترین مزیتهای سوءاستفاده از AD CS برای مهاجمان، امکان ایجاد پایداری (persistence) در محیط است. برخلاف پسوردها که ممکن است تغییر کنند، گواهی های دیجیتال معمولاً تاریخ انقضای طولانی مدت دارند و تغییر پسورد کاربر تأثیری بر اعتبار آنها ندارد. این ویژگی، PKI را به ابزاری ایده آل برای حفظ دسترسی غیرمجاز تبدیل میکند.
جمعبندی
AD CS:
یکی از ستونهای اصلی امنیت در محیط های مبتنی بر اکتیو دایرکتوری است، اما تنظیمات نادرست آن میتواند به پاشنه آشیل سازمان تبدیل شود. برای تیمهای امنیتی (Blue Team)، درک عمیق این سرویس و ایمنسازی آن ضروری است. برای تیمهای قرمز، AD CS دریچهای به سوءاستفادههای پیشرفته و پایداری طولانیمدت در شبکه است. با ابزارهای مناسب و دانش کافی، این سرویس میتواند نقطه شروعی برای حملات پیچیده باشد.
#ADCS #PKI
@KavehOffSec
AD CS یا Active Directory Certificate Services
یکی از نقشهای کلیدی ویندوز سرور است که به سازمان ها امکان میدهد تا زیرساخت کلید عمومی (PKI) را پیادهسازی و مدیریت کنند. این سرویس برای صدور، مدیریت و اعتبارسنجی گواهی های دیجیتال استفاده میشود که در پروتکل های امنیتی مانند SSL/TLS، احراز هویت و رمزنگاری کاربرد دارند. گواهیهای دیجیتال، جایگزینی امن تر و قابل اعتمادتر برای احراز هویت مبتنی بر پسورد هستند و از رمزنگاری نامتقارن (کلید عمومی و خصوصی) به همراه امضاهای دیجیتال بهره میبرند.
💢 چرا AD CS مهم است؟
به سازمانها کمک می کند تا امنیت ارتباطات و احراز هویت را در سطح بالاتری مدیریت کنند. گواهیهای دیجیتال صادره توسط AD CS در سناریوهای مختلفی کاربرد دارند، از جمله:
- رمزنگاری ایمیلها: برای اطمینان از محرمانگی و اصالت ایمیلها.
- امضای دیجیتال: برای امضای اسناد یا کد های نرمافزاری جهت تضمین یکپارچگی و اصالت.
- احراز هویت مبتنی بر گواهی: برای کاربران، کامپیوترها یا دستگاهها (مثلاً در Kerberos با پروتکل PKINIT).
- پروتکلهای امن: مانند VPN، SSH یا سیستم فایل رمزنگاریشده (EFS).
این قابلیتها باعث میشوند AD CS به یکی از اجزای حیاتی زیرساخت امنیتی سازمانها تبدیل شود.
💢 چرا AD CS برای تیم قرمز جذاب است؟
از منظر تیم قرمز (Red Team)، AD CS یک هدف طلایی است، چون اغلب بهدرستی درک یا پیکربندی نمیشود. تنظیمات نادرست (misconfiguration) مثل قالبهای گواهی آسیبپذیر (vulnerable certificate templates) میتوانند راه را برای نفوذ به دامنه (domain) بدون نیاز به اکسپلویت های پیچیده باز کنند. برای مثال، اگر مهاجم بتواند گواهی ای با Extended Key Usage (EKU) مربوط به Client Authentication را سرقت کند، میتواند یک TGT (Ticket Granting Ticket) از Kerberos بگیرد و به راحتی هویت یک کاربر یا سیستم را جعل (impersonate) کند. این تکنیک که به Pass-the-Cert معروف است، یکی از روشهای قدرتمند سوءاستفاده از AD CS است.
آموزش عملی: بررسی وجود AD CS برای شروع، باید بررسی کنید که آیا AD CS در محیط تارگت فعال است یا خیر. میتوانید از PowerShell استفاده کنید:
Get-ADObject -LDAPFilter '(objectclass=certificationAuthority)' -SearchBase 'CN=Configuration,DC=yourdomain,DC=com'
اگر این دستور خروجی برگرداند، یعنی AD CS در دامنه فعال است. حالا میتوانید از ابزارهایی مثل Certify برای لیست کردن Certification Authorities (CAs) و بررسی تنظیمات آنها استفاده کنید.
نکته برای Evasion: برای جلوگیری از شناسایی توسط آنتیویروسهایی مثل Windows Defender، ابزار Certify را با استفاده از ConfuserEx مبهم سازی (obfuscate) کنید تا احتمال تشخیص آن کاهش یابد.
نکته : سوءاستفاده از PKI برای پایداری (Persistence)
یکی از بزرگترین مزیتهای سوءاستفاده از AD CS برای مهاجمان، امکان ایجاد پایداری (persistence) در محیط است. برخلاف پسوردها که ممکن است تغییر کنند، گواهی های دیجیتال معمولاً تاریخ انقضای طولانی مدت دارند و تغییر پسورد کاربر تأثیری بر اعتبار آنها ندارد. این ویژگی، PKI را به ابزاری ایده آل برای حفظ دسترسی غیرمجاز تبدیل میکند.
جمعبندی
AD CS:
یکی از ستونهای اصلی امنیت در محیط های مبتنی بر اکتیو دایرکتوری است، اما تنظیمات نادرست آن میتواند به پاشنه آشیل سازمان تبدیل شود. برای تیمهای امنیتی (Blue Team)، درک عمیق این سرویس و ایمنسازی آن ضروری است. برای تیمهای قرمز، AD CS دریچهای به سوءاستفادههای پیشرفته و پایداری طولانیمدت در شبکه است. با ابزارهای مناسب و دانش کافی، این سرویس میتواند نقطه شروعی برای حملات پیچیده باشد.
#ADCS #PKI
@KavehOffSec
🔥6❤1
⭕ مقدمهای بر AD CS – اجزاء کلیدی
حالا که توی پست قبل یه مقدمه کلی از AD CS دادیم بیایم سراغ اجزای اصلیش بریم. این سرویس واقعاً پیچیده ست و اجزاش با هم هماهنگ کار میکنن تا گواهی ها رو صادر، مدیریت و توزیع کنن. هر کدوم از این اجزا رو میشه بررسی کرد و حتی از زاویه ردتیم بهشون نگاه کرد که چطور میتونن نقطه ضعف باشن. من سعی کردم هر بخش رو ساده توضیح بدم و بعد abuse احتمالیش رو بگم.
نگاه کلی AD CS :
از چند کامپوننت اصلی تشکیل شده که با همدیگه enrollment (ثبتنام برای گواهی)، issuance (صدور گواهی) و مدیریت گواهی ها رو هندل میکنن. این اجزا معمولاً روی سرور ویندوز نصب میشن و با اکتیو دایرکتوری یکپارچه هستن. بدون اینها، PKI کار نمیکنه.
اجزای کلیدی AD CS
اینجا لیستشون کردم با توضیح مختصر و نکات ردتیم:
- Certification Authority (CA):
این قلب تپنده AD CS هست. گواهیها رو صادر، revoke و مدیریت میکنه بر اساس templateها. میتونه Root CA (ریشه، که خودش رو امضا میکنه) یا Subordinate CA (زیرمجموعه، که از root امضا میگیره) باشه. برای فعال کردنش باید نقش AD CS رو روی سرور نصب کنی.
- دیدگاه ردتیم و آموزش:
اگر بتونی CA رو compromise کنی (مثل حمله ESC5)، میتونی golden certificate forge کنی و persistence بسازی (DPERSIST1). برای enumerate، از ابزار Certify.exe cas استفاده کن تا لیست CAها و تنظیماتشون رو بگیری.
- Certificate Template:
این ها مثل blueprint هستن برای گواهی ها. مجوزهای enrollment، EKUها (Extended Key Usages مثل Client Auth)، تاریخ انقضا و چیزای دیگه رو تعریف میکنن.
- دیدگاه ردتیم و آموزش: templateهای vulnerable رو پیدا کن که اجازه enrollment بدون مجوز درست بدن (مثل ESC1). با Certify.exe find میتونی لیست templateها رو بگیری و misconfigها رو چک کنی مثلاً اگر EKU خطرناکی داشته باشن.
- Certificate Enrollment Web Service (CES):
این سرویس enrollment رو از طریق HTTPS برای کاربران و کامپیوترها فراهم میکنه، بدون نیاز به دسترسی مستقیم به CA.
- دیدگاه ردتیم و آموزش: اگر روی HTTP باشه، vulnerable به NTLM relay attack هست (ESC8). میتونی authentication رو coerce کنی با ابزار Coercer و بعد relay کنی با ntlmrelayx تا گواهی بگیری.
- Certificate Enrollment Policy Web Service:
این یکی policyهای enrollment رو به کلاینتها میده تا بدونن چطور ثبت نام کنن.
- (این بخش کمتر abuse داره، اما بخشی از زنجیره enrollment هست.)
- CA Web Enrollment:
رابط وب برای enrollment گواهی ها، مخصوصاً برای دستگاههای non-domain یا خارج از شبکه.
- دیدگاه ردتیم و آموزش: اگر وب باز باشه، scan کن برای vulnهایی مثل relay attacks یا injection. همیشه چک کن HTTPS باشه یا نه.
- Network Device Enrollment Service (NDES):
برای دستگاههای شبکه مثل روترها یا چیزایی که offline هستن (مثل پیاده سازی با Intune). از پروتکل SCEP استفاده میکنه.
- دیدگاه ردتیم و آموزش: templateهای offline vulnerable به سرقت (THEFT4) یا bypass پچهای CBA (Certificate-Based Authentication). اگر NDES فعال باشه، میتونی گواهی های دستگاه رو abuse کنی.
جمع بندی
از دید تیم قرمز، اول باید این اجزا رو enumerate کنی تا attack surface رو پیدا کنی. مثلاً اگر CES فعال باشه، حتماً relay attack تست کن میتونه در رو باز کنه بدون نیاز به privilege بالا. برای evasion، از winrs (Windows Remote Shell) استفاده کن تا دسترسی بگیری بدون اینکه logging سنگینی بشه. ابزارهایی مثل Certify رو فراموش نکن، چون سریع misconfigها رو نشون میدن.
در نهایت، AD CS پر از جزئیاته و هر اجزاش میتونه نقطه ورود باشه.
#ADCS
@KavehOffSec
حالا که توی پست قبل یه مقدمه کلی از AD CS دادیم بیایم سراغ اجزای اصلیش بریم. این سرویس واقعاً پیچیده ست و اجزاش با هم هماهنگ کار میکنن تا گواهی ها رو صادر، مدیریت و توزیع کنن. هر کدوم از این اجزا رو میشه بررسی کرد و حتی از زاویه ردتیم بهشون نگاه کرد که چطور میتونن نقطه ضعف باشن. من سعی کردم هر بخش رو ساده توضیح بدم و بعد abuse احتمالیش رو بگم.
نگاه کلی AD CS :
از چند کامپوننت اصلی تشکیل شده که با همدیگه enrollment (ثبتنام برای گواهی)، issuance (صدور گواهی) و مدیریت گواهی ها رو هندل میکنن. این اجزا معمولاً روی سرور ویندوز نصب میشن و با اکتیو دایرکتوری یکپارچه هستن. بدون اینها، PKI کار نمیکنه.
اجزای کلیدی AD CS
اینجا لیستشون کردم با توضیح مختصر و نکات ردتیم:
- Certification Authority (CA):
این قلب تپنده AD CS هست. گواهیها رو صادر، revoke و مدیریت میکنه بر اساس templateها. میتونه Root CA (ریشه، که خودش رو امضا میکنه) یا Subordinate CA (زیرمجموعه، که از root امضا میگیره) باشه. برای فعال کردنش باید نقش AD CS رو روی سرور نصب کنی.
- دیدگاه ردتیم و آموزش:
اگر بتونی CA رو compromise کنی (مثل حمله ESC5)، میتونی golden certificate forge کنی و persistence بسازی (DPERSIST1). برای enumerate، از ابزار Certify.exe cas استفاده کن تا لیست CAها و تنظیماتشون رو بگیری.
- Certificate Template:
این ها مثل blueprint هستن برای گواهی ها. مجوزهای enrollment، EKUها (Extended Key Usages مثل Client Auth)، تاریخ انقضا و چیزای دیگه رو تعریف میکنن.
- دیدگاه ردتیم و آموزش: templateهای vulnerable رو پیدا کن که اجازه enrollment بدون مجوز درست بدن (مثل ESC1). با Certify.exe find میتونی لیست templateها رو بگیری و misconfigها رو چک کنی مثلاً اگر EKU خطرناکی داشته باشن.
- Certificate Enrollment Web Service (CES):
این سرویس enrollment رو از طریق HTTPS برای کاربران و کامپیوترها فراهم میکنه، بدون نیاز به دسترسی مستقیم به CA.
- دیدگاه ردتیم و آموزش: اگر روی HTTP باشه، vulnerable به NTLM relay attack هست (ESC8). میتونی authentication رو coerce کنی با ابزار Coercer و بعد relay کنی با ntlmrelayx تا گواهی بگیری.
- Certificate Enrollment Policy Web Service:
این یکی policyهای enrollment رو به کلاینتها میده تا بدونن چطور ثبت نام کنن.
- (این بخش کمتر abuse داره، اما بخشی از زنجیره enrollment هست.)
- CA Web Enrollment:
رابط وب برای enrollment گواهی ها، مخصوصاً برای دستگاههای non-domain یا خارج از شبکه.
- دیدگاه ردتیم و آموزش: اگر وب باز باشه، scan کن برای vulnهایی مثل relay attacks یا injection. همیشه چک کن HTTPS باشه یا نه.
- Network Device Enrollment Service (NDES):
برای دستگاههای شبکه مثل روترها یا چیزایی که offline هستن (مثل پیاده سازی با Intune). از پروتکل SCEP استفاده میکنه.
- دیدگاه ردتیم و آموزش: templateهای offline vulnerable به سرقت (THEFT4) یا bypass پچهای CBA (Certificate-Based Authentication). اگر NDES فعال باشه، میتونی گواهی های دستگاه رو abuse کنی.
جمع بندی
از دید تیم قرمز، اول باید این اجزا رو enumerate کنی تا attack surface رو پیدا کنی. مثلاً اگر CES فعال باشه، حتماً relay attack تست کن میتونه در رو باز کنه بدون نیاز به privilege بالا. برای evasion، از winrs (Windows Remote Shell) استفاده کن تا دسترسی بگیری بدون اینکه logging سنگینی بشه. ابزارهایی مثل Certify رو فراموش نکن، چون سریع misconfigها رو نشون میدن.
در نهایت، AD CS پر از جزئیاته و هر اجزاش میتونه نقطه ورود باشه.
#ADCS
@KavehOffSec
👍7
سوالات شما
من سوالی را که در توییتر مطرح شد دوست داشتم، مفهوم آن این بود: «در کدام مرحله تیم رد تیم به راحتی شناسایی میشود؟»
یکی از وظایف تیم مهاجم این است که اجازه دهد تیم دفاعی آنها را شناسایی کند. انجام یک اشتباه آگاهانه، گذاشتن IOC، اجرای برنامه یا دستوراتی که باید محرک شروع یک حادثه باشند. اما انجام این اقدامات توسط تیم مهاجم در مرحله پایانی خواهد بود، زمانی که فقط هدف عملیات باقی مانده است. اگر تیم مهاجم خیلی زود شناسایی شود، ممکن است بر ادامه عملیات تأثیر منفی بگذارد. همه چیز به توافقات اجرای پروژه بستگی دارد.
برگردیم به سوال. به نظر من سختترین و خطرناکترین مراحل، مراحل دسترسی اولیه هستند: آگاهی موقعیتی و تثبیت. در مرحله ابتدایی دسترسی به شبکه داخلی، تیم مهاجم باید بسیار محتاط و دقیق باشد. اعضای تیم هنوز نمیدانند چه مکانیزمهای دفاعی استفاده میشود و چگونه تنظیم شدهاند. هنگام انجام آگاهی موقعیتی ممکن است عملی انجام شود که هشدار ایجاد کند. به عنوان مثال، دستور whoami که مورد علاقه پنتسترها است اما کاربران عادی هرگز از آن استفاده نمیکنند. پس از دسترسی به شبکه داخلی، تیم مهاجم باید تثبیت کند و پایگاهی برای پیشروی به هدف عملیات بسازد. انتخاب نادرست مکانیزم تثبیت نیز میتواند هشدار ایجاد کند. اما به محض اینکه اعضای رد تیم در شبکه جا بیفتند، میتوانند با جسارت بیشتری عمل کنند و گاهی حتی جسورانه.
در کتاب ناشناس بودن برای ردتیمر ها میخوانید که چطور از شناسایی شدن جلو گیری کنید .
#FAQ #RedTeam
@KavehOffSec
من سوالی را که در توییتر مطرح شد دوست داشتم، مفهوم آن این بود: «در کدام مرحله تیم رد تیم به راحتی شناسایی میشود؟»
یکی از وظایف تیم مهاجم این است که اجازه دهد تیم دفاعی آنها را شناسایی کند. انجام یک اشتباه آگاهانه، گذاشتن IOC، اجرای برنامه یا دستوراتی که باید محرک شروع یک حادثه باشند. اما انجام این اقدامات توسط تیم مهاجم در مرحله پایانی خواهد بود، زمانی که فقط هدف عملیات باقی مانده است. اگر تیم مهاجم خیلی زود شناسایی شود، ممکن است بر ادامه عملیات تأثیر منفی بگذارد. همه چیز به توافقات اجرای پروژه بستگی دارد.
برگردیم به سوال. به نظر من سختترین و خطرناکترین مراحل، مراحل دسترسی اولیه هستند: آگاهی موقعیتی و تثبیت. در مرحله ابتدایی دسترسی به شبکه داخلی، تیم مهاجم باید بسیار محتاط و دقیق باشد. اعضای تیم هنوز نمیدانند چه مکانیزمهای دفاعی استفاده میشود و چگونه تنظیم شدهاند. هنگام انجام آگاهی موقعیتی ممکن است عملی انجام شود که هشدار ایجاد کند. به عنوان مثال، دستور whoami که مورد علاقه پنتسترها است اما کاربران عادی هرگز از آن استفاده نمیکنند. پس از دسترسی به شبکه داخلی، تیم مهاجم باید تثبیت کند و پایگاهی برای پیشروی به هدف عملیات بسازد. انتخاب نادرست مکانیزم تثبیت نیز میتواند هشدار ایجاد کند. اما به محض اینکه اعضای رد تیم در شبکه جا بیفتند، میتوانند با جسارت بیشتری عمل کنند و گاهی حتی جسورانه.
در کتاب ناشناس بودن برای ردتیمر ها میخوانید که چطور از شناسایی شدن جلو گیری کنید .
#FAQ #RedTeam
@KavehOffSec
👍8
⭕ مقدمه ای بر AD CS – فرمت های گواهینامه یا Certificate
اینجا در مورد فرمتهای رایج گواهیها یا سرتیفیکیت حرف میزنیم. دونستن این فرمتها خیلی مهمه، چون برای سرقت یا خروجی گرفتن ازشون لازمه بدونیم چطور کار میکنن.
بیایم از پایه شروع کنیم: AD CS از استاندارد X.509 استفاده میکنه. حالا فرمتهای اصلیشون اینان:
- PEM:
این یکی DER رو به صورت Base64 انکود کرده. پسوندهای رایجش .pem، .crt، .cer، .key هستن. معمولاً شامل گواهی (سرتیفیکیت)به علاوه کلید خصوصی بدون هیچ حفاظتی میشه. بیشتر تو لینوکس یا وب سرورها میبینیش.
- DER:
نسخه باینری PEM هست، ساده و مستقیم برای ماشین ها.
- PFX یا P12 (که همون PKCS#12 هست):
این باینریه و با پسورد حفاظت میشه. داخلش گواهی و کلید خصوصی رو نگه میداره. عالیه برای خروجی گرفتن تو ویندوز.
- P7B (PKCS#7):
فقط زنجیره گواهیها رو داره، بدون کلید خصوصی.
حالا برای تیم قرمز: گواهیها رو روی دیسک جستجو کن (مثل THEFT4) با این اکستنشنها.
مثلاً با پاورشل اینطوری:
اگه PFX پیدا کردی، با CertUtil خروجی بگیر و اگه بدون حفاظت بود، پسوردش رو بروت فورس کن. ابزار Seatbelt هم خوبه برای اتومات کردن جستجو.
نکته مهم: از PEM یا PEM بدون حفاظت برای سوءاستفاده کراس پلتفرم استفاده کن .
#ADCS
@KavehOffSec
اینجا در مورد فرمتهای رایج گواهیها یا سرتیفیکیت حرف میزنیم. دونستن این فرمتها خیلی مهمه، چون برای سرقت یا خروجی گرفتن ازشون لازمه بدونیم چطور کار میکنن.
بیایم از پایه شروع کنیم: AD CS از استاندارد X.509 استفاده میکنه. حالا فرمتهای اصلیشون اینان:
- PEM:
این یکی DER رو به صورت Base64 انکود کرده. پسوندهای رایجش .pem، .crt، .cer، .key هستن. معمولاً شامل گواهی (سرتیفیکیت)به علاوه کلید خصوصی بدون هیچ حفاظتی میشه. بیشتر تو لینوکس یا وب سرورها میبینیش.
- DER:
نسخه باینری PEM هست، ساده و مستقیم برای ماشین ها.
- PFX یا P12 (که همون PKCS#12 هست):
این باینریه و با پسورد حفاظت میشه. داخلش گواهی و کلید خصوصی رو نگه میداره. عالیه برای خروجی گرفتن تو ویندوز.
- P7B (PKCS#7):
فقط زنجیره گواهیها رو داره، بدون کلید خصوصی.
حالا برای تیم قرمز: گواهیها رو روی دیسک جستجو کن (مثل THEFT4) با این اکستنشنها.
مثلاً با پاورشل اینطوری:
Get-ChildItem C:\ -include ('*.pem', '*.pfx', '*.p12', '*.crt', '*.cer', '*.key') -recurse -ErrorAction SilentlyContinueاگه PFX پیدا کردی، با CertUtil خروجی بگیر و اگه بدون حفاظت بود، پسوردش رو بروت فورس کن. ابزار Seatbelt هم خوبه برای اتومات کردن جستجو.
نکته مهم: از PEM یا PEM بدون حفاظت برای سوءاستفاده کراس پلتفرم استفاده کن .
#ADCS
@KavehOffSec
👍6
دوستان به وقتش به بررسی حملات APT میرسیم تا اون موقع یکسری مطالب میزارم که با مباحث و مفاهیم اشنا شید و بعد بریم سراغ فریم ورک mitre و دنیای APT هکرها .
👍7
⭕ مقدمهای بر AD CS – ویژگیهای گواهینامه (Certificate Attributes)
در این بخش به بررسی چند ویژگی مهم و کاربردی گواهینامهها در Active Directory Certificate Services میپردازیم. این ویژگیها هم در کارهای عادی و هم در عملیات تیم قرمز میتوانند نکات جالبی داشته باشند.
ویژگیهای اصلی گواهی
Subject
موجودیت دریافتکننده گواهی. مثال:
Issuer
صادرکننده گواهی، که معمولاً یک CA داخلی یا سازمانی است.
Subject Alternative Name (SAN)
نامهای جایگزین که میتواند شامل DNS، آدرس IP یا ایمیل باشد.
Validity Period
بازه زمانی اعتبار گواهی (تاریخ شروع و پایان).
Extended Key Usage (EKU)
تعیین هدف یا سناریوی استفاده از گواهی (جزئیاتش در بخشهای بعدی گفته میشود).
نکات عملیاتی برای تیم قرمز
SAN قابل تغییر (SAN Modifiable)
اگر قالب صدور گواهی (Certificate Template) به شما اجازه ویرایش SAN بدهد، میتوان از این قابلیت برای Impersonation استفاده کرد.
سناریوی کلاسیک: اضافه کردن
مثال:
بررسی دوره اعتبار (Validity)
تاریخ اعتبار را زیر نظر داشته باشید تا پیش از انقضا گواهی را تمدید کنید وPersistence ایجاد شود.
Evasion
استفاده از پارامتر
💡 نکته: اگر قالب گواهی در بخش SAN آسیبپذیر باشد، این می تواند یک مسیر مستقیم به سمت Domain Escalation باشد.
#ADCS
@KavehOffSec
در این بخش به بررسی چند ویژگی مهم و کاربردی گواهینامهها در Active Directory Certificate Services میپردازیم. این ویژگیها هم در کارهای عادی و هم در عملیات تیم قرمز میتوانند نکات جالبی داشته باشند.
ویژگیهای اصلی گواهی
Subject
موجودیت دریافتکننده گواهی. مثال:
CN=user@domain.comIssuer
صادرکننده گواهی، که معمولاً یک CA داخلی یا سازمانی است.
Subject Alternative Name (SAN)
نامهای جایگزین که میتواند شامل DNS، آدرس IP یا ایمیل باشد.
Validity Period
بازه زمانی اعتبار گواهی (تاریخ شروع و پایان).
Extended Key Usage (EKU)
تعیین هدف یا سناریوی استفاده از گواهی (جزئیاتش در بخشهای بعدی گفته میشود).
نکات عملیاتی برای تیم قرمز
SAN قابل تغییر (SAN Modifiable)
اگر قالب صدور گواهی (Certificate Template) به شما اجازه ویرایش SAN بدهد، میتوان از این قابلیت برای Impersonation استفاده کرد.
سناریوی کلاسیک: اضافه کردن
altname=admin به گواهی درخواست شده.مثال:
Certify.exe request /ca:CA_NAME /template:User /altname:admin
بررسی دوره اعتبار (Validity)
تاریخ اعتبار را زیر نظر داشته باشید تا پیش از انقضا گواهی را تمدید کنید وPersistence ایجاد شود.
Evasion
استفاده از پارامتر
/sidextension برای دور زدن برخی پچهای CBA.💡 نکته: اگر قالب گواهی در بخش SAN آسیبپذیر باشد، این می تواند یک مسیر مستقیم به سمت Domain Escalation باشد.
#ADCS
@KavehOffSec
❤7
GitHub
GitHub - TryHackBox/Kaveh-WebDiff-Monitor: HTTP/S Service Monitor Script This Bash noscript periodically monitors the availability…
HTTP/S Service Monitor Script This Bash noscript periodically monitors the availability and content of web services (HTTP/HTTPS) specified in an input file. It checks each service at regular interva...
https://github.com/TryHackBox/Kaveh-WebDiff-Monitor
توضیحات ابزار :
این ابزار یک مانیتورینگ تغییرات و وضعیت HTTP است که برای بررسی سلامت سرویسهای وب، مانیتورینگ Virtual Hostها و شناسایی تغییرات محتوا استفاده میشود.
با استفاده از این اسکریپت میتوانید چندین IP/Port/Schema/Vhost را به صورت دورهای بررسی کنید و در صورت تغییر وضعیت پاسخ یا تغییر در محتوای صفحه، هشدار دریافت کنید.
اگر فکر میکنید ویژیگی این ابزار بهتر میکنه پیشنهاد بدید اضافه کنم میتونید در گفتگوی مستقیم پیشنهاد بدید یا توییتر .
@KavehOffSec
توضیحات ابزار :
این ابزار یک مانیتورینگ تغییرات و وضعیت HTTP است که برای بررسی سلامت سرویسهای وب، مانیتورینگ Virtual Hostها و شناسایی تغییرات محتوا استفاده میشود.
با استفاده از این اسکریپت میتوانید چندین IP/Port/Schema/Vhost را به صورت دورهای بررسی کنید و در صورت تغییر وضعیت پاسخ یا تغییر در محتوای صفحه، هشدار دریافت کنید.
اگر فکر میکنید ویژیگی این ابزار بهتر میکنه پیشنهاد بدید اضافه کنم میتونید در گفتگوی مستقیم پیشنهاد بدید یا توییتر .
@KavehOffSec
🔥6
⭕ مقدمهای بر AD CS: گواهی های EKUها و OIDها
سلام، اگر بخوایم در مورد Active Directory Certificate Services (AD CS) حرف بزنیم، یکی از بخشهای کلیدیش گواهیهای دیجیتال هستن که توشون چیزایی مثل Extended Key Usage (EKU) و Object Identifier (OID) نقش مهمی بازی میکنن. اینا اساساً کمک میکنن تا بفهمیم یک گواهی برای چی ساخته شده و چطور میتونه سوءاستفاده بشه، مخصوصاً تو سناریوهای red teaming یا تست نفوذ. من اینجا سعی میکنم این بخش رو با جزئیات بیشتری توضیح بدم، چون واقعاً کلیدیه برای درک چگونگی abuse کردن templateهای گواهی.
EKU چیه؟
در واقع یک extension تو گواهیهای X.509 هست که مشخص میکنه این گواهی دقیقاً برای چه هدفی میتونه استفاده بشه. بدون EKU، گواهی میتونه برای هر کاری استفاده بشه (که این خودش یک حفره امنیتی بزرگه)، اما با EKU، محدودیتهایی اعمال میشه. تو محیط AD CS، این EKUها میتونن توسط administratorها روی templateها تنظیم بشن، و اگر درست کانفیگ نشن، راه رو برای حمله باز میکنن. مثلاً تو حملات escalation privilege، مثل ESC1 تا ESC3 که تو گزارشهای SpecterOps توضیح دادن، EKUهای خاصی مثل Client Authentication میتونن به مهاجم ها کمک کنن تا دسترسی بالاتری بگیرن.
OID چیه؟
OIDها identifierهای منحصر به فردی هستن که ساختار hierarchy دارن مثل یک درخت که هر شاخه اش یک کد عددی داره. اینا توسط سازمانهایی مثل IANA یا Microsoft تعریف میشن و هر OID یک کاربرد خاص رو نشون میده. OIDها تو EKUها استفاده میشن تا دقیقتر بگن گواهی چیکار میتونه بکنه. مثلاً، OIDها مثل شماره سریال هستن که کمک میکنن سیستمها بفهمن گواهی معتبره یا نه. اگر بخوای custom OID بسازی (مثل تو تستهای vuln)، میتونی از ابزارهایی مثل Certify.exe استفاده کنی تا ببینی چطور کار میکنه.
OIDهای رایج و کاربردهاشون (با تمرکز روی abuse)
اینجا چند تا OID مهم رو لیست میکنم، همراه با توضیح اینکه چطور میتونن تو abuse templateها مفید باشن. اینا رو بر اساس تجربیات red teaming انتخاب کردم، چون اغلب تو حملات واقعی دیده شدن:
- Server Authentication (OID: 1.3.6.1.5.5.7.3.1):
این برای SSL/TLS سرورها استفاده میشه، مثل وبسرورها. تو abuse، اگر templateی داشته باشی که این EKU رو اجازه بده و enrollment rights داشته باشی، میتونی گواهی جعلی بسازی برای impersonation سرورها. ولی معمولاً کمتر برای escalation استفاده میشه.
- Client Authentication (OID: 1.3.6.1.5.5.7.3.2):
این یکی برای احراز هویت کلاینتها طراحی شده، مثلاً تو PKINIT برای گرفتن Kerberos TGT. کلیدیه برای abuse! اگر templateی با این EKU داشته باشی و enrollment داشته باشی، میتونی privilege escalate کنی. مثلاً تو آموزشهای red team، میگن: template با Client Auth + enrollment rights = escalation path. برای enumerate کردنش، از Certify.exe find /clientauth استفاده کن. اگر نیاز به تست vuln داشتی، custom OID بساز و امتحان کن.
- Code Signing (OID: 1.3.6.1.5.5.7.3.3):
برای امضای کد، که میتونه Windows Defender Application Control (WDAC) رو bypass کنه. تو abuse، اگر بتونی گواهی با این EKU بگیری، کد مخربت رو امضا میکنی و سیستم فکر میکنه معتبره.
- Secure Email (OID: 1.3.6.1.5.5.7.3.4):
برای رمزنگاری و امضای ایمیلها (SMIME). کمتر abuse میشه، اما اگر template vuln باشه، میتونی برای spoofing ایمیل استفاده کنی.
- Encrypting File System (EFS) (OID: 1.3.6.1.4.1.311.10.3.4):
برای رمزنگاری فایلها تو ویندوز. تو سناریوهای خاص، می تونی ازش برای دسترسی به فایل های encryptشده سوءاستفاده کنی.
- Any Purpose (OID: 2.5.29.37.0):
این یکی همهکارهست و هیچ محدودیتی نداره – دقیقاً مثل نداشتن EKU. vulnerable به حملاتی مثل ESC2، چون میتونی گواهی رو برای هر کاری استفاده کنی، از authentication گرفته تا signing.
- Certificate Request Agent (OID: 1.3.6.1.4.1.311.20.2.1):
این برای on-behalf-of enrollment استفاده میشه، که تو ESC3 کلیدیه. اگر template این EKU رو داشته باشه، attacker میتونه گواهی برای کاربر دیگه درخواست کنه و privilege بگیره.
نکتههای کلیدی برای abuse در red teaming
- No EKU = Any Purpose:
اگر گواهی EKU نداشته باشه، مثل Any Purpose عمل میکنه عالی برای ESC2، چون محدودیت نداره و میتونی باهاش هر کاری کنی.
#ADCS
@KavehOffSec
سلام، اگر بخوایم در مورد Active Directory Certificate Services (AD CS) حرف بزنیم، یکی از بخشهای کلیدیش گواهیهای دیجیتال هستن که توشون چیزایی مثل Extended Key Usage (EKU) و Object Identifier (OID) نقش مهمی بازی میکنن. اینا اساساً کمک میکنن تا بفهمیم یک گواهی برای چی ساخته شده و چطور میتونه سوءاستفاده بشه، مخصوصاً تو سناریوهای red teaming یا تست نفوذ. من اینجا سعی میکنم این بخش رو با جزئیات بیشتری توضیح بدم، چون واقعاً کلیدیه برای درک چگونگی abuse کردن templateهای گواهی.
EKU چیه؟
در واقع یک extension تو گواهیهای X.509 هست که مشخص میکنه این گواهی دقیقاً برای چه هدفی میتونه استفاده بشه. بدون EKU، گواهی میتونه برای هر کاری استفاده بشه (که این خودش یک حفره امنیتی بزرگه)، اما با EKU، محدودیتهایی اعمال میشه. تو محیط AD CS، این EKUها میتونن توسط administratorها روی templateها تنظیم بشن، و اگر درست کانفیگ نشن، راه رو برای حمله باز میکنن. مثلاً تو حملات escalation privilege، مثل ESC1 تا ESC3 که تو گزارشهای SpecterOps توضیح دادن، EKUهای خاصی مثل Client Authentication میتونن به مهاجم ها کمک کنن تا دسترسی بالاتری بگیرن.
OID چیه؟
OIDها identifierهای منحصر به فردی هستن که ساختار hierarchy دارن مثل یک درخت که هر شاخه اش یک کد عددی داره. اینا توسط سازمانهایی مثل IANA یا Microsoft تعریف میشن و هر OID یک کاربرد خاص رو نشون میده. OIDها تو EKUها استفاده میشن تا دقیقتر بگن گواهی چیکار میتونه بکنه. مثلاً، OIDها مثل شماره سریال هستن که کمک میکنن سیستمها بفهمن گواهی معتبره یا نه. اگر بخوای custom OID بسازی (مثل تو تستهای vuln)، میتونی از ابزارهایی مثل Certify.exe استفاده کنی تا ببینی چطور کار میکنه.
OIDهای رایج و کاربردهاشون (با تمرکز روی abuse)
اینجا چند تا OID مهم رو لیست میکنم، همراه با توضیح اینکه چطور میتونن تو abuse templateها مفید باشن. اینا رو بر اساس تجربیات red teaming انتخاب کردم، چون اغلب تو حملات واقعی دیده شدن:
- Server Authentication (OID: 1.3.6.1.5.5.7.3.1):
این برای SSL/TLS سرورها استفاده میشه، مثل وبسرورها. تو abuse، اگر templateی داشته باشی که این EKU رو اجازه بده و enrollment rights داشته باشی، میتونی گواهی جعلی بسازی برای impersonation سرورها. ولی معمولاً کمتر برای escalation استفاده میشه.
- Client Authentication (OID: 1.3.6.1.5.5.7.3.2):
این یکی برای احراز هویت کلاینتها طراحی شده، مثلاً تو PKINIT برای گرفتن Kerberos TGT. کلیدیه برای abuse! اگر templateی با این EKU داشته باشی و enrollment داشته باشی، میتونی privilege escalate کنی. مثلاً تو آموزشهای red team، میگن: template با Client Auth + enrollment rights = escalation path. برای enumerate کردنش، از Certify.exe find /clientauth استفاده کن. اگر نیاز به تست vuln داشتی، custom OID بساز و امتحان کن.
- Code Signing (OID: 1.3.6.1.5.5.7.3.3):
برای امضای کد، که میتونه Windows Defender Application Control (WDAC) رو bypass کنه. تو abuse، اگر بتونی گواهی با این EKU بگیری، کد مخربت رو امضا میکنی و سیستم فکر میکنه معتبره.
- Secure Email (OID: 1.3.6.1.5.5.7.3.4):
برای رمزنگاری و امضای ایمیلها (SMIME). کمتر abuse میشه، اما اگر template vuln باشه، میتونی برای spoofing ایمیل استفاده کنی.
- Encrypting File System (EFS) (OID: 1.3.6.1.4.1.311.10.3.4):
برای رمزنگاری فایلها تو ویندوز. تو سناریوهای خاص، می تونی ازش برای دسترسی به فایل های encryptشده سوءاستفاده کنی.
- Any Purpose (OID: 2.5.29.37.0):
این یکی همهکارهست و هیچ محدودیتی نداره – دقیقاً مثل نداشتن EKU. vulnerable به حملاتی مثل ESC2، چون میتونی گواهی رو برای هر کاری استفاده کنی، از authentication گرفته تا signing.
- Certificate Request Agent (OID: 1.3.6.1.4.1.311.20.2.1):
این برای on-behalf-of enrollment استفاده میشه، که تو ESC3 کلیدیه. اگر template این EKU رو داشته باشه، attacker میتونه گواهی برای کاربر دیگه درخواست کنه و privilege بگیره.
نکتههای کلیدی برای abuse در red teaming
- No EKU = Any Purpose:
اگر گواهی EKU نداشته باشه، مثل Any Purpose عمل میکنه عالی برای ESC2، چون محدودیت نداره و میتونی باهاش هر کاری کنی.
#ADCS
@KavehOffSec
👍6👎1
مثال عملی abuse: اول با Certify.exe templateها رو enumerate کن (مثل find /clientauth). بعد، گواهی با EKU خاص درخواست بده. برای Pass-the-Certificate، از Rubeus استفاده کن:
Rubeus.exe asktgt /user:target /certificate:cert.pfx /password:pass
این کار TGT میگیره و میتونی escalate کنی.
- اگر نیاز به custom OID داشتی، تو لاب تست کن مثلاً برای شبیهسازی vulnها.
در کل، درک EKU و OIDها کمک میکنه ببینی کجاها AD CS ضعیفه. اگر administratorها templateها رو درست harden نکنن (مثل محدود کردن enrollment rights یا اضافه کردن manager approval)، راه برای حمله بازه. پیشنهادم اینه که تو محیط تست امتحان کنی تا بهتر دستت بیاد.
#ADCS
@KavehOffSec
Rubeus.exe asktgt /user:target /certificate:cert.pfx /password:pass
این کار TGT میگیره و میتونی escalate کنی.
- اگر نیاز به custom OID داشتی، تو لاب تست کن مثلاً برای شبیهسازی vulnها.
در کل، درک EKU و OIDها کمک میکنه ببینی کجاها AD CS ضعیفه. اگر administratorها templateها رو درست harden نکنن (مثل محدود کردن enrollment rights یا اضافه کردن manager approval)، راه برای حمله بازه. پیشنهادم اینه که تو محیط تست امتحان کنی تا بهتر دستت بیاد.
#ADCS
@KavehOffSec
❤9