
.NET-инструмент для перечисления Active Directory, вдохновлённый PowerView. Перечисляет домены, пользователей, компьютеры, группы, общие ресурсы и сеансы. Поддерживает LDAP-запросы, проверки на повышение привилегий и обнаружение бокового перемещения через WMI и планировщик задач.
Enumerate Domain Data (EDD) предназначен для работы, аналогичной PowerView, но на .NET. PowerView — это, по сути, идеальный инструмент для перебора доменов, и нам нужна была его реализация на .NET, над которой мы могли бы работать самостоятельно. Этот инструмент был собран путём изучения реализаций различных функций из множества существующих проектов и их объединения в EDD.
Для использования EDD достаточно вызвать приложение, указать нужную функцию (список ниже) и, при необходимости, дополнительные/обязательные параметры.
Аргументы:
-f, --function=VALUE функция, которую вы хотите использовать
-o, --output=VALUE путь к файлу для сохранения результатов
-c, --computername=VALUE целевой компьютер
-n, --canonicalname=VALUE каноническое имя пользователя домена
-d, --domainname=VALUE целевой домен
-g, --groupname=VALUE целевая группа домена
-p, --processname=VALUE целевой процесс
-fd, --filedata=PATH путь к файлу с данными, связанными с вызываемой функцией
-w, --password=VALUE пароль для аутентификации или устанавливаемое значение
-u, --username=VALUE целевая учётная запись домена
-t, --threads=VALUE количество потоков выполнения (по умолчанию: 5)
-q, --query=VALUE произвольный LDAP-фильтр для поиска
-a, --adright=VALUE возвращаемые права Active Directory, разделённые запятыми
-s, --search=VALUE поисковый запрос (термины) для
FindInterestingDomainShareFile, разделённые
запятой (,) допускаются маски
--sharepath=VALUE конкретный общий ресурс для поиска интересных файлов
-i, --info вывод информации о конкретной функции
-l, --listfunction вывод всех доступных функций
-h, --help показать это сообщение и завершить работу
Следующие функции можно использовать с флагом -f для указания необходимых данных/действия.
getdomainsid - возвращает SID домена (по умолчанию — текущий домен, если домен не указан)
getforest - возвращает имя текущего леса
getforestdomains - возвращает имена всех доменов в текущем лесу
getsiddata - преобразует SID в соответствующее имя группы или домена (используйте параметр -u для указания SID)
getadcsservers - получает список серверов, работающих с AD CS в текущем домене
getdomaincomputers - получает список всех компьютеров в домене
getdomaincontrollers - получает список всех контроллеров домена
getdomainshares - получает список всех общих ресурсов домена
getreadabledomainshares - получает список всех доступных для чтения общих ресурсов домена
changeaccountpassword - изменяет пароль целевой учётной записи
customldapquery - устанавливает произвольный LDAP-фильтр для поиска объектов
getuserdacl - возвращает DACL указанного объекта домена
getnetlocalgroupmember - возвращает список всех пользователей локальной группы на удалённой системе
getdomaingroupmember - возвращает список всех пользователей группы домена
getdomainuser - получает информацию о конкретном пользователе (имя, описание, SID, группы домена)
getdomaindescriptions - возвращает объекты домена с нестандартными описаниями учётных записей
getnetsession - возвращает список учётных записей с активными сеансами на целевом компьютере
getnetloggedon - возвращает список учётных записей, выполнивших вход на целевой компьютер
getuserswithspns - возвращает список всех учётных записей домена, связанных с SPN
getdomaingroupsid - получает SID группы
getdomainsid - получает SID домена
getsiddata - возвращает имя пользователя по SID
joingroupbysid - добавляет учётную запись в группу по SID группы
joingroupbyname - добавляет учётную запись в группу по имени группы
findadminsch - использует планировщик задач для проверки прав администратора в домене
findadminwmi - использует WMI для поиска прав администратора в домене
finddomainprocess - ищет определённый процесс во всех системах домена (требуются права администратора на удалённых системах)
finddomainuser - ищет указанного пользователя или группу в домене и пытается найти активные сеансы (по умолчанию ищет администраторов домена)
findemptysystem - ищет в домене системы, в которые не выполнен вход ни одного пользователя
findinterestingdomainsharefile - ищет в домене все доступные общие ресурсы. После нахождения анализирует имена файлов на наличие «интересных» строк
findwritableshares - перечисляет все общие ресурсы домена и проверяет, может ли текущая учётная запись создать текстовый файл в корне общего ресурса и на один уровень вложенности
PowerView - https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1
CSharp-Tools - https://github.com/RcoIl/CSharp-Tools
StackOverflow - Различные вопросы (если это не указано как ссылка, мы знаем, что забыли её :))
SharpView - https://github.com/tevora-threat/SharpView