
Скрипт PowerShell для автоматизации аудита домена
Этот PowerShell-скрипт предназначен для проведения всестороннего аудита Microsoft Active Directory с упором на выявление распространённых уязвимостей и слабых мест системы безопасности. Его выполнение позволяет точно определить критические области, требующие усиления, тем самым укрепляя вашу инфраструктуру против распространённых тактик, используемых при lateral movement или атаках на повышение привилегий, нацеленных на Active Directory.
_____ ____ _____ _ _ _
| _ | \ | _ |_ _ _| |_| |_
| | | | | | | | . | | _|
|__|__|____/ |__|__|___|___|_|_|
by phillips321
Если у вас есть какие-либо приличные однострочники PowerShell, которые можно было бы использовать в скрипте, дайте мне знать. Я стараюсь сохранять этот скрипт как единый файл без зависимостей от внешних инструментов (кроме ntdsutil и cmd.exe).
Запускается непосредственно на DC с правами DA. Если вы не доверяете коду, предлагаю сначала прочитать его — вы увидите, что он совершенно безвреден! (Но разве вы не должны так поступать с любым кодом, скачанным из интернета и запускаемым с правами DA?)
Можно использовать следующие флаги в любых комбинациях:
-installdeps — устанавливает дополнительные компоненты (DSInternals)-hostdetails — получает имя хоста и другую полезную информацию для аудита-domainaudit — получает информацию о домене, такую как функциональный уровень-trusts — получает информацию о любых доверительных отношениях доменов-accounts — выявляет проблемы с учётными записями (просроченные, отключённые и т.д.)-passwordpolicy — получает информацию о политике паролей-ntds — выполняет дамп файла NTDS.dit с помощью ntdsutil-oldboxes — выявляет устаревшие ОС (например, XP/2003), присоединённые к домену-gpo — создаёт дамп GPO в форматах XML и HTML для последующего анализа-ouperms — проверяет общие проблемы с разрешениями на уровне OU-laps — проверяет, установлен ли LAPS-authpolsilos — проверяет наличие политик аутентификации и изолированных контейнеров-insecurednszone — проверяет незащищённые DNS-зоны-recentchanges — проверяет недавно созданных пользователей и группы (за последние 30 дней)-adcs — проверяет уязвимости ADCS (ESC1,2,3,4 и 8)-acl — проверяет опасные разрешения ACL для пользователей, групп и компьютеров-spn — проверяет высокоценные учётные записи, допускающие Kerberoasting-asrep — проверяет учётные записи, допускающие ASREPRoasting-ldapsecurity — проверяет различные проблемы LDAP-exclude — позволяет исключить определённые проверки при использовании adaudit.ps1 -all -exclude ouperms,ntds,adcs-select — позволяет выбрать только определённые проверки при использовании adaudit.ps1 -all "gpo,ntds,acl"-all — запускает все проверки, например: AdAudit.ps1 -allТеперь скрипт полностью поддерживает как корневые домены леса, так и дочерние домены:
Скрипт реализует всестороннюю обработку ошибок: