
Аудирует общие ресурсы 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 Примечание: В больших средах выполнение может занять часы. --------------------------------------------------------------- ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| --------------------------------------------------------------- ОБНАРУЖЕНИЕ ПАПОК --------------------------------------------------------------- [*][03/01/2021 09:35] Начало сканирования [*][03/01/2021 09:35] Каталог вывода: c:\temp\smbshares\SmbShareHunt-03012021093504 [*][03/01/2021 09:35] Успешное подключение к контроллеру домена: dc1.demo.local [*][03/01/2021 09:35] Выполнение LDAP-запроса для компьютеров, связанных с доменом demo.local [*][03/01/2021 09:35] - Найдено 245 компьютеров [*][03/01/2021 09:35] Пингование 245 компьютеров [*][03/01/2021 09:35] - 55 компьютеров ответили на ping-запросы. [*][03/01/2021 09:35] Проверка открытости TCP-порта 445 на 55 компьютерах [*][03/01/2021 09:36] - 49 компьютеров имеют открытый TCP-порт 445. [*][03/01/2021 09:36] Получение списка общих папок SMB с 49 компьютеров [*][03/01/2021 09:36] - Найдено 217 общих папок SMB. [*][03/01/2021 09:36] Получение разрешений от 217 общих папок SMB [*][03/01/2021 09:37] - Перечислено 374 разрешений общих папок. [*][03/01/2021 09:37] Получение списков каталогов с 33 общих папок SMB [*][03/01/2021 09:37] - Нацеливание на до 3 уровней вложенных каталогов [*][03/01/2021 09:37] - Перечислено 563 файла и папки. [*][03/01/2021 09:37] Выявление потенциально чрезмерных разрешений общих папок [*][03/01/2021 09:37] - Найдено 33 потенциально чрезмерных привилегий на 12 системах. [*][03/01/2021 09:37] Сканирование завершено --------------------------------------------------------------- АНАЛИЗ ПАПОК --------------------------------------------------------------- [*][03/01/2021 09:37] Начало анализа [*][03/01/2021 09:37] - 14 общих папок доступны для чтения на 12 системах. [*][03/01/2021 09:37] - 1 общая папка доступна для записи на 1 системе. [*][03/01/2021 09:37] - 46 общих папок считаются нестандартными на 32 системах. [*][03/01/2021 09:37] - 0 общих папок считаются высокорискованными на 0 системах. [*][03/01/2021 09:37] - Определены 5 основных владельцев чрезмерных папок. [*][03/01/2021 09:37] - Определены 5 основных групп папок. [*][03/01/2021 09:37] - Определены 5 основных имён папок. [*][03/01/2021 09:37] - Определены папки, созданные за последние 90 дней. [*][03/01/2021 09:37] - Определены папки, к которым обращались за последние 90 дней. [*][03/01/2021 09:37] - Определены папки, изменённые за последние 90 дней. [*][03/01/2021 09:37] Анализ завершён --------------------------------------------------------------- СВОДКА ОТЧЁТА ПО ПАПКАМ --------------------------------------------------------------- [*][03/01/2021 09:37] Домен: demo.local [*][03/01/2021 09:37] Время начала: 03/01/2021 09:35:04 [*][03/01/2021 09:37] Время окончания: 03/01/2021 09:37:27 [*][03/01/2021 09:37] Время выполнения: 00:02:23.2759086 [*][03/01/2021 09:37] [*][03/01/2021 09:37] СВОДКА ПО КОМПЬЮТЕРАМ [*][03/01/2021 09:37] - Найдено 245 компьютеров домена. [*][03/01/2021 09:37] - 55 (22.45%) компьютеров домена ответили на ping. [*][03/01/2021 09:37] - 49 (20.00%) компьютеров домена имели доступный TCP-порт 445. [*][03/01/2021 09:37] - 32 (13.06%) компьютера домена имели нестандартные общие папки. [*][03/01/2021 09:37] - 12 (4.90%) компьютеров домена имели папки с потенциально чрезмерными привилегиями. [*][03/01/2021 09:37] - 12 (4.90%) компьютеров домена имели папки, предоставляющие доступ на ЧТЕНИЕ. [*][03/01/2021 09:37] - 1 (0.41%) компьютер домена имел папки, предоставляющие доступ на ЗАПИСЬ. [*][03/01/2021 09:37] - 0 (0.00%) компьютеров домена имели папки ВЫСОКОГО РИСКА. [*][03/01/2021 09:37] [*][03/01/2021 09:37] СВОДКА ПО ОБЩИМ ПАПКАМ [*][03/01/2021 09:37] - Найдено 217 общих папок. Ожидается минимум 98 папок [*][03/01/2021 09:37] потому что 49 систем имели открытые порты, и обычно есть две стандартные папки. [*][03/01/2021 09:37] - 46 (21.20%) папок на 32 системах были нестандартными. [*][03/01/2021 09:37] - 14 (6.45%) папок на 12 системах имеют 33 потенциально чрезмерных ACL. [*][03/01/2021 09:37] - 14 (6.45%) папок на 12 системах предоставляют доступ на ЧТЕНИЕ. [*][03/01/2021 09:37] - 1 (0.46%) папка на 1 системе предоставляет доступ на ЗАПИСЬ. [*][03/01/2021 09:37] - 0 (0.00%) папок на 0 системах считаются ВЫСОКОГО РИСКА. [*][03/01/2021 09:37] [*][03/01/2021 09:37] СВОДКА ПО ACL ОБЩИХ ПАПОК [*][03/01/2021 09:37] - Найдено 374 ACL. [*][03/01/2021 09:37] - 374 (100.00%) ACL были связаны с нестандартными папками. [*][03/01/2021 09:37] - 33 (8.82%) ACL оказались потенциально чрезмерными. [*][03/01/2021 09:37] - 32 (8.56%) ACL предоставляли доступ на ЧТЕНИЕ. [*][03/01/2021 09:37] - 1 (0.27%) ACL предоставлял доступ на ЗАПИСЬ. [*][03/01/2021 09:37] - 0 (0.00%) ACL связаны с именами папок ВЫСОКОГО РИСКА. [*][03/01/2021 09:37] [*][03/01/2021 09:37] - 5 наиболее распространённых имён общих папок: [*][03/01/2021 09:37] - 9 из 14 (64.29%) обнаруженных папок связаны с 5 основными именами. [*][03/01/2021 09:37] - 4 backup [*][03/01/2021 09:37] - 2 ssms [*][03/01/2021 09:37] - 1 test2 [*][03/01/2021 09:37] - 1 test1 [*][03/01/2021 09:37] - 1 users [*] -----------------------------------------------




