Поиск компьютеров с включенной службой WebClient
Наличие SMB Signing на контроллерах домена (устанавливается по умолчанию) запрещает выполнять технику SMB Relay на LDAP. В то же время техника HTTP Relay на LDAP разрешена при условии, что на контроллере домена не включен LDAP Signing. И в этом случае запущенная на хосте служба
WebClient
может помочь в использовании техники HTTP Relay в LDAP. По умолчанию служба
WebClient
отключена.
Ниже следующий скрипт позволяет обнаружить хосты, на которых запущена служба
WebClient
. ADSI запрос выбирает из домена все незаблокированные объекты компьютер. Так же скрипт содержит ключ
bloodhound
, который формирует Cypher запросы на добавление нового свойства к узлу:
function Check-Webclient{
[CmdletBinding()]
Param (
[Parameter (Mandatory=$false, Position=0)]
[switch]
$bloodhound
)
$searcher = [adsisearcher]'(&(objectCategory=computer)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))'
$searcher.PageSize = 1000
$comps=$searcher.FindAll()
foreach($comp in $comps)
{
if(Get-ChildItem -Path "\\$($comp.Properties.name.Item(0))\pipe\DAV RPC SERVICE" -ea SilentlyContinue)
{
if($bloodhound)
{
$sid = (New-Object System.Security.Principal.SecurityIdentifier($comp.Properties.objectsid.Item(0),0)).Value
Write-Host "MATCH (c:Computer {objectid:'$sid'}) SET c.webclient = TRUE;"
}
else
{
Write-Host -ForegroundColor Green "[!] WebClient is enabled on $($comp.Properties.name.Item(0))"
}
}
}
}
Если запустить скрипт с ключом
bloodhound
, то результат можно вставить в браузер neo4j и в результате информация будет доступна для последующий Cypher запросов. Так, например найти короткие пути до узлов, имеющих высокую ценность:
MATCH p=AllShortestPaths((c:Computer {webclient:TRUE})-[*1..]->(n {highvalue:TRUE})) RETURN p
Теперь остается запустить ntlmrelayx с нужными параметрами, для настройки RBCD или ShadowCredentials и выполнить принудительную аутентификацию хоста с указанием использовать WebDav вместо UNC Path.
#Внутрянка #RedTeam #PurpleTeam #Powershell