> For the complete documentation index, see [llms.txt](https://books.spartan-cybersec.com/cpad/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://books.spartan-cybersec.com/cpad/vulnerabilidades-y-ataques-en-ad/abuso-de-gpo/utilizando-powerview.md).

# Utilizando PowerView

### <mark style="color:red;">Enumeracion de GPO con PowerView:</mark>

El siguiente comando entrega todas las GPO utilizando una GPO:

{% code overflow="wrap" %}

```powershell
PS C:\Users\admin\Desktop> Get-NetGPO | %{Get-ObjectAcl -ResolveGUIDs -Name $_.Name}

AceType               : AccessAllowed
ObjectDN              : CN={6AC1786C-016F-11D2-945F-00C04fB984F9},CN=Policies,CN=System,DC=spartancybersec,DC=corp
ActiveDirectoryRights : CreateChild, DeleteChild, ReadProperty, WriteProperty, GenericExecute
OpaqueLength          : 0
ObjectSID             :
InheritanceFlags      : ContainerInherit
BinaryLength          : 36
IsInherited           : False
IsCallback            : False
PropagationFlags      : None
SecurityIdentifier    : S-1-5-21-1861162130-2580302541-221646211-1121
AccessMask            : 131127
AuditFlags            : None
AceFlags              : ContainerInherit
AceQualifier          : AccessAllowed
```

{% endcode %}

## <mark style="color:red;">Análisis Técnico de la ACE</mark>

1. <mark style="color:red;">**AceType: AccessAllowed**</mark>
   * Esta ACE otorga permisos en lugar de denegarlos. Indica que las acciones especificadas están permitidas para el sujeto identificado por el `SecurityIdentifier`.
2. <mark style="color:red;">**ObjectDN**</mark>
   * `CN={6AC1786C-016F-11D2-945F-00C04fB984F9},CN=Policies,CN=System,DC=spartancybersec,DC=corp` es el Distinguished Name del objeto de política de grupo (GPO) al que se aplica esta ACE. Este nombre único identifica la GPO dentro del dominio `spartancybersec.corp`.
3. <mark style="color:red;">**ActiveDirectoryRights**</mark>
   * Los derechos asignados incluyen `CreateChild`, `DeleteChild`, `ReadProperty`, `WriteProperty`, y `GenericExecute`.
     * **CreateChild y DeleteChild**: Permiten crear o eliminar objetos hijos dentro del contexto de esta GPO.
     * **ReadProperty y WriteProperty**: Permiten leer y modificar las propiedades de la GPO.
     * **GenericExecute**: Permite ejecutar acciones genéricas, aunque este permiso puede necesitar interpretación adicional según el contexto.
4. <mark style="color:red;">**SecurityIdentifier**</mark>
   * `S-1-5-21-1861162130-2580302541-221646211-1121` representa al usuario o grupo al que se aplican estos permisos. Este SID necesita ser resuelto para identificar al sujeto específico dentro del dominio.
5. <mark style="color:red;">**InheritanceFlags: ContainerInherit**</mark>
   * Indica que esta ACE se hereda a los objetos contenedores dentro de la GPO. Es relevante para entender cómo se propagan los permisos a través de las políticas.
6. <mark style="color:red;">**AccessMask: 131127**</mark>
   * Es una representación numérica de los permisos específicos otorgados, útil para interpretaciones programáticas o de scripts.
7. <mark style="color:red;">**AuditFlags y AceFlags**</mark>
   * `AuditFlags: None` indica que no hay configuraciones específicas de auditoría asociadas con esta ACE.
   * `AceFlags: ContainerInherit` reafirma la herencia de contenedor de esta ACE.

### <mark style="color:red;">Implicaciones en Seguridad</mark>

* **Análisis de Riesgo**: La presencia de derechos como `WriteProperty` y `CreateChild` en una GPO es significativa, ya que las GPOs afectan a múltiples usuarios y máquinas en un dominio. La capacidad de modificar una GPO puede llevar a cambios en la configuración de seguridad o políticas operativas a lo largo de toda la red.
* **Punto de Explotación Potencial**: Un atacante que gana control sobre una cuenta con estos derechos en una GPO podría potencialmente implementar cambios perjudiciales o maliciosos en la política de grupo, afectando a todo el dominio.

Si realizamos una conversion de SID, podemos apreciar que corresponde al usuario:

```powershell
PS C:\> $sid = New-Object System.Security.Principal.SecurityIdentifier("S-1-5-21-1861162130-2580302541-221646211-1121")
PS C:\> $user = $sid.Translate([System.Security.Principal.NTAccount])
PS C:\> $user.Value
SPARTANCYBERSEC\gpowrite.user
```
