![](/uploads/posts/2022-08/info-icon.jpg)
Содержание статьи
- Сканирование SPN
- Сбор данных
- Общие ресурсы
- Базы данных
- Network Attached Storage
- Пользовательские данные при наличии привилегий
- Microsoft Exchange и Outlook при наличии привилегий
- Учетные данные
- Учетные записи администраторов домена
- Скрытая учетная запись администратора
- Группы Active Directory
- Информация из локальных групп Active Directory
- Local Administrator Password Solution
- AppLocker
- Azure Active Directory
- Сценарий синхронизации паролей
- Сценарий синхронизации каталога
- Заключение
Рассмотренные в данной статье примеры применимы для следующих версий Windows: 7, 8, 10, Server 2008, Server 2012 и Server 2016; другие не проверяли. Также для работы примеров в системе должен быть PowerShell с указанными модулями.
Сканирование SPN
Когда нужно повысить привилегии, злоумышленники обычно используют учетные записи служб, поскольку у таких учеток больше прав, но нет строгой политики смены пароля через заданный промежуток времени. То есть если скомпрометировать их, то потом можно долго оставаться незамеченным.
SPN-строка имеет такой формат:
SPN="serviceclass"/"hostname[:port]"[/"servicename"]
Serviceclass
— строка, которая идентифицирует класс службы, напримерldap
— идентификатор для службы каталогов;Hostname
— строка, где указывается полное доменное имя системы, а иногда и порт;Servicename
— строка, которая представляет собой уникальное имя (DN), GUID объекта или полностью определенное доменное имя (FQDN) службы.
SPN уникальный в пределах леса. Когда компьютер добавляют в домен, у его учетной записи автоматически указывается host SPN, что позволяет службам на этой машине запускаться из-под локальных учетных записей, таких как Local System и Network Service.
Сканирование SPN — это первое, что обычно делает злоумышленник или пентестер при поиске служб в среде Active Directory. Основное преимущество этого метода по сравнению со сканированием сетевых портов в том, что не требуется взаимодействие с каждым узлом сети для проверки служебных портов. Сканирование SPN позволяет обнаружить службы с помощью запросов LDAP к контроллеру домена. Так как запросы SPN — нормальное поведение проверки подлинности Kerberos, этот способ сканирования обнаружить очень сложно (даже почти нереально), в отличие от сканирования портов.
Выполнить сканирование SPN можно с помощью скрипта на PowerShell.
![Результат работы скрипта для серверов Microsoft SQL](/uploads/posts/2022-08/1.png)
Наиболее интересные службы:
- SQL (MSSQLSvc/adsmsSQLAP01.ads.org:1433)
- Exchange (exchangeMDB/adsmsEXCAS01.ads.org)
- RDP (TERMSERV/adsmsEXCAS01.adsecurity.org)
- WSMan / WinRM / PS Remoting (WSMAN/adsmsEXCAS01.ads.org)
- Hyper-V (Microsoft Virtual Console Service/adsmsHV01.ady.org)
- VMware VCenter (STS/adsmsVC01.ads.org)
Хочу поделиться с тобой и еще одним интересным скриптом, который покажет тебе все SPN для всех пользователей и всех компьютеров.
$search = New-Object DirectoryServices.DirectorySearcher([ADSI]"")$search.filter = "(servicePrincipalName=*)"$results = $search.Findall()foreach($result in $results){ $userEntry = $result.GetDirectoryEntry() Write-host "Object Name = " $userEntry.name -backgroundcolor "yellow" -foregroundcolor "black" Write-host "DN = " $userEntry.distinguishedName Write-host "Object Cat. = " $userEntry.objectCategory Write-host "servicePrincipalNames" $i=1 foreach($SPN in $userEntry.servicePrincipalName) { Write-host "SPN(" $i ") = " $SPN $i+=1 } Write-host "" }
![Результат работы cкрипта — список SPN](/uploads/posts/2022-08/2.png)
Сбор данных
Общие ресурсы
В среде Active Directory часто используются сетевые папки и файловые серверы. Эти команды отобразят список общих ресурсов на локальном хосте, список сетевых компьютеров и список шар на удаленном компьютере:
> net share> net view> net view COMPUTER_NAME /all
Но что делать, если политика безопасности запрещает использовать сетевые команды? В этом случае нас выручит wmic
. Список общих ресурсов на локальном хосте и список общих ресурсов на удаленном компьютере можно посмотреть с помощью команд
> wmic share get /format:list> wmic /node: COMPUTER_NAME share get
Полезный инструмент для поиска данных — PowerView. Он автоматически обнаруживает сетевые ресурсы и файловые серверы с помощью команд Find-DomainShare
и Get-DomainFileServer
.
Кстати, PowerView встроен в фреймворк PowerShell Empire и представлен двумя модулями:
situational_awareness/network/powerview/share_finder
;situational_awareness/network/powerview/get_fileserver
.
Скачать:
Скриншоты:
Важно:
Все статьи и материал на сайте размещаются из свободных источников. Приносим свои глубочайшие извинения, если Ваша статья или материал была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.