ЭТО УСТАРЕЛО В ПОЛЬЗУ SHARPHOUND. ДАННЫЕ, СОБРАННЫЕ С ПОМОЩЬЮ ЭТОГО МЕТОДА, НЕ БУДУТ РАБОТАТЬ С BLOODHOUND 4.1+
SharpHound — переписанный на C# инжектор BloodHound
Получить SharpHound
Последняя сборка SharpHound всегда будет в репозитории BloodHound здесь
Инструкции по компиляции
SharpHound написан с использованием возможностей C# 9.0. Для простой компиляции этого проекта используйте Visual Studio 2019.
Если вы хотите компилировать в более старых версиях Visual Studio, вы можете установить пакет NuGet Microsoft.Net.Compilers.
Сборка проекта создаст исполняемый файл, а также сценарий PowerShell, который инкапсулирует исполняемый файл. Все зависимости встроены в двоичный файл.
Требования
SharpHound предназначен для .Net 4.5. Sharphound должен запускаться из контекста доменного пользователя, либо напрямую через вход в систему, либо другим способом, например RUNAS.
Дополнительная информация
Использование
Параметры сбора
- CollectionMethod — метод сбора. Этот параметр принимает список значений, разделённых запятыми. Имеет следующие возможные значения (По умолчанию: Default):
- Default — выполняет сбор членства в группах, сбор доверия доменов, сбор локальных групп, сбор сеансов, сбор ACL, сбор свойств объектов и сбор целей SPN
- Group — выполняет сбор членства в группах
- LocalAdmin — выполняет сбор локальных администраторов
- RDP — выполняет сбор пользователей удалённого рабочего стола
- DCOM — выполняет сбор пользователей распределённой COM
- PSRemote — выполняет сбор пользователей удалённого управления
- GPOLocalGroup — выполняет сбор локальных администраторов через объекты групповой политики
- Session — выполняет сбор сеансов
- ComputerOnly — выполняет сбор локальных администраторов, RDP, DCOM и сеансов
- LoggedOn — выполняет привилегированный сбор сеансов (требует права администратора на целевых системах)
- Trusts — выполняет перечисление доверий доменов
- ACL — выполняет сбор ACL
- Container — выполняет сбор контейнеров
- DcOnly — выполняет сбор только через LDAP. Включает Group, Trusts, ACL, ObjectProps, Container и GPOLocalGroup.
- ObjectProps — выполняет сбор свойств объектов, таких как LastLogon или PwdLastSet
- All — выполняет все методы сбора, кроме GPOLocalGroup
- Domain — выполнять поиск в определённом домене. Использует текущий домен, если не указан (По умолчанию: null)
- Stealth — выполняет скрытые методы сбора. Все скрытые опции однопоточные.
- ExcludeDomainControllers — исключает контроллеры домена из перечисления (избегает флагов Microsoft ATA :) )
- ComputerFile — указать файл для загрузки имён/IP-адресов компьютеров
- LdapFilter — фильтр LDAP для добавления к поиску
- OverrideUserName — переопределяет имя пользователя для перечисления сеансов (расширенное)
- RealDNSName — переопределяет DNS-имя для вызовов API
- CollectAllProperties — собирать все строковые свойства LDAP вместо подмножества
- WindowsOnly — ограничить сбор компьютеров системами с операционной системой, соответствующей *Windows*
Параметры цикла
- Loop — зациклить сбор компьютеров
- LoopDuration — как долго выполнять цикл
- LoopInterval — пауза между циклами
Параметры подключения
- DomainController — указать контроллер домена для подключения (По умолчанию: null)
- LdapPort — указать порт LDAP (По умолчанию: 0)
- SecureLdap — подключиться к AD через защищённый LDAP вместо обычного LDAP. По умолчанию подключится к порту 636.
- LdapUsername — имя пользователя для подключения к LDAP. Требуется также параметр LDAPPassword (По умолчанию: null)
- LdapPassword — пароль пользователя для подключения к LDAP. Требуется также параметр LDAPUser (По умолчанию: null)
- DisableKerberosSigning — отключает шифрование LDAP. Не рекомендуется.
Параметры производительности
- PortScanTimeout — задаёт таймаут для ping-запросов в миллисекундах (По умолчанию: 2000)
- SkipPortScan — указывает Sharphound пропустить ping-запросы для проверки доступности систем
- Throttle — добавляет задержку после каждого запроса к компьютеру. Значение в миллисекундах (По умолчанию: 0)
- Jitter — добавляет процентную вариацию к задержке. (По умолчанию: 0)
Параметры вывода
- OutputDirectory — папка для сохранения JSON-файлов (По умолчанию: .)
- OutputPrefix — префикс для добавления к JSON-файлам (По умолчанию: "")
- NoZip — не сжимать JSON-файлы в ZIP-архив. Оставляет JSON-файлы на диске. (По умолчанию: false)
- EncryptZip — добавить случайно сгенерированный пароль к ZIP-архиву.
- ZipFileName — указать имя ZIP-файла
- RandomizeFilenames — рандомизировать имена выходных файлов
- PrettyJson — выводит JSON с отступами на нескольких строках для улучшения читаемости. Компромисс — увеличенный размер файла.
- DumpComputerStatus — выводит коды ошибок при подключении к компьютерам
Параметры кэша
- CacheFileName — имя файла кэша Sharphound. (По умолчанию: .bin)
- NoSaveCache — не сохранять файл кэша на диск. Без этого флага .bin будет записан на диск
- InvalidateCache — аннулировать файл кэша и построить новый кэш
Прочие параметры
- StatusInterval — интервал отображения прогресса во время перечисления в миллисекундах (По умолчанию: 30000)