
Аудирует общие ресурсы SMB в Active Directory для инвентаризации, анализа и сообщения о чрезмерных привилегиях. Обнаруживает доступные системы, перечисляет ACL общих ресурсов, выявляет конфигурации с высоким риском и создает отчеты в формате HTML/CSV для приоритизации устранения.
PowerHuntShares — это инструмент PowerShell, предназначенный для помощи командам кибербезопасности и специалистам по пентесту в более точном выявлении, понимании, атаке и устранении общих сетевых папок SMB в средах Active Directory, которые они защищают. У каждого хакера есть история о злоупотреблении общими папками SMB, но это поверхность атаки, которую команды кибербезопасности всё ещё с трудом защищают. Данный проект направлен на создание открытого инструмента Proof-of-Concept для построения всеобъемлющей инвентаризации общих папок, использования статистики, диаграмм, графиков и языковых моделей для контекстуализации папок, обобщения связей, оценки рисков и приоритезации устранения уязвимостей.
Он поддерживает функции для:
Дополнительные возможности:
Ресурсы PowerHuntShares v2:
Ресурсы PowerHuntShares v1:
PowerHuntShares инвентаризирует ACL общих папок SMB, настроенные с «чрезмерными привилегиями», и выделяет ACL «высокого риска». Ниже описано, что под этим подразумевается в данном контексте.
Чрезмерные привилегии
Чрезмерные права на чтение и запись в общую папку определены как любой ACL сетевой папки, содержащий явную ACE (запись управления доступом) для групп «Everyone», «Authenticated Users», «BUILTIN\Users», «Domain Users» или «Domain Computers». Все они предоставляют пользователям домена доступ к затронутым общим папкам из-за проблем с наследованием прав. Обратите внимание, что существует параметр, позволяющий операторам добавлять собственные целевые группы.
Ниже приведена дополнительная информация:
Пожалуйста, обратите внимание: разрешения на общую папку могут быть переопределены разрешениями NTFS. Также имейте в виду, что тестирование исключало имена общих папок, содержащие следующие ключевые слова:
print$, prnproc$, printer, netlogon, and sysvol
Общие папки высокого риска
В контексте этого отчёта общие папки высокого риска определены как папки, предоставляющие несанкционированный удалённый доступ к системе или приложению.
По умолчанию к ним относятся папки
wwwroot, inetpub, c$ и admin$Однако могут существовать и другие точки уязвимости, которые не указаны дополнительно.
Ниже приведён список команд, которые можно использовать для загрузки PowerHuntShares в текущий сеанс PowerShell. Учтите, что одну из них необходимо выполнять каждый раз при запуске PowerShell. Это не постоянно.
# Обход ограничений политики выполнения
Set-ExecutionPolicy -Scope Process Bypass
# Импорт модуля, находящегося в текущем каталоге
Import-Module .\PowerHuntShares.psm1
или
# Понижение уровня SSL для поддержки подключения к github
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
[Net.ServicePointManager]::SecurityProtocol =[Net.SecurityProtocolType]::Tls12
# Загрузка и загрузка PowerHuntShares.psm1 в память
IEX(New-Object System.Net.WebClient).DownloadString("https://raw.githubusercontent.com/NetSPI/PowerHuntShares/main/PowerHuntShares.psm1")
Важное примечание: все команды следует выполнять от имени непривилегированного пользователя домена.
.ПРИМЕР 1: Запуск с компьютера домена. По умолчанию выполняется обнаружение компьютеров Active Directory.
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test
.ПРИМЕР 2: Запуск с компьютера домена с альтернативными учётными данными домена. По умолчанию выполняется обнаружение компьютеров Active Directory.
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test -Credential domain\user
.ПРИМЕР 3: Запуск с компьютера домена как текущий пользователь. Целевые хосты указаны в файле. По одному на строку.
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test -HostFile c:\temp\hosts.txt
.ПРИМЕР 4: Запуск с компьютера не из домена с учётными данными. По умолчанию выполняется обнаружение компьютеров Active Directory.
C:\temp\test> runas /netonly /user:domain\user PowerShell.exe
PS C:\temp\test> Import-Module PowerHuntShares.psm1
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -RunSpaceTimeout 10 -OutputDirectory c:\folder\ -DomainController 10.1.1.1 -Credential domain\user
=============================================================== PowerHuntShares =============================================================== Эта функция автоматизирует следующие задачи: o Определение текущего домена компьютера o Перечисление компьютеров домена o Фильтрация компьютеров, отвечающих на ping-запросы o Фильтрация компьютеров, у которых открыт и доступен TCP 445 o Перечисление общих папок SMB o Перечисление разрешений общих папок SMB o Выявление папок с потенциально чрезмерными привилегиями o Выявление папок, предоставляющих доступ на чтение и запись o Выявление папок высокого риска o Выявление общих владельцев, имён и списков каталогов o Генерация временных шкал создания, последней записи и последнего доступа o Генерация отчёта в формате HTML и подробных файлов CSV