امیرحسین تنگسیری نژاد
مهندس و مدرس شبکه و امنیت سایبری و مدیر کل جزیره هک و امنیت اطلاعات توسینسو

حمله DCSync چیست؟ پیاده سازی, شناسایی و جلوگیری

یکی از حملات پر استفاده و رایج بر روی بستر Active Directory و Domain Controller حمله DCSync میباشد که به واسطه این حمله فرد مهاجم توانایی دریافت اطلاعات مربوط به یک نام کاربری بر روی DC را دارد که این اطلاعات شامل اطلاعات حساس مانند مقدار Hash رمز عبور می‌شود. حمله DCSync با تکیه بر روی دستورات پروتکل MS-DRSR حمله خود را پیاده سازی میکند.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

توجه داشته باشید که امروزه در سازمانها دیگر یک DC یا به اصطلاح یک Domain Controller وجود ندارد و از همین بابت در یک سازمان میتواند چندین Domain Controller وجود داشته باشد که اطلاعات این Domain Controller ها با یک دیگر همسان سازی شود و این DC ها به اصطلاح Replicate شده باشند

حمله DCSync چیست؟ پیاده سازی, شناسایی و جلوگیری

از همین جهت ما میتوانیم از طریق MS-DRSR یا همان Microsoft - Directory Replicate Service نقش یک DC را در شبکه برای دیگر DC ها بازی کنیم و از آنها بخواهیم که داده هایشان را همسان سازی کنند و داده های مورد نیازمان را از آنها استخراج کنیم

این همسان سازی موجب این میشود که ما یک نام کاربری که به اصطلاح کاربری باشد که Replicate شده باشد را اطلاعات حساس آن مانند مقدار Hash مربوط به Password آن را به دست بیاوریم و در حملاتی مانند شکستن پسورد و حملات پیشرفته تر مانند PassTheHash استفاده کنیم.

چه امتیازی برای کاربری که قصد داریم اطلاعات حساس آن را به دست بیاوریم نیاز است؟

توجه کنید که برای اینکه بتوانید نقش یک DC را بازی کنید و اطلاعات کاربر مورد نظر را به دست بیاورید باید همونطور که در بالا هم اشاره کردیم کاربر دسترسی های ممتاز Replicate را داشته باشد.

این حمله جزوه حملاتی است که معمولا در اواخر حمله و گرفتن دسترسی نمیتواند کاربری باشد تا زمانی که کاربر مورد نظر را پیدا نکرده ایم زیرا برای به دست اوردن این امتيازات و این کاربر با این سطح دسترسی نیاز به وقت داریم
به صورت کلی دسترسی های که یک کاربر باید داشته باشد به شکل زیر هستند:

  • Replicating Directory Changes
  • Replicating Directory Changes All
  • Replicating Directory Changes In Filtered Set

حمله DCSync چیست؟ پیاده سازی, شناسایی و جلوگیری

نحوه کار حمله DCSync به چه شکل میباشد؟

توجه داشته باشید که همانطور که عنوان کردیم‌ DCSync حمله ای است که بر پایه MS-DRSR عمل میکند و نقش یک DC را برای دیگر DC های Replicate شده بازی میکند در اینجا فرآيند اینکه فرد بخواهد درخواست Replication برای یک‌ کاربر که با دیگر DC ها اطلاعات اون Replicate و همسان سازی شده بکند باید سه مرحله زیر را طی کند:

مرحله اول - شناسایی DC ها و ارسال Replication Requests

مرحله دوم - درخواست Replication و همسازی اطلاعات مربوط به کاربری که سطح امتیاز Replicate را دارد ( سه امتیاز عنوان شده در بالا )

نکته: این مرحله از طریق تابع GetNCChange انجام میشود.

مرحله سوم - دریافت اطلاعات مربوط به مربوط به کاربری که سطح امتیاز Replicate را دارد از جمله اطلاعات مربوط به Hash رمز عبور این کاربر

حمله DCSync چیست؟ پیاده سازی, شناسایی و جلوگیری

چگونه حمله DCSync را پیاده سازی کنیم؟

توجه کنید که این حمله در دوره آموزشی SANS SEC560 | تست نفوذ به زیرساخت و شبکه‌های کامپیوتری پیاده سازی شده است اما در این دوره ما به پیاده سازی آن از طریق روش دیگری به واسطه Impact Framework پرداختیم و در این مقاله قصد داریم به واسطه Mimikatz که یکی از ابزارهای محبوب و پراستفاده در بحث فرآيند های پس از گرفتن دسترسی ( Post Exploitation ) میباشد.

پیاده سازی این حمله بسیار سادست فقط کافیست که Mimikatz را بر روی سیستم مقابل اجرا سازی کنید و از دستور زیر استفاده کنید.

lsadump::dcsync /domain:tosinso.local /user:Username

حمله DCSync چیست؟ پیاده سازی, شناسایی و جلوگیری

نکته: در دستور بالا باید در مقابل Domain نام دامنه را وارد کنید و در مقابل UserName نیز نام کاربری که قرار است اطلاعات آن از جمله Hash مربوط به رمز عبور آن را دريافت کنید را قرار بدهید.

چگونه حمله DCSync را شناسایی کنیم؟

توجه کنید که شناسایی و جلوگیری از این حمله کمی نسبتی سخت میباشد اما راه های زیادی برای این موضوع وجود دارد که آنهارا بررسی میکنیم

راهکار اول: نظارت (Monitoring) بر روی ترافیک های شبکه

یکی از راه ها جهت تشخیص این حمله نظارت و Monitoring بر روی ترافیک های شبکه DC میباشد که برای این موضوع ما باید در ابتدا لیستی از دامنه های مشخص داشته باشیم و تمرکز و‌ نگاهمان بر روی ترافیک های مربوط به DRSUAPI RPC به جهت عملیات استفاده از GetNCChange باشد و از این جهت با لیستی که از DC ها در دست داریم بررسی میکنیم که اگر یک درخواست جهت عملیات GetNCChange ارسال شده است که در لیست ما قرار ندارد آن Host و آدرس، از اینجا متوجه میشویم که حمله DCSync درحال رخ دادن است و این یک ترافیک مخرب میباشد.

حمله DCSync چیست؟ پیاده سازی, شناسایی و جلوگیری

راهکار دوم: استفاده از EventLog

یکی دیگر از راهکار های ما استفاده از بستر EventLog میباشد که به واسطه این موضوع ما باید بر روی EventID 4662 تمرکز داشته باشیم که زیرمجموعه Audit Directory Services Access میشود.

حمله DCSync چیست؟ پیاده سازی, شناسایی و جلوگیری

راهکار سوم: شناسایی از طریق Splunk

توجه کنید که برای شناسایی این حمله میتوانید از سرچ زیر استفاده کنید که متکی بر اطلاعات EventLog میباشد:

source = XmlWinEventLog : Security EventCode =4624
[ search source = XmlWinEventLog : Security EventCode =4662
Properties ="*1131 f6aa -9 c07 -11 d1 - f79f -00 c04fc2dcd2 *" OR
Properties ="*1131 f6ad -9 c07 -11 d1 - f79f -00 c04fc2dcd2 *" OR
Properties ="*1131 f6ab -9 c07 -11 d1 - f79f -00 c04fc2dcd2 *"
| fields SubjectLogonId
| rename SubjectLogonId AS TargetLogonId ] NOT
[ inputlookup domain_controllers . csv
| fields ip
| rename ip AS IpAddress ]

چگونه جلوی حمله DCSync را بگیریم؟

بحث Replication در DC یک امر بسیار عادی میباشد و نیازی به بررسی و توجه چندانی به این بخش جهت اینکه جلوگیری کنیم از ایت حمله نیست بلکه توجه ما باید بر روی سطح دسترسی و امتیازات Replicate برای کاربران باشد !

  • نکته اول: ممیزی بر روی سطح دسترسی کاربران حدالامکان برای کاربرانی که مجوز Replicate وجود دارد از ویژگی های امنیتی اضافی جهت تایید آنها استفاده شود.
  • نکته دوم: دسترسی سطح بالا و توانایی استفاده از آن سطح دسترسی در تمام نقاط سیستم و بخش های شبکه را به کاربران ندهید این موضوع خطر رخ دادن این‌ حمله را کاهش میدهد.

امیرحسین تنگسیری نژاد
امیرحسین تنگسیری نژاد

مهندس و مدرس شبکه و امنیت سایبری و مدیر کل جزیره هک و امنیت اطلاعات توسینسو

متخصص امنیت اطلاعات و کارشناس شکار تهدیدات بانک ملی ایران ، دارای مدارک مختلف از Splunk و AWS و Fortinet و Huawei حوزه اصلی فعالیت بنده در زمینه شبکه مباحث R&S و Service Provider می‌باشد و در زمینه امنیت نیز در موقعیت های مختلفی مانند PenTest و SoC فعالیت داشته و دارم. سابقه همکاری با بعضی سازمان های در قالب پروژه و... را داشته ام الان به عنوان تحلیلگر امنیت سایبری در زیرساخت بانک ملی مشغول به کار هستم. لینکداین: https://www.linkedin.com/in/amirhoseintangsirinezhad/

نظرات