ЭТОТ ПРОЕКТ УСТАРЕЛ В ПОЛЬЗУ SHARPHOUND3. ДАННЫЕ, СОБРАННЫЕ С ПОМОЩЬЮ ЭТОГО МЕТОДА, НЕ БУДУТ РАБОТАТЬ С BLOODHOUND 3.0
SharpHound — C#-версия ингестора BloodHound
Получение SharpHound
Последняя сборка SharpHound всегда находится в репозитории BloodHound здесь
Инструкции по компиляции
Sharphound написан с использованием возможностей C# 7.0. Для простой компиляции этого проекта используйте Visual Studio 2017.
Если вы хотите компилировать в предыдущих версиях Visual Studio, вы можете установить nuget-пакет Microsoft.Net.Compilers.
При сборке проекта будет создан исполняемый файл, а также PowerShell-скрипт, инкапсулирующий этот исполняемый файл. Все зависимости включаются в бинарный файл.
Требования
Sharphound предназначен для работы с .Net 3.5. Sharphound должен запускаться из контекста доменного пользователя — либо напрямую через вход в систему, либо другим способом, например через RUNAS.
Дополнительная информация
Использование
Параметры перечисления
- CollectionMethod — метод сбора данных для использования. Этот параметр принимает разделённый запятыми список значений. Возможные значения (по умолчанию: Default):
- Default — выполняет сбор членства в группах, сбор доверий доменов, сбор локальных администраторов и сбор сеансов
- Group — выполняет сбор членства в группах
- LocalAdmin — выполняет сбор локальных администраторов
- RDP — выполняет сбор пользователей удалённого рабочего стола
- DCOM — выполняет сбор пользователей Distributed COM
- GPOLocalGroup — выполняет сбор локальных администраторов с использованием объектов групповой политики
- Session — выполняет сбор сеансов
- ComputerOnly — выполняет сбор локальных администраторов, RDP, DCOM и сеансов
- LoggedOn — выполняет сбор привилегированных сеансов (требует прав администратора на целевых системах)
- Trusts — выполняет перечисление доверий домена
- ACL — выполняет сбор ACL
- Container — выполняет сбор контейнеров
- DcOnly — выполняет сбор только через LDAP. Включает Group, Trusts, ACL, ObjectProps, Container и GPOLocalGroup.
- All — выполняет все методы сбора, кроме GPOLocalGroup и LoggedOn
- SearchForest — выполняет поиск по всем доменам леса, а не только по вашему текущему
- Domain — выполняет поиск в определённом домене. Использует ваш текущий домен, если значение null (по умолчанию: null)
- Stealth — выполняет скрытые методы сбора. Все скрытые параметры работают в одном потоке.
- SkipGCDeconfliction — пропускает разрешение конфликтов глобального каталога во время перечисления сеансов. Это может ускорить перечисление, но может привести к неточностям в данных.
- ExcludeDc — исключает контроллеры домена из перечисления (позволяет избежать срабатывания Microsoft ATA :) )
- ComputerFile — указывает файл, из которого загружаются имена компьютеров/IP-адреса
- OU — указывает, какой OU перечислять
Параметры подключения
- DomainController — указывает, к какому контроллеру домена подключаться (по умолчанию: null)
- LdapPort — указывает порт, на котором работает LDAP (по умолчанию: 0)
- SecureLdap — подключается к AD через защищённый LDAP вместо обычного LDAP. По умолчанию будет подключаться к порту 636.
- IgnoreLdapCert — игнорирует SSL-сертификат LDAP. Используйте, например, если есть самоподписанный сертификат
- LDAPUser — имя пользователя для подключения к LDAP. Требует также параметр LDAPPassword (по умолчанию: null)
- LDAPPass — пароль пользователя для подключения к LDAP. Требует также параметр LDAPUser (по умолчанию: null)
- DisableKerbSigning — отключает шифрование LDAP. Не рекомендуется.
Параметры производительности
- Threads — указывает количество потоков для использования (по умолчанию: 10)
- PingTimeout — указывает тайм-аут для ping-запросов в миллисекундах (по умолчанию: 250)
- SkipPing — указывает Sharphound пропускать ping-запросы для проверки доступности систем
- LoopDelay — количество секунд между циклами сбора сеансов (по умолчанию: 300)
- MaxLoopTime — время, в течение которого продолжать циклический сбор сеансов. Формат: 0d0h0m0s. При значении null цикл будет длиться два часа. (по умолчанию: 2h)
- Throttle — добавляет задержку после каждого запроса к компьютеру. Значение указывается в миллисекундах (по умолчанию: 0)
- Jitter — добавляет процентное отклонение (джиттер) к задержке (по умолчанию: 0)
Параметры вывода
- JSONFolder — папка для хранения JSON-файлов (по умолчанию: .)
- JSONPrefix — префикс, добавляемый к вашим JSON-файлам (по умолчанию: "")
- NoZip — не сжимать JSON-файлы в zip-файл. Оставляет JSON-файлы на диске (по умолчанию: false)
- EncryptZip — добавить к zip-файлу случайно сгенерированный пароль.
- ZipFileName — указывает имя zip-файла
- RandomFilenames — рандомизирует имена выходных файлов
- PrettyJson — выводит JSON с отступами на нескольких строках для улучшения читаемости. Обратная сторона — увеличенный размер файла.
Параметры кэша
- CacheFile — имя файла кэша Sharphound (по умолчанию: .bin)
- NoSaveCache — не сохранять файл кэша на диск. Без этого флага на диск будет записан файл .bin
- Invalidate — аннулировать файл кэша и построить новый кэш
Прочие параметры
- StatusInterval — интервал отображения прогресса во время перечисления в миллисекундах (по умолчанию: 30000)
- Verbose — включает подробный вывод