# 1. Enumeración

### 1.1. Enumeración automática

BloodHound - SharpHound.ps1

```powershell
Invoke-BloodHound -CollectionMethod All
Invoke-BloodHound -CollectionMethod All -ExcludeDC
```

### 1.2. Enumeración manual - PowerView

#### **1.2.1. Enumeración del dominio**

Dominio actual

```powershell
Get-Domain | select Name,Parent,Forest,DomainControllers | fl
Get-DomainSID
```

Políticas del dominio (Password Policy)

```powershell
(Get-DomainPolicyData).systemaccess
```

Domain controllers

```powershell
 Get-DomainController | select Name,OSversion,IPAddress |fl
```

#### 1.2.2. Users enum

Usuarios actuales del dominio

```powershell
Get-DomainUser | select name,logoncount,description,memberof,useraccountcontrol
```

Todos los datos de todos los usuarios

```powershell
 Get-DomainUser -Identity <USER> -Properties *
```

#### 1.2.3. Enumeración de los equipos&#x20;

Equipos del dominio

```powershell
Get-DomainComputer | select name,logoncount,descreption,operatingsystem
```

Servidores del dominio

```powershell
Get-DomainComputer –OperatingSystem "*Server*"
```

Equipos a los que se puede hacer ping

```powershell
Get-DomainComputer -Ping  | select name,logoncount,descreption,operatingsystem
```

#### 1.2.4. Enumeración de grupos&#x20;

Grupos del dominio&#x20;

```powershell
Get-DomainGroup | select Name
```

Grupos del dominio que contienen "Admin”

```powershell
 Get-DomainGroup *admin* | select name,Description
```

Miembros de los grupos del dominio&#x20;

```powershell
Get-DomainGroupMember -Identity "Domain Admins" | select MemberName,MemberObjectClass,MemberSID
```

Grupos locales de una máquina&#x20;

```powershell
Get-NetLocalGroup -ComputerName <HOST>
```

Miembros de un grupo local&#x20;

```powershell
Get-LocalGroupMember -Group Administrators
```

Miembros de equipos de otra máquina&#x20;

```powershell
Get-NetLocalGroupMember -ComputerName <HOST> -GroupName Administrators | select MemberName,IsGroup,IsDomain
```

#### 1.2.5. Usuarios autenticados

Usuarios locales autenticados&#x20;

```powershell
Get-NetLoggedon | select username
```

Usuarios locales autenticados en un equipo determinado

```powershell
Get-LoggedonLocal -ComputerName <HOST>
```

Último usuario autenticado en una máquina&#x20;

```powershell
Get-LastLoggedOn –ComputerName <HOST>
```

#### 1.2.6. Políticas de Grupo (GPO)

GPOs del dominio

```powershell
Get-DomainGPO | select displayname,name
```

GPOs de una máquina del dominio&#x20;

```powershell
/coGet-DomainGPO -ComputerIdentity <HOST> | select displayname,name
```

GPOs de un grupo de usuarios locales

```powershell
 Get-DomainGPOComputerLocalGroupMapping –ComputerIdentity
 Get-DomainGPOUserLocalGroupMapping -Identity <USER>
```

GPOs que aplican a una OU determinada

```powershell
Get-DomainGPO -Identity "{3E04167E-C2B6-4A9A-8FB7-C811158DC97C}"
```

#### 1.2.7. Unidades Organizativas (OU)

OUs actuales del dominio

```powershell
Get-DomainOU | select name,gplink
```

Equipos que afectan a una OU específica

```powershell
(Get-DomainOU -Identity <OU>).distinguishedname | %{Get-DomainComputer -SearchBase $_} | select name
```

#### 1.2.8. Listas de Control de Acceso (ACL)

ACLs para un objeto del dominio

```powershell
Get-DomainObjectAcl -SamAccountName <USER> –ResolveGUIDs
```

ACLs para un grupo del dominio&#x20;

```powershell
Get-DomainObjectAcl -SearchBase "LDAP://CN=Domain Admins,CN=Users,DC=example,DC=domain,DC=com" -ResolveGUIDs | select ObjectDN,AceType,ActiveDirectoryRights
```

ACLs interesantes

```powershell
Find-InterestingDomainAcl -ResolveGUIDs | select IdentityReferenceName,AceType,ActiveDirectoryRights -Unique
```

Rutas de ACLs

```powershell
Get-PathAcl -Path "\\\\<HOST>.<full.domain>\\sysvol"
```

#### 1.2.9. Relaciones de confianza (Trust)

Relaciones de confianza del dominio

```powershell
 Get-DomainTrust | select  SourceName,TrustAttributes,TargetName,TrustDirection
```

Forest actuales

```powershell
Get-Forest | select Name,SchemaRoleOwner,RootDomainSid | fl
```

Forest del dominio

```powershell
Get-ForestDomain | select Name,PdcRoleOwner
```

Catálogo de Forest Global&#x20;

```powershell
Get-ForestGlobalCatalog | select Forest,Domain,IPAddress,OSVersion,Name
```

Relaciones de confianza entre Forest&#x20;

```powershell
Get-ForestTrust
```

Relaciones de confianza entre Forest externos

```powershell
Get-ForestDomain | %{Get-DomainTrust -Domain $_.Name} | ?{$_.TrustAttributes -eq "FILTER_SIDS"}
```

Enumeración de relaciones de confianza externas

```powershell
Get-DomainTrust | ?{$_.TrustAttributes -eq "FILTER_SIDS"}
```

#### 1.2.10. Otros

Listado de todos los recursos compartidos

```powershell
Invoke-ShareFinder 
```

Listado de los recursos compartidos del dominio accesibles

```powershell
 Invoke-ShareFinder -CheckShareAccess
```

Enumeración de ficheros sensibles

```powershell
Invoke-FileFinder
```

Listar los servidores de ficheros del dominio&#x20;

```powershell
Get-NetFileServer
```

### 1.3. Enumeración del dominio avanzada

Acceso de Admin Local

```powershell
Find-LocalAdminAccess –Verbose
Find-WMILocalAdminAccess.ps1
Find-PSRemotingLocalAdminAccess.ps1
```

Password Hardening

{% code overflow="wrap" %}

```powershell
$FormatEnumerationLimit=-1;Get-DomainUser -LDAPFilter '(userPassword=*)' -Properties samaccountname,memberof,userPassword | % {Add-Member -InputObject $_ NoteProperty 'Password' "$([System.Text.Encoding]::ASCII.GetString($_.userPassword))" -PassThru} | fl
```

{% endcode %}

Kerberoasting

```powershell
Get-DomainUser -SPN | select samaccountname,serviceprincipalname

impacket-GetUserSPNs -request -dc-ip IP <Full.Domain>/<USER>:<PASSWORD>
Rubeus.exe kerberoast /stats

Get-DomainUser -Identity <USER> | select serviceprincipalname
```

ASREPRoasting

```powershell
Get-DomainUser -PreauthNotRequired -Verbose
impacket-GetNPUsers -request -dc-ip IP <Full.Domain>/<USER>:<PASSWORD>

#ASREPRoast.ps1
Invoke-ASREPRoast -Verbose
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.securiters.com/securiters-wiki/certificaciones/repaso-oscp/1.-enumeracion.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