Автор
Scott Sutherland (@_nullbind)
Использованный открытый код
Эти люди написали открытый код, который использовался в этом проекте. Большое спасибо им и их работе!
| Имя | Сайт |
|---|---|
| Will Schroeder (@harmj0y) | https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1 |
Лицензия
BSD 3-Clause
Ожидающие исправления/ошибки
Ожидающие функции
Ниже представлено визуальное описание того, как работает PowerHuntShares, какие данные он извлекает и как представляет практические результаты.
Предоставляет общий вид обнаруженных общих папок и связанных рисков.

Автоматически созданные отчёты для удобного анализа и офлайн-просмотра.

Детальное отображение имён общих папок и их свойств.

Предлагаемые шаги по устранению выявленных рисков.

Визуализация обнаруженных проблем во времени.

Сравнение обнаруженных общих папок и разрешений на разных системах.

Группировка связанных папок и общих ресурсов для лучшего контекста.

Показывает раскрытие активов на основе обнаруженных отпечатков.

Визуальное представление обнаруженных общих папок и связей.

Подсвечивает конфиденциальную информацию и секреты, обнаруженные во время сканирования.

Перечисляет потенциально интересные или ценные файлы, найденные в общих папках.

Подсвечивает области, где могут быть раскрыты конфиденциальные данные.

Комплексные представления уровня риска с детальным анализом.

| Warren F (@pscookiemonster) | https://github.com/RamblingCookieMonster/Invoke-Parallel |
| Luben Kirov | http://www.gi-architects.co.uk/2016/02/powershell-check-if-ip-or-subnet-matchesfits/ |