
Легковесный инструмент для быстрого извлечения ценной информации из среды Active Directory как для атаки, так и для защиты.
ADCollector — это легковесный инструмент, который перечисляет среду Active Directory для выявления возможных векторов атак. Он даёт вам базовое понимание конфигурации/развёртывания среды в качестве отправной точки.
ADCollector — это не замена мощному PowerView, он просто автоматизирует перечисление для быстрого выявления интересной информации без лишних размышлений на раннем этапе разведки. Функции, реализованные в ADCollector, идеально подходят для перечисления в крупной корпоративной среде с множеством пользователей/компьютеров, не создавая большого трафика и не занимая много времени. Он фокусируется только на извлечении полезных атрибутов/свойств/ACL из наиболее ценных целей, вместо перечисления всех доступных атрибутов всех объектов пользователей/компьютеров в домене. Вам определённо понадобится PowerView для более детального перечисления позже. Вы можете использовать ADSI вместо PowerView для перечисления домена, если знаете, что хотите перечислить, см. https://dev-2null.github.io/Easy-Domain-Enumeration-with-ADSI/.
Цель разработки этого инструмента — помочь мне узнать больше о безопасности Active Directory с другой точки зрения, а также разобраться, что скрывается за кулисами функций PowerView.
Он использует пространство имён S.DS для получения информации о домене/лесе от контроллера домена (LDAP-сервера). Также используется S.DS.P для LDAP-поиска.
Этот инструмент ещё в разработке. Функции, которые будут реализованы, можно увидеть на моей странице проекта
Убедитесь, что у вас есть доступ к SYSVOL, если вы запускаете его с хоста, не входящего в домен. Возможно, потребуется выполнить следующую команду, если применяется политика жёсткого UNC:
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\NetworkProvider\HardenedPaths /v "\\*\SYSVOL" /d "RequireMutualAuthentication=0" /t REG_SZ
PS C:\> .\ADCollector.exe --help
_ ____ ____ _ _ _
/ \ | _ \ / ___|___ | | | ___ ___ _| |_ ___ _ __
/ _ \ | | | | | / _ \| | |/ _ \/ __|_ __/ _ \| '__|
/ ___ \| |_| | |__| (_) | | | __/ (__ | || (_) | |
/_/ \_\____/ \____\___/|_|_|\___|\___| |__/\___/|_|
v3.0.1 by dev2null
--Domain Domain to enumerate
--LDAPS (Default: false) LDAP over SSL/TLS
--DisableSigning (Default: false) Disable Kerberos Encryption (with -LDAPS flag)
--UserName Alternative UserName
--Password Alternative Credential
--DC Alternative Domain Controller (Hostname/IP) to connect to
--OU Perform the Search under a specific Organizational Unit
--LDAPONLY Only Enumearte Objects in LDAP
--ACLScan Perform ACL scan for an Identity
--ADCS (Default: false) Only Perform AD Certificate Service Check
--TEMPLATES (Default: false) Only Enumerate All Certificate Templates with their DACL
--SCHEMA (Default: false) Count Schema Attributes in the default naming context
--ADIDNS (Default: false) Only Collect ADIDNS Records
--NGAGP Only enumerate Nested Group Membership and Applied Group Policies on the target object
--DACL Enumerate DACL on the target object (with DistinguishedName)
--SessionEnum (Default: false) Enumerate session information on the target host
--UserEnum (Default: false) Enumerate user information on the target host
--LocalGMEnum (Default: false) Enumerate local group members on the target host
--Host (Default: Localhost) Hostname for Session/User/Groupmember Enumeration
--Group (Default: Administrators) Local Group Name for Local GroupMember Enumeration
--Debug (Default: false) Debug Mode
--help Display this help screen.
Example: .\ADCollector.exe
.\ADCollector.exe --LDAPs --DisableSigning
.\ADCollector.exe --OU IT
.\ADCollector.exe --OU OU=IT,DC=domain,DC=local
.\ADCollector.exe --ADCS
.\ADCollector.exe --TEMPLATES
.\ADCollector.exe --LDAPOnly
.\ADCollector.exe --SCHEMA
.\ADCollector.exe --ADIDNS
.\ADCollector.exe --NGAGP samaccountname
.\ADCollector.exe --DACL DC=domain,DC=net
.\ADCollector.exe --ACLScan user --OU OU=IT,DC=domain,DC=local
.\ADCollector.exe --SessionEnum --Host targetHost
.\ADCollector.exe --UserEnum --Host targetHost
.\ADCollector.exe --LocalGMEnum --Host targetHost --Group 'Remote Desktop Users'
.\ADCollector.exe --Domain domain.local --Username user --Password pass
.\ADCollector.exe --Domain domain.local --DC 10.10.10.1
1. Добавлено перечисление шаблонов сертификатов, схемы и учётных данных пользователей
2. Добавлено несколько флагов
1. Рефакторинг кода и исправление ошибок
2. Добавлено перечисление прав привилегий и DACL объектов
3. Добавлен режим отладки
4. Интерактивное меню объединено с командной строкой, удалены некоторые простые перечисления LDAP (используйте ADSI, см. [ADSI Enum](https://dev-2null.github.io/Easy-Domain-Enumeration-with-ADSI/))
1. Исправление ошибок с некоторыми улучшениями
2. Новая логика реализации для перечисления LAPS и ограниченных групп
3. Использование Task для обработки некоторых тяжёлых функций перечисления (намного быстрее для большого домена)
4. Удалено перечисление кэша GPP и учётных записей DCSync
1. Поиск в определённом OU
2. Детальный просмотр LAPS
3. Владельцы компьютеров
4. Ограниченные группы
5. Конфигурации ADCS
6. Сканирование ACL
7. Исправление ошибок: доступ к SYSVOL, вложенное членство в группах
8. Замена внешней зависимости readINF на собственную реализацию
9. Защищённые пользователи
1. Полная переработка (более расширяемый)
2. Добавлено интерактивное меню с выбором в командной строке
3. Использование прямого вызова API для перечисления доверительных отношений
4. Обновлено перечисление применённых GPO с фильтрацией безопасности и WMI-фильтрацией (WMIFilter нужно проверять вручную)
5. Добавлено перечисление DNS-записей LDAP
6. RunAs: запуск ADCollector от имени другого пользователя
7. Гибкое сканирование SPN, DNS-записей, вложенного членства в группах, перечисление ACL
8. Добавлены NetSessionEnum, NetLocalGroupGetMembers и NetWkstaUserEnum
1. Устранены некоторые ошибки и улучшены некоторые детали
2. Сканирование SPN теперь опционально
3. GPP cpassword в SYSVOL/Кэш
4. Интересные ACL на GPO; интересные описания объектов пользователей;
5. Необычные учётные записи DCSync; учётные записи Sensitive & not delegate
6. Действующие GPO для пользователя/компьютера
7. Ограниченные группы
8. Вложенное членство в группах
9. Доступ к просмотру паролей LAPS
1. Исправлены результаты сканирования SPN, членство привилегированных учётных записей в группах
2. Учётные записи с неистекающим паролем; учётные записи пользователей с установленным SPN;
3. Политика Kerberos
4. Перечисление интересных ACL для объекта домена, разрешение GUID
5. Информация о DC возвращена
1. Разделено на три класса.
2. Корректное закрытие LDAP-соединения.
3. Перечисления: AdminSDHolder, атрибуты домена (MAQ, minPwdLengthm maxPwdAge, lockOutThreshold, GP, связанные с объектом домена), учётные записи, не требующие предварительной аутентификации.
4. Базовая информация LDAP (supportedLDAPVersion, supportedSASLMechanisms, функциональность домена/леса/DC)
5. Сканирование SPN (SPN для MSSQL, Exchange, RDP и PS Remoting)
6. Перечисления ограниченной делегации (S4U2Self, S4U2Proxy, а также делегация на основе ресурсов)
7. RODC (группа, управляющая RODC)
1. Теперь используется пространство имён S.DS.P для выполнения операций поиска, что делает поиск быстрее и проще в реализации. (Также поддерживается постраничный поиск.)
2. Теперь поддерживается поиск в других доменах. (Парсер командной строки ещё не реализован.)
3. Логика кода перестроена, меньше кода, более понятно и связно.
Для получения дополнительной информации (текущий прогресс/список задач и т.д.) об этом инструменте посетите мою страницу проекта