Enumerar y Recuperar Políticas de Contraseña en Active Directory

Descripción

Resumen de técnicas para recuperar la política de contraseñas de un dominio Windows desde Linux/Windows (con credenciales, NULL sessions o LDAP anónimo). Incluye comandos prácticos, salidas de ejemplo y recomendaciones para pruebas (p. ej. password spraying). ✅


🧭 Índice rápido


🛠️ Métodos (resumen)

Métodos disponibles

  1. Con credenciales: CrackMapExec, rpcclient, PowerView, net.exe.

  2. Sin credenciales: SMB NULL session (rpcclient, enum4linux, enum4linux-ng), LDAP anonymous bind (ldapsearch, windapsearch).

  3. Desde Windows sin herramientas: net accounts / PowerView.


🧪 Con credenciales (ejemplo)

CrackMapExec (sacar política remotamente)

Comando de ejemplo:

crackmapexec smb 172.16.5.5 -u avazquez -p Password123 --pass-pol

Salida relevante (ejemplo):

{D113F2B5-E09E-401C-9F6C-65DF3665D527}.png

Si tienes credenciales válidas, obtener la política reduce la incertidumbre para password spraying.

🕵️‍♂️ Sin credenciales — SMB NULL session

SMB NULL sessions pueden existir en DCs heredados — permiten enumerar usuarios, grupos y la política.
rpcclient -U "" -N 172.16.5.5
# luego en rpcclient:
querydominfo
getdompwinfo

Ejemplo de getdompwinfo:

Pasted image 20251116175829.png

enum4linux -P 172.16.5.5

Salida resumida:

{CA25212C-7D4D-4D0E-AE45-BD9864FD4066}.png

enum4linux-ng puede exportar JSON/YAML (-oA) para procesar resultados automáticamente.

🧾 LDAP anonymous bind

Si LDAP permite binds anónimos se puede extraer la política con ldapsearch.

Ejemplo:

ldapsearch -h 172.16.5.5 -x -b "DC=INLANEFREIGHT,DC=LOCAL" -s sub "*" | grep -m 1 -B 10 pwdHistoryLength

Salida de ejemplo (campos relevantes):

{69EE7F1A-BA75-44AB-AE9F-EFC87D4CA882}.png


🪟 Desde Windows (sin transferir herramientas)

Comando nativo:
C:\> net accounts

Salida (ejemplo):

Minimum password age (days): 1
Maximum password age (days): Unlimited
Minimum password length: 8
Length of password history maintained: 24
Lockout threshold: 5
Lockout duration (minutes): 30
PowerView ofrece la misma info en formato PowerShell:

Import-Module .\PowerView.ps1

Get-DomainPolicy


🧾 Tabla — Herramientas y puertos comunes

Herramientas y puertos

Herramienta Puertos / notas
nmblookup 137/UDP
nbtstat 137/UDP
net (Windows) 139/TCP, 135/TCP, RPC dinámicos
rpcclient 135/TCP
smbclient / SMB 445/TCP
enum4linux / enum4linux-ng usa rpcclient, smbclient, netbios etc.
ldapsearch 389/LDAP (o 636 LDAPS)


⚠️ Riesgos y recomendaciones para Password Spraying

No provocar bloqueos masivos

  • Si la política tiene Minimum password length = 8 y Lockout threshold = 5, es riesgoso hacer >2–3 intentos por cuenta en corto período.
  • Recomendación práctica: 1 intento por cuenta por ronda; si se repite, espaciar >30–60 minutos (o según la política detectada).
  • Si no puedes obtener la política, sé extremadamente conservador: máximo 1 intento por cuenta por hora.
  • Evita bloquear cuentas que requieren intervención manual (puede generar impacto operativo y problemas con el cliente).

Pregunta al cliente por la política cuando haga sentido dentro del scope: evita suposiciones peligrosas.

✅ Analizando la política (ejemplo INLANEFREIGHT.LOCAL)

Puntos clave

🧭 Pasos siguientes (operativos)

Checklist para preparar password spraying

🧠 Preguntas tipo examen — Respuestas rápidas

Respuestas (una cifra cada una)