Forwarded from Try Hack Box
Try Hack Box
📖 بخش رایگان کتاب kerberos برای پنتسترها و ردتیمر ها 🔖 این کتاب در گیت هاب در دسترس است : 💠 دانلود کتاب + امتیاز دادن 🔶️ توضیحات در پست بعدی . ➖➖➖➖➖➖➖➖ 🧩 #Kerberos 🆔 @TryHackBox
💠 یک بررسی جامع و دقیق درباره پروتکل Kerberos که به ویژه برای متخصصان تست نفوذ و ردتیم در محیطهای مبتنی بر Active Directory بسیار مفید است. این کتاب ابتدا به تاریخچه و تکامل Kerberos میپردازد، سپس به تشریح اصول و ساختار کلی پروتکل Kerberos نسخه ۵ میپردازد و تفاوتهای آن با نسخههای قبلی را توضیح میدهد.
🔶️ در ادامه، کتاب به مفاهیم کلیدی و اصطلاحات مهم در Kerberos مانند Realm، Principal، KDC (مرکز توزیع کلید) و انواع بلیطها (TGT و Service Ticket) میپردازد و نحوه عملکرد فرآیند احراز هویت را با تشبیههای ساده و نمودارهای گرافیکی توضیح میدهد. همچنین، مراحل مختلف تبادل پیامها در پروتکل Kerberos مطابق با RFC 4120 به تفصیل شرح داده شده است.
🔹 بخش مهمی از کتاب به پیادهسازی Kerberos در Active Directory اختصاص یافته است که تفاوتها و ویژگیهای خاص این پیادهسازی را بیان میکند، از جمله نقش کنترلکننده دامنه به عنوان KDC، نحوه ذخیرهسازی اطلاعات کاربران در فایل ntds.dit و مکانیزم پیشاحراز هویت (Pre-authentication) که در Active Directory به صورت پیشفرض فعال است.
🔶️ علاوه بر این، کتاب به جزئیات فنی مانند الگوریتمهای رمزنگاری مورد استفاده، نحوه تولید کلیدها، و ساختار پیامهای مختلف در پروتکل میپردازد. همچنین به کاربردهای عملی Kerberos در محیطهای مختلف و اهمیت آن در امنیت شبکه اشاره شده است.
⭕ برای تیمهای ردتیم (Red Team) و تست نفوذ، درک عمیق این پروتکل بسیار حیاتی است، زیرا بسیاری از حملات کلاسیک و جدید علیه Active Directory و سیستمهای مبتنی بر Kerberos طراحی شدهاند. شناخت دقیق نحوه عملکرد Kerberos به تیمهای امنیتی کمک میکند تا آسیبپذیریها را بهتر شناسایی و حملات پیچیدهتر را شبیهسازی کنند.
🧩 https://github.com/TryHackBox/Books/
🆔 @TryHackBox
🔶️ در ادامه، کتاب به مفاهیم کلیدی و اصطلاحات مهم در Kerberos مانند Realm، Principal، KDC (مرکز توزیع کلید) و انواع بلیطها (TGT و Service Ticket) میپردازد و نحوه عملکرد فرآیند احراز هویت را با تشبیههای ساده و نمودارهای گرافیکی توضیح میدهد. همچنین، مراحل مختلف تبادل پیامها در پروتکل Kerberos مطابق با RFC 4120 به تفصیل شرح داده شده است.
🔹 بخش مهمی از کتاب به پیادهسازی Kerberos در Active Directory اختصاص یافته است که تفاوتها و ویژگیهای خاص این پیادهسازی را بیان میکند، از جمله نقش کنترلکننده دامنه به عنوان KDC، نحوه ذخیرهسازی اطلاعات کاربران در فایل ntds.dit و مکانیزم پیشاحراز هویت (Pre-authentication) که در Active Directory به صورت پیشفرض فعال است.
🔶️ علاوه بر این، کتاب به جزئیات فنی مانند الگوریتمهای رمزنگاری مورد استفاده، نحوه تولید کلیدها، و ساختار پیامهای مختلف در پروتکل میپردازد. همچنین به کاربردهای عملی Kerberos در محیطهای مختلف و اهمیت آن در امنیت شبکه اشاره شده است.
⭕ برای تیمهای ردتیم (Red Team) و تست نفوذ، درک عمیق این پروتکل بسیار حیاتی است، زیرا بسیاری از حملات کلاسیک و جدید علیه Active Directory و سیستمهای مبتنی بر Kerberos طراحی شدهاند. شناخت دقیق نحوه عملکرد Kerberos به تیمهای امنیتی کمک میکند تا آسیبپذیریها را بهتر شناسایی و حملات پیچیدهتر را شبیهسازی کنند.
🧩 https://github.com/TryHackBox/Books/
🆔 @TryHackBox
GitHub
GitHub - TryHackBox/Books: This repository is related to specialized books published by the THB team.
This repository is related to specialized books published by the THB team. - TryHackBox/Books
❤4
THB_Kerberos in Penetration Testing and Red Teaming.pdf
4 MB
💠 یک بررسی جامع و دقیق درباره پروتکل Kerberos که به ویژه برای متخصصان تست نفوذ و ردتیم در محیطهای مبتنی بر Active Directory بسیار مفید است. این کتاب ابتدا به تاریخچه و تکامل Kerberos میپردازد، سپس به تشریح اصول و ساختار کلی پروتکل Kerberos نسخه ۵ میپردازد و تفاوتهای آن با نسخههای قبلی را توضیح میدهد.
🔹 بخش مهمی از کتاب به پیادهسازی Kerberos در Active Directory اختصاص یافته است که تفاوتها و ویژگیهای خاص این پیادهسازی را بیان میکند، از جمله نقش کنترلکننده دامنه به عنوان KDC، نحوه ذخیرهسازی اطلاعات کاربران در فایل ntds.dit و مکانیزم پیشاحراز هویت (Pre-authentication) که در Active Directory به صورت پیشفرض فعال است.
⭕ برای تیمهای ردتیم (Red Team) و تست نفوذ، درک عمیق این پروتکل بسیار حیاتی است، زیرا بسیاری از حملات کلاسیک و جدید علیه Active Directory و سیستمهای مبتنی بر Kerberos طراحی شدهاند. شناخت دقیق نحوه عملکرد Kerberos به تیمهای امنیتی کمک میکند تا آسیبپذیریها را بهتر شناسایی و حملات پیچیدهتر را شبیهسازی کنند.
Github
@KavehOffSec
🔹 بخش مهمی از کتاب به پیادهسازی Kerberos در Active Directory اختصاص یافته است که تفاوتها و ویژگیهای خاص این پیادهسازی را بیان میکند، از جمله نقش کنترلکننده دامنه به عنوان KDC، نحوه ذخیرهسازی اطلاعات کاربران در فایل ntds.dit و مکانیزم پیشاحراز هویت (Pre-authentication) که در Active Directory به صورت پیشفرض فعال است.
⭕ برای تیمهای ردتیم (Red Team) و تست نفوذ، درک عمیق این پروتکل بسیار حیاتی است، زیرا بسیاری از حملات کلاسیک و جدید علیه Active Directory و سیستمهای مبتنی بر Kerberos طراحی شدهاند. شناخت دقیق نحوه عملکرد Kerberos به تیمهای امنیتی کمک میکند تا آسیبپذیریها را بهتر شناسایی و حملات پیچیدهتر را شبیهسازی کنند.
Github
@KavehOffSec
🔥9👍1
THB_Kerberos in Penetration Testing and Red Teaming.pdf
دوستان خوشحال میشم اگر این کتاب هم واستون مفید هست توی گیت هاب حمایت کنید .
👍6
این مخزن حاوی اطلاعاتی درباره سیستمهای EDR است که میتواند در تمرینات رد تیم (Red Team Exercise) مفید باشه .
https://github.com/Mr-Un1k0d3r/EDRs/
@KavehOffSec
https://github.com/Mr-Un1k0d3r/EDRs/
@KavehOffSec
GitHub
GitHub - Mr-Un1k0d3r/EDRs
Contribute to Mr-Un1k0d3r/EDRs development by creating an account on GitHub.
👍5❤2
delegation
چه خطراتی داره یا چطوری میشه ازش سوءاستفاده کرد کمی توضیح بدمش به زبون ساده :
ببینید، delegation تو Kerberos یعنی اینکه یه سرویس (مثلاً سرویس A) بتونه با هویت کاربر، به سرویس دیگهای (مثلاً سرویس B) وصل بشه و کار انجام بده. این موضوع وقتی مهم میشه که سرویسها به همدیگه اعتماد دارن و باید به جای کاربر درخواست بفرستن.
حالا خطرش چیه؟ اگه هکری بتونه به یه سرویسی که delegation داره نفوذ کنه، میتونه با هویت هر کاربری که به اون سرویس وصل شده، به سرویسهای دیگه هم دسترسی پیدا کنه. یعنی عملاً میتونه خودش رو جای اون کاربر جا بزنه و به منابع حساس دسترسی بگیره! به همین خاطر باید delegation فقط برای سرویسهایی فعال باشه که واقعاً نیاز دارن و امنیتشون تضمین شدهست.
@KavehOffSec
چه خطراتی داره یا چطوری میشه ازش سوءاستفاده کرد کمی توضیح بدمش به زبون ساده :
ببینید، delegation تو Kerberos یعنی اینکه یه سرویس (مثلاً سرویس A) بتونه با هویت کاربر، به سرویس دیگهای (مثلاً سرویس B) وصل بشه و کار انجام بده. این موضوع وقتی مهم میشه که سرویسها به همدیگه اعتماد دارن و باید به جای کاربر درخواست بفرستن.
حالا خطرش چیه؟ اگه هکری بتونه به یه سرویسی که delegation داره نفوذ کنه، میتونه با هویت هر کاربری که به اون سرویس وصل شده، به سرویسهای دیگه هم دسترسی پیدا کنه. یعنی عملاً میتونه خودش رو جای اون کاربر جا بزنه و به منابع حساس دسترسی بگیره! به همین خاطر باید delegation فقط برای سرویسهایی فعال باشه که واقعاً نیاز دارن و امنیتشون تضمین شدهست.
@KavehOffSec
❤8🤔1
TGT چیه ؟
خیلی ساده بخوام بگم بهتون اینه که فرض کنیم میری یه هتل خیلی لوکس. وقتی وارد میشی، ابتدا به دفترش میرسی و کارت هویتت رو نشون میدی. اونها یه کارت ورود به هتل بهت میدن.
این کارت میگه: "این فرد شناسایی شده، میتونه تو هتل حرکت کنه."
حالا هر جا که میخوای (رستوران، استخر، اتاق)، به جای اینکه هر دفعه اسم و کدملیت رو بگی، فقط همون کارت ورودی رو نشون میدی.
در دنیای شبکه و Kerberos:
"دفتر هتل" = KDC (Key Distribution Center)
"کارت ورودی" = TGT (Ticket Granting Ticket)
"رستوران یا استخر" = سرویسهای مختلف در شبکه مثل فایل سرور، وب سرور و غیره
پس:
TGT یعنی یه بلیط اولیه که وقتی کاربر وارد سیستم میشه (با نام کاربری و رمز) از سرور KDC دریافت میکنه و باهاش میتونه بدون دوباره وارد کردن رمز، به سرویسهای مختلف دسترسی پیدا کنه.
چرا TGT مهمه؟
چون:
رمز عبور تو رو نگه نمیداره، ولی قدرتش رو داره!
یعنی اگه مهاجم بتونه این بلیط رو از حافظه سیستم استخراج کنه، میتونه به جای تو از حقوق و دسترسیات استفاده کنه بدون دونستن رمز عبورت!
طول عمر زیادی داره
مثلاً یه TGT میتونه ۱۰ ساعت یا بیشتر فعال بمونه. پس اگه مهاجم بتونه اون رو بدزده، میتونه چندین بار ازش استفاده کنه.
دروازه ورود به شبکههای داخلیه
وقتی یه مهاجم TGT یه حساب با دسترسی بالا (مثل مدیر دامنه) رو داشته باشه، میتونه تمام شبکه رو تحت کنترل بگیره .
مثال ساده:
تو یه روزی که سر کار میرسی، لاگین میکنی و سیستم متوجه میشه "آره، این آدم حق دسترسی داره"، و یه جواز حرکت بهش میده.این جواز تو سیستم تو ذخیره میشه.
اگه یه هکر بفهمه کجا نگه داشته شده و اونو برداره، الان او هست تو ! میتونه جای تو به همه چیز دسترسی داشته باشه.
چرا باید نگران باشیم؟
چون:
مهاجمان میتونن با ابزارهایی مثل Mimikatz یا Rubeus ، این TGTها رو از حافظه (lsass.exe) استخراج کنن.
این کار رو بدون دونستن رمز عبور انجام بدن.
حتی میتونن این اعتبارنامهها رو به سرورای دیگه منتقل کنن و بدون نیاز به حضور فیزیکی بودن تو محل ، دسترسی داشته باشن.
@KavehOffSec
خیلی ساده بخوام بگم بهتون اینه که فرض کنیم میری یه هتل خیلی لوکس. وقتی وارد میشی، ابتدا به دفترش میرسی و کارت هویتت رو نشون میدی. اونها یه کارت ورود به هتل بهت میدن.
این کارت میگه: "این فرد شناسایی شده، میتونه تو هتل حرکت کنه."
حالا هر جا که میخوای (رستوران، استخر، اتاق)، به جای اینکه هر دفعه اسم و کدملیت رو بگی، فقط همون کارت ورودی رو نشون میدی.
در دنیای شبکه و Kerberos:
"دفتر هتل" = KDC (Key Distribution Center)
"کارت ورودی" = TGT (Ticket Granting Ticket)
"رستوران یا استخر" = سرویسهای مختلف در شبکه مثل فایل سرور، وب سرور و غیره
پس:
TGT یعنی یه بلیط اولیه که وقتی کاربر وارد سیستم میشه (با نام کاربری و رمز) از سرور KDC دریافت میکنه و باهاش میتونه بدون دوباره وارد کردن رمز، به سرویسهای مختلف دسترسی پیدا کنه.
چرا TGT مهمه؟
چون:
رمز عبور تو رو نگه نمیداره، ولی قدرتش رو داره!
یعنی اگه مهاجم بتونه این بلیط رو از حافظه سیستم استخراج کنه، میتونه به جای تو از حقوق و دسترسیات استفاده کنه بدون دونستن رمز عبورت!
طول عمر زیادی داره
مثلاً یه TGT میتونه ۱۰ ساعت یا بیشتر فعال بمونه. پس اگه مهاجم بتونه اون رو بدزده، میتونه چندین بار ازش استفاده کنه.
دروازه ورود به شبکههای داخلیه
وقتی یه مهاجم TGT یه حساب با دسترسی بالا (مثل مدیر دامنه) رو داشته باشه، میتونه تمام شبکه رو تحت کنترل بگیره .
مثال ساده:
تو یه روزی که سر کار میرسی، لاگین میکنی و سیستم متوجه میشه "آره، این آدم حق دسترسی داره"، و یه جواز حرکت بهش میده.این جواز تو سیستم تو ذخیره میشه.
اگه یه هکر بفهمه کجا نگه داشته شده و اونو برداره، الان او هست تو ! میتونه جای تو به همه چیز دسترسی داشته باشه.
چرا باید نگران باشیم؟
چون:
مهاجمان میتونن با ابزارهایی مثل Mimikatz یا Rubeus ، این TGTها رو از حافظه (lsass.exe) استخراج کنن.
این کار رو بدون دونستن رمز عبور انجام بدن.
حتی میتونن این اعتبارنامهها رو به سرورای دیگه منتقل کنن و بدون نیاز به حضور فیزیکی بودن تو محل ، دسترسی داشته باشن.
@KavehOffSec
👏5👍3❤1
DPAPI (Data Protection API)
یک تکنولوژی است که توسط مایکروسافت برای حفاظت از دادهها در سیستمعاملهای ویندوز طراحی شده است. این تکنولوژی برای رمزنگاری اطلاعات حساس مانند پسوردها، کلیدهای رمزنگاری، و دیگر دادههای مهم استفاده میشود. DPAPI برای کاربران و برنامهها امکان حفاظت از دادههایشان را فراهم میکند و به صورت خودکار از طریق کلیدهای رمزنگاری خاص سیستم عامل، دادهها را حفاظت میکند.
حمله به DPAPI:
حمله به DPAPI معمولاً به منظور استخراج دادههای رمزنگاریشده از سیستم یا نفوذ به اطلاعات حساس انجام میشود. این نوع حملات میتواند بر روی سیستمهای آسیبپذیر یا زمانی که دسترسی به سیستم یا کلیدهای خاص موجود باشد، انجام گیرد.
روشهای رایج حمله به DPAPI:
1. دسترسی به فایلهای رمزنگاریشده:
* اگر یک مهاجم به فایلهایی که با DPAPI رمزنگاری شدهاند دسترسی داشته باشد، ممکن است قادر به استخراج دادههای رمزنگاریشده باشد. البته این دادهها تنها زمانی قابل رمزگشایی هستند که مهاجم به کلیدهای مناسب دسترسی داشته باشد.
2. دسترسی به کلیدهای DPAPI:
* برای رمزگشایی اطلاعاتی که توسط DPAPI رمزنگاری شدهاند، مهاجم باید به کلیدهای خاص سیستم دسترسی پیدا کند. در حالت عادی، این کلیدها باید به طور امن ذخیره شوند، ولی در صورتی که مهاجم بتواند به این کلیدها دسترسی پیدا کند، میتواند دادههای رمزنگاریشده را رمزگشایی کند.
3. حملات مبتنی بر حافظه (Memory Dumping):
* یکی از روشهای معمول حمله به DPAPI، dump کردن حافظه سیستم است. در این روش، مهاجم ممکن است بتواند از حافظه سیستم (که کلیدهای DPAPI در آن ذخیره میشوند) اطلاعاتی استخراج کند. در صورتی که مهاجم به حافظه فیزیکی یا حافظه سیستم دسترسی داشته باشد، ممکن است بتواند کلیدها یا دادههای رمزنگاریشده را شبیهسازی کند.
4. حملات به ذخیرهسازی و پروفایلهای سیستم:
* بسیاری از اطلاعاتی که با DPAPI رمزنگاری میشوند، در پروفایلهای کاربران ویندوز ذخیره میشوند. اگر مهاجم به پروفایلهای خاص یا فولدرهای مربوط به کاربران دسترسی پیدا کند، میتواند به اطلاعات رمزنگاریشده یا کلیدهای لازم برای رمزگشایی آنها دسترسی پیدا کند.
5. مهندسی اجتماعی (Social Engineering):
* در برخی از موارد، مهاجم ممکن است از تکنیکهای مهندسی اجتماعی برای فریب کاربران و به دست آوردن دسترسی به سیستمها یا حسابهای کاربری استفاده کند. در این صورت، مهاجم میتواند از دسترسی به دادههای رمزنگاریشده استفاده کند.
نتیجهگیری:
حمله به DPAPI معمولاً زمانی اتفاق میافتد که مهاجم به سیستم تارگت دسترسی پیدا کرده باشد یا از آسیبپذیریهای موجود در سیستم بهرهبرداری کند. برای کاهش خطرات مربوط به DPAPI، باید از روشهای امنیتی مختلف مانند رمزنگاری کامل دیسک، تایید هویت چندعاملی، و نظارت دقیق بر سیستم استفاده کرد.
@KavehOffSec
یک تکنولوژی است که توسط مایکروسافت برای حفاظت از دادهها در سیستمعاملهای ویندوز طراحی شده است. این تکنولوژی برای رمزنگاری اطلاعات حساس مانند پسوردها، کلیدهای رمزنگاری، و دیگر دادههای مهم استفاده میشود. DPAPI برای کاربران و برنامهها امکان حفاظت از دادههایشان را فراهم میکند و به صورت خودکار از طریق کلیدهای رمزنگاری خاص سیستم عامل، دادهها را حفاظت میکند.
حمله به DPAPI:
حمله به DPAPI معمولاً به منظور استخراج دادههای رمزنگاریشده از سیستم یا نفوذ به اطلاعات حساس انجام میشود. این نوع حملات میتواند بر روی سیستمهای آسیبپذیر یا زمانی که دسترسی به سیستم یا کلیدهای خاص موجود باشد، انجام گیرد.
روشهای رایج حمله به DPAPI:
1. دسترسی به فایلهای رمزنگاریشده:
* اگر یک مهاجم به فایلهایی که با DPAPI رمزنگاری شدهاند دسترسی داشته باشد، ممکن است قادر به استخراج دادههای رمزنگاریشده باشد. البته این دادهها تنها زمانی قابل رمزگشایی هستند که مهاجم به کلیدهای مناسب دسترسی داشته باشد.
2. دسترسی به کلیدهای DPAPI:
* برای رمزگشایی اطلاعاتی که توسط DPAPI رمزنگاری شدهاند، مهاجم باید به کلیدهای خاص سیستم دسترسی پیدا کند. در حالت عادی، این کلیدها باید به طور امن ذخیره شوند، ولی در صورتی که مهاجم بتواند به این کلیدها دسترسی پیدا کند، میتواند دادههای رمزنگاریشده را رمزگشایی کند.
3. حملات مبتنی بر حافظه (Memory Dumping):
* یکی از روشهای معمول حمله به DPAPI، dump کردن حافظه سیستم است. در این روش، مهاجم ممکن است بتواند از حافظه سیستم (که کلیدهای DPAPI در آن ذخیره میشوند) اطلاعاتی استخراج کند. در صورتی که مهاجم به حافظه فیزیکی یا حافظه سیستم دسترسی داشته باشد، ممکن است بتواند کلیدها یا دادههای رمزنگاریشده را شبیهسازی کند.
4. حملات به ذخیرهسازی و پروفایلهای سیستم:
* بسیاری از اطلاعاتی که با DPAPI رمزنگاری میشوند، در پروفایلهای کاربران ویندوز ذخیره میشوند. اگر مهاجم به پروفایلهای خاص یا فولدرهای مربوط به کاربران دسترسی پیدا کند، میتواند به اطلاعات رمزنگاریشده یا کلیدهای لازم برای رمزگشایی آنها دسترسی پیدا کند.
5. مهندسی اجتماعی (Social Engineering):
* در برخی از موارد، مهاجم ممکن است از تکنیکهای مهندسی اجتماعی برای فریب کاربران و به دست آوردن دسترسی به سیستمها یا حسابهای کاربری استفاده کند. در این صورت، مهاجم میتواند از دسترسی به دادههای رمزنگاریشده استفاده کند.
نتیجهگیری:
حمله به DPAPI معمولاً زمانی اتفاق میافتد که مهاجم به سیستم تارگت دسترسی پیدا کرده باشد یا از آسیبپذیریهای موجود در سیستم بهرهبرداری کند. برای کاهش خطرات مربوط به DPAPI، باید از روشهای امنیتی مختلف مانند رمزنگاری کامل دیسک، تایید هویت چندعاملی، و نظارت دقیق بر سیستم استفاده کرد.
@KavehOffSec
🔥4
Photo
خب، اولین مسئله:
در حین جمعآوری و تحلیل اطلاعات، متوجه شدیم روی ایستگاه کاری W-434 سرویس Web Client فعال هست. حساب کامپیوتری W-434 میتونه «رمز عبور» حساب سرویس GMSA$ رو بخونه. حساب سرویس GMSA$ عضو گروهیه که اجازه خوندن ویژگی LAPS برای ادمین لوکال روی سرور SERVERHTTP رو داره. خود حساب سرور هم برای Kerberos Unconstrained Delegation تنظیم شده.
شرط اضافه: سطح دامنه ۲۰۱۶ هست.
هدف: گرفتن دسترسی ادمین دامنه.
راهحل:
فعال بودن سرویس Web Client این امکان رو میده که تکنیک NTLM Relay رو از HTTP به LDAP اجرا کنیم و سطح دامنه ۲۰۱۶ هم اجازه میده تکنیک Shadow Credentials رو بهعنوان payload استفاده کنیم. با وادار کردن ایستگاه کاری W-434 به احراز هویت و relay کردن احراز هویت NTLM به LDAP، تکنیک Shadow Credentials رو اجرا میکنیم.
کلید خصوصی و عمومی بهدست اومده رو استفاده میکنیم و TGT بلیت برای شیء کامپیوتر W-434 میگیریم. حالا با دسترسی حساب کامپیوتر W-434، هش رمز عبور حساب سرویس GMSA$ رو میخونیم.
با اجرای تکنیک Overpass-the-Hash، میتونیم درخواستها رو بهجای حساب سرویس بفرستیم. چون این حساب عضو گروه READ_LAPS هست، مقدار ویژگی ms-Mcs-AdmPwd سرور SERVERHTTP (یعنی رمز ادمین محلی) رو میگیریم.
با استفاده از این اطلاعات وارد سرور SERVERHTTP میشیم. Rubeus رو در حالت مانیتور اجرا میکنیم و احراز هویت اجباری کنترلر دامنه رو راه میندازیم و سرور SERVERHTTP رو بهعنوان listener میذاریم. بعد از چند ثانیه، TGT بلیت کنترلر دامنه رو میگیریم.
حالا با تکنیک Pass-the-Ticket این بلیت رو ایمپورت میکنیم. در این حالت میتونیم تکنیک DCSync رو از طرف کنترلر دامنه اجرا کنیم و هش رمز ادمین دامنه رو بهدست بیاریم.
@KavehOffSec
در حین جمعآوری و تحلیل اطلاعات، متوجه شدیم روی ایستگاه کاری W-434 سرویس Web Client فعال هست. حساب کامپیوتری W-434 میتونه «رمز عبور» حساب سرویس GMSA$ رو بخونه. حساب سرویس GMSA$ عضو گروهیه که اجازه خوندن ویژگی LAPS برای ادمین لوکال روی سرور SERVERHTTP رو داره. خود حساب سرور هم برای Kerberos Unconstrained Delegation تنظیم شده.
شرط اضافه: سطح دامنه ۲۰۱۶ هست.
هدف: گرفتن دسترسی ادمین دامنه.
راهحل:
فعال بودن سرویس Web Client این امکان رو میده که تکنیک NTLM Relay رو از HTTP به LDAP اجرا کنیم و سطح دامنه ۲۰۱۶ هم اجازه میده تکنیک Shadow Credentials رو بهعنوان payload استفاده کنیم. با وادار کردن ایستگاه کاری W-434 به احراز هویت و relay کردن احراز هویت NTLM به LDAP، تکنیک Shadow Credentials رو اجرا میکنیم.
کلید خصوصی و عمومی بهدست اومده رو استفاده میکنیم و TGT بلیت برای شیء کامپیوتر W-434 میگیریم. حالا با دسترسی حساب کامپیوتر W-434، هش رمز عبور حساب سرویس GMSA$ رو میخونیم.
با اجرای تکنیک Overpass-the-Hash، میتونیم درخواستها رو بهجای حساب سرویس بفرستیم. چون این حساب عضو گروه READ_LAPS هست، مقدار ویژگی ms-Mcs-AdmPwd سرور SERVERHTTP (یعنی رمز ادمین محلی) رو میگیریم.
با استفاده از این اطلاعات وارد سرور SERVERHTTP میشیم. Rubeus رو در حالت مانیتور اجرا میکنیم و احراز هویت اجباری کنترلر دامنه رو راه میندازیم و سرور SERVERHTTP رو بهعنوان listener میذاریم. بعد از چند ثانیه، TGT بلیت کنترلر دامنه رو میگیریم.
حالا با تکنیک Pass-the-Ticket این بلیت رو ایمپورت میکنیم. در این حالت میتونیم تکنیک DCSync رو از طرف کنترلر دامنه اجرا کنیم و هش رمز ادمین دامنه رو بهدست بیاریم.
@KavehOffSec
❤6
LDAPWhoami
در برخی مواقع، لازم است بدانید که درخواستهای LDAP در چه زمینهای (context) اجرا میشوند. این موضوع بهویژه پس از اجرای تکنیکهای Pass-the-Ticket و OverPass-the-Hash اهمیت دارد. اگر یک سشن جدید با استفاده از دستور
در این حالت، میتوان از اسکریپت زیر برای بهدست آوردن اطلاعات مفید استفاده کرد:
این اسکریپت یک درخواست گسترشیافته LDAP با OID
در این پست، من روشهای جایگزین برای دستور
@KavehOffSec
در برخی مواقع، لازم است بدانید که درخواستهای LDAP در چه زمینهای (context) اجرا میشوند. این موضوع بهویژه پس از اجرای تکنیکهای Pass-the-Ticket و OverPass-the-Hash اهمیت دارد. اگر یک سشن جدید با استفاده از دستور
runas /netonly ایجاد شده باشد، دستور whoami کاربری را که این دستور را اجرا کرده است، نشان میدهد. میتوان با استفاده از دستور klist اطلاعاتی درباره بلیطهای Kerberos مشاهده کرد، اما اگر هیچ درخواست Kerberos وجود نداشته باشد، klist اطلاعاتی درباره بلیطها ارائه نخواهد داد.در این حالت، میتوان از اسکریپت زیر برای بهدست آوردن اطلاعات مفید استفاده کرد:
function Invoke-LDAPWhoami
{
Add-Type -AssemblyName System.DirectoryServices.Protocols -ErrorAction Stop
$connect = new-object System.DirectoryServices.Protocols.LdapConnection("domain.local")
$request = new-object System.DirectoryServices.Protocols.ExtendedRequest('1.3.6.1.4.1.4203.1.11.3')
$result = ([System.Text.Encoding]::ASCII.GetString($connect.SendRequest($request).ResponseValue)).split(":")[1]
Write-Host "Current context is: $result"
}
Invoke-LDAPWhoami
این اسکریپت یک درخواست گسترشیافته LDAP با OID
1.3.6.1.4.1.4203.1.11.3 را اجرا میکند که حساب کاربری را که درخواست را به نمایندگی از آن انجام شده است، برمیگرداند. پارامتر دامنه، در اینجا domain.local، میتواند از محیط $env:USERDNSDOMAIN بهدست آید اگر اسکریپت بر روی یک ماشین دامنه اجرا شود.در این پست، من روشهای جایگزین برای دستور
whoami را ذکر کردهام، بنابراین میتوان این روش را نیز به مجموعه اضافه کرد.@KavehOffSec
🔥3
Photo
مسئله شماره ۲
ادامه میدیم با موضوع مسائل و سناریوی دوم رو بررسی میکنیم. باز هم بحث خواندن LAPS هست، ولی این فقط یه تصادفه.
سناریو
در نتیجه تحلیل مسیرها در BloodHound مشخص شد که سرور SCCM دارای دسترسی ادمین لوکال روی SERVER است. این SERVER هم به نوبه خودش دارای دسترسی برای خواندن ویژگی LAPS برای سرور SERVERDB میباشد. روی سرور SERVERDB هم یک سشن از ادمین AD-ADMIN وجود دارد.
شرط اضافه: روی سرور SERVER امضای SMB غیرفعال است.
وظیفه:
تلاش برای به دست آوردن حساب ادمین AD-ADMIN.
راهحل:
اگر روی سرور SCCM هیچ محافظتی برای احراز هویت اجباری (RPC filter) فعال نباشد، ما میتوانیم تلاش کنیم تا احراز هویت اجباری انجام دهیم و احراز هویت NTLM را به سرور SERVER relay کنیم. به عنوان payload میتوان چند گزینه داشت:
⦁ اضافه کردن خودمان به گروه ادمینهای لوکال؛
⦁ خواندن دادهها از LSA و به دست آوردن اطلاعات ورود لوکال؛
⦁ اجرای یک درخواست LDAP برای خواندن ویژگی ms-Mcs-AdmPwd
گزینه سوم را بررسی میکنیم. اگرچه حساب SCCM عضو گروه ادمینهای لوکال است، اما ورود تعاملی برای کامپیوترها روی ماشین راه دور ممنوع است. بنابراین همه دستورات از طرف SYSTEM اجرا میشوند. اگر دستورات از SYSTEM روی ماشین دامنه اجرا شوند، هنگام اتصال به LDAP، از حساب کامپیوتر (در اینجا SERVER) استفاده میشود.
برای اجرای درخواست به LDAP از یک کوئری ADSI استفاده میکنیم:
این دستور را به base64 تبدیل میکنیم تا از شر کاراکترهای خاص راحت شویم. NTLM Relay را اجرا میکنیم، هدف را SERVER قرار میدهیم و به عنوان payload از
حالا احراز هویت اجباری سرور SCCM را اجرا میکنیم و نتایج را مشاهده میکنیم. اگر همه چیز درست پیش برود، پسورد LAPS را به دست میآوریم و میتوانیم وارد سرور SERVERDB شویم و با dump کردن بلیتهای Kerberos یا impersonate کردن توکنهای دسترسی، حساب AD-ADMIN را به دست آوریم.
اگر مشکلی پیش آمد، همیشه دو گزینه اول باقی میماند.
@KavehOffSec
ادامه میدیم با موضوع مسائل و سناریوی دوم رو بررسی میکنیم. باز هم بحث خواندن LAPS هست، ولی این فقط یه تصادفه.
سناریو
در نتیجه تحلیل مسیرها در BloodHound مشخص شد که سرور SCCM دارای دسترسی ادمین لوکال روی SERVER است. این SERVER هم به نوبه خودش دارای دسترسی برای خواندن ویژگی LAPS برای سرور SERVERDB میباشد. روی سرور SERVERDB هم یک سشن از ادمین AD-ADMIN وجود دارد.
شرط اضافه: روی سرور SERVER امضای SMB غیرفعال است.
وظیفه:
تلاش برای به دست آوردن حساب ادمین AD-ADMIN.
راهحل:
اگر روی سرور SCCM هیچ محافظتی برای احراز هویت اجباری (RPC filter) فعال نباشد، ما میتوانیم تلاش کنیم تا احراز هویت اجباری انجام دهیم و احراز هویت NTLM را به سرور SERVER relay کنیم. به عنوان payload میتوان چند گزینه داشت:
⦁ اضافه کردن خودمان به گروه ادمینهای لوکال؛
⦁ خواندن دادهها از LSA و به دست آوردن اطلاعات ورود لوکال؛
⦁ اجرای یک درخواست LDAP برای خواندن ویژگی ms-Mcs-AdmPwd
گزینه سوم را بررسی میکنیم. اگرچه حساب SCCM عضو گروه ادمینهای لوکال است، اما ورود تعاملی برای کامپیوترها روی ماشین راه دور ممنوع است. بنابراین همه دستورات از طرف SYSTEM اجرا میشوند. اگر دستورات از SYSTEM روی ماشین دامنه اجرا شوند، هنگام اتصال به LDAP، از حساب کامپیوتر (در اینجا SERVER) استفاده میشود.
برای اجرای درخواست به LDAP از یک کوئری ADSI استفاده میکنیم:
$object = [ADSI]"LDAP://CN=SERVERDB,CN=Computers,DC=domain,DC=local"
$name, $laps = $object.Properties["name","ms-Mcs-AdmPwd"]
Write-Output "$name has LAPS password $laps"
این دستور را به base64 تبدیل میکنیم تا از شر کاراکترهای خاص راحت شویم. NTLM Relay را اجرا میکنیم، هدف را SERVER قرار میدهیم و به عنوان payload از
-c "powershell -enc <base64>" استفاده میکنیم.حالا احراز هویت اجباری سرور SCCM را اجرا میکنیم و نتایج را مشاهده میکنیم. اگر همه چیز درست پیش برود، پسورد LAPS را به دست میآوریم و میتوانیم وارد سرور SERVERDB شویم و با dump کردن بلیتهای Kerberos یا impersonate کردن توکنهای دسترسی، حساب AD-ADMIN را به دست آوریم.
اگر مشکلی پیش آمد، همیشه دو گزینه اول باقی میماند.
@KavehOffSec
🔥3
دوستان در حال اماده کردن کتابی هستم تحت عنوان 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