Cuando obtenemos credenciales de administrador en un entorno de equipos Windows, es muy típico comprobar si tenemos el clásico Pwn3d! de CrackMapExec para verificar si podemos ejecutar comandos y obtener shell.
Posts que recomiendo leer:
- ¿Qué es y por qué funciona Pass The Hash? – Autenticación NTLM
- ¿Por qué se pueden ejecutar comandos a través de SMB?
Sin embargo, puede ocurrir que tengamos credenciales de administrador, pero no tengamos la capacidad de ejecutar comandos. Esto puede ser por el LocalAccountTokenFilterPolicy.
Ejemplo:


El usuario “sikumy” está en el grupo “Administradores”, pero:


No obtenemos el famoso Pwn3d!, por lo tanto, no podemos ejecutar comandos.
Entonces, ¿qué es el LocalAccountTokenFilterPolicy y como nos afecta?
De forma simple, el LocalAccountTokenFilterPolicy es un filtro que previene que se usen privilegios elevados a través de la red. Esto solo aplica para las cuentas administrativas locales, no afectan a las cuentas de dominios. Por esta restricción, es por la que no podemos hacer uso de los privilegios de la cuenta a través de la red, y, por tanto, obtener el Pwn3d! y ejecutar comandos.
Para deshabilitar el LocalAccountTokenFilterPolicy, debemos retocar el siguiente registro:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system
En concreto, el valor con nombre “LocalAccountTokenFilterPolicy”. Si ese registro es 0, significa que está habilitado, si vale 1, lo contrario. A nosotros nos interesa que valga 1. Podemos cambiar su valor mediante el siguiente comando:
cmd /c reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f


Ahora, si volvemos a CrackMapExec:


Obtenemos el Pwn3d!, gracias a haber deshabilitado esta restricción. Por lo que ya podemos ejecutar comandos y hacer lo que queramos.