تست نفوذ Domain Controller
مدیریت حوادث در فاز عملیات ITIL فرآیند مدیریت سرویس فنآوری اطلاعات است. هدف اول این فرآیند بازگرداندن عملیات به شکل سرویسدهی طبیعی و نرمال در کمترین زمان ممکن و به حداقل رسانیدن تأثیرات منفی آن ...
خلاصه تخصصی مقاله
مدیریت حوادث در فاز عملیات ITIL فرآیند مدیریت سرویس فنآوری اطلاعات است. هدف اول این فرآیند بازگرداندن عملیات به شکل سرویسدهی طبیعی و نرمال در کمترین زمان ممکن و به حداقل رسانیدن تأثیرات منفی آن ...
موضوعات اصلی: اکتیو دایرکتوری، میکند، استفاده، میکنیم، Attack، ابزار
ممکن است در سازمانی قرار بگیرید که تمامی دسترسیها بر بستر VDI باشد و این ارتباطات نیز توسط سرویس Domain Controller ویندوز دستخوش قانون گذاری شده باشد، برایتست نفوذدر این بستر (DC) ما از چهار طریق میتوانیم عمل کنیم
AD Attack #1: LDAP Reconnaissance (PowerSploit and PowerShell)
AD Attack #2: Local Admin Mapping (Bloodhound)
AD Attack #3: NTDS.dit Extraction (VSSAdmin, PowerSploit, and Hashcat)
AD Attack #4: Stealing Passwords from Memory (Mimikatz)
AD Attack #1اولین اقدامی که باید صورت بپذیرد این است که سطح دسترسی را افزایش دهیم. برای این منظور از ابزار PowerSploit استفاده میکنیم. PowerSploit بر اساس PowerShell عمل میکند که ماژولهای خوبی برای تست را فراهم میکند.
- Get-NetGPOGroupاین دستور تمامی GPO ها را در دامنه جمعآوری کرده و مالکیت User ها و محدودیتهایشان را نشان میدهد. با اجرای این دستور تمامی کاربرهایی که دسترسی محلی دارند را به صورت لیست میبینیم که این لیست به ما کمک میکند تا سطح دسترسی خودمان را بالاتر ببریم.
- Find-GPOLocationاین ماژول به ما اجازه میدهد به صورت تکی یک کاربر را جستجو کنیم و همچنین تمامی دسترسیهای او به GPO را مشخص کنیم.
- Invoke-FileFinderبا اجرای این دستور فایلهای مهم روی هاست برای جستجو در ناحیه مشخصی انجام میشود.
- Invoke-ShareFinderلیستی از فولدرهای غیر استاندارد تولید میکند که هیچ بررسی خاصی روی این فایلهای ذخیره شده انجام نخواهد گرفت.
- Find-LocalAdminAccessلیستی از اعضا گروه ادمین روی سیستم مشخصی را به ما میدهد.
- PowerUpSQLبرای حمله روی SQLServer استفاده میشود. دستور Get-SQLInstanceDomain تمامی اطلاعات حسابها با SPN رو در دامنه میدهد. همچنین محلی که SQLServer نصب شده را نشان میدهد. برای اینکه بتوانیم آسیبپذیریها، دسترسیها و پیکربندی را در تمامی دامنهها پیدا کنیم این دستور را با Invoke-SQLDumpInfo ترکیب میکنیم.
راه محافظتمانیتور کردن ترافیک LDAP و زیر نظر گرفتن کوئریهای غیر نرمال
AD Attack #2یکی از اهداف درتست نفوذاین است که شناسایی نشویم. برای همین ابزاری به نام BloodHound وجود دارد. این ابزار یک وب اپلیکیشین است که میتواند مسیر حمله را در محیط اکتیو دایرکتوری پیدا کرده و به صورت گرافیکی نمایش دهد. همچنین سریعترین مسیر برای حمله روی هر اکانتی در دامنه مشخصی را پیدا میکند.
این ابزار بر پایه PowerSploit است که Invoke-UserHunter مسیر حمله را درست میکند. اولین کارش ایجاد نقشهای است که دسترسی به کامپیوترها را نشان میدهد. همچنین روی کاربرهای محلی (Local Administrators group) تمرکز میکند. سپس active session و log را روی کاربران در دامنه جمعآوری میکند. که این اطلاعات شامل بلاکهای نقشه حمله است. الان ما میدانیم که چه کسی روی چه کامپیوتری دسترسی دارد.
برای جمع آوری اطلاعات نیاز است از PowerShell استفاده کنیم که اطلاعات خروجی در CSV نوشته میشود.
PS C:\Bloodhound\BloodHound-master\ BloodHound-master\PowerShell> Get-BloodHoundData
برای نمایش گرافیکی لازم است که اطلاعات درون وب اپلیکیشین وارد شود.
راه محافظتکنترل اینکه دسترسیها چطور داده شدهاند. همچنین مانیتورینگ لاگین و احرازهویت به صورت غیرنرمال
AD Attack #3فایل Ntds.dit اطلاعات اکتیودایرکتوری را در دیتابیس ذخیره میکند که شامل اطلاعاتی در مورد کاربران، گروهها و اعضای گروه است. همچنین پسوردهای هششده کاربران در این دامنه وجود دارد. برای استخراج پسورد هششده میتوان از ابزارهای آنلاین و آفلاین استفده کرد. برای مثال از ابزار Mimikatz برای حمله path-the-hash و Hashcat برای کرک پسورد استفاده کرد. البته سایتهایی هستند که تنها کافی است هش را به آنها بدهیم و اگر در دیتابیس آنها وجود داشت، مقدار آنرا برمیگرداند.
اولین قدم برای استخراج پسورد این است که فایل Ntds.dit را کپی کنیم. البته اگر بخواهیم به صورت معمولی کپی کنیم به دلیل محافظتهای اکتیودایرکتوری با خطا مواجه میشویم. برای این کار راههای زیر را داریم
- استفاده از Volume Shadow Copies بهوسیله دستور VSSAdmin
- استفاده از ابزار NTDSUtil
- استفاده از PowerSploit
- اگر Domain Controllers روی ماشین مجازی است از snapshots استفاده میکنیم.
برای استفاده از VSSAdminابتدا Volume Shadow Copy را ایجاد میکنیم.
سپس فایل Ntds.dit را خارج میکنیم.
فایل SYSTEM را از رجیستری یا Volume Shadow Copy کپی میکنیم که شامل کلید بوت برای decrypt فایل Ntds.dit است
و در آخر ردپای خود را پاک میکنیم.
استفاده از PowerSploit NinjaCopyماژول Invoke-NinjaCopy یک فایل را از NTFS-partitioned با خواندن از raw volume کپی میکند. این رویکرد یکی از راههایی است که بدون متوجه شدن هرگونه تغییری در مانیتورینگ به فایلهای قفل شده در اکتیودایرکتوری دسترسی پیدا می کنیم.
یکی دیگر از ابزارها برای استخراج هش از فایل Ntds.dit استفاده از ابزار DSInternals است که بر پایه PowerShell نوشته شده است.
راه محافظتبهترین راه این است که تعداد کاربرانی که به Domain Controllers لاگین میکنند محدود شود. همچنین مانیتورینگ برای هشدار میتواند مفید باشد.
AD Attack #4برای اجرا حمله pass-the-hash از ابزار Mimikatz استفاده میکنیم. این ابزار از راههای مختلفی برای جلوگیری از شناسایی استفاده میکند. برای مثال دستور Invoke-Mimikatz درون PowerSploit درون مموری کار خود را انجام میدهد.
PS C:\Mimikatz\mimikatz_trunk\x64> .\mimikatz.exe
راه محافظتویندوز چندین ویژگی جدید برای محافظت معرفی کرده است. یکی از بهترین راهها این است که implement logon restrictions را انجام دهیم که باعث میشود هش در جایی که بشود استخراج کرد، ذخیره نشود. Enabling LSA Protection, leveraging the Protected Users security group, and using Restricted Admin mode for Remote Desktop از جمله این راهها است.
در پایان یادآوری این نکته ضروری است که تمام مطالب این مقاله صرفا جنبه آموزشی داشته و در صورت بروز مشکل هیچ مسئولیتی بر عهده سایت منتشرکننده یا نویسنده نمیباشد.
برای ارزیابی پایداری، امنیت و نگهداری این زیرساخت، راهنمای پشتیبانی شبکه را نیز مطالعه کنید.