Представь, что кто-то проводит атаку на корпоративную сеть Windows. Вначале у злоумышленника либо мало привилегий в домене, либо их вовсе нет. Поэтому искать учетные записи и службы он будет без повышенных привилегий, то есть не от имени администратора домена или локального администратора. О том, как производится разведка в среде 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
Результат работы скрипта для серверов Microsoft SQL

Наиболее интересные службы:

  • 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
Результат работы cкрипта — список SPN
 

Сбор данных

 

Общие ресурсы

В среде 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.

Скачать:









Важно:


Все статьи и материал на сайте размещаются из свободных источников. Приносим свои глубочайшие извинения, если Ваша статья или материал была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.





Заходи на mc.foxygame.ru:25565

Советуем прочитать