🧱 Protege las cuentas de Windows contra fuerza bruta con PowerShell (CIS + NIST)

Protege las cuentas de Windows contra fuerza bruta con PowerShell CIS + NIST

Hardening de Cuentas Windows con PowerShell: 8 medidas de seguridad en una sola ejecución

Las credenciales comprometidas son el vector de ataque número uno en incidentes de seguridad, por delante de exploits y malware, y la mayoría de sistemas Windows funcionan con la configuración de cuentas por defecto, sin ninguna restricción de intentos ni política de contraseñas activa. En Seguridad en mi PC documentamos cómo un único script de PowerShell aplica 8 medidas de hardening en segundos, alineadas con el CIS Benchmark nivel 1 y el NIST SP 800-63B, sin instalar ningún software adicional. Todas las guías técnicas de protección del sistema están recogidas en nuestra sección de seguridad y endurecimiento de sistemas Windows, y puedes consultar la colección completa de guías de seguridad para Windows disponible en el sitio.

💡 Resumen rápido

🔒 Hardening de cuentas Windows: 8 medidas con PowerShell paso a paso

El hardening de cuentas Windows consiste en reforzar la seguridad de usuarios y credenciales para evitar accesos no autorizados, ataques de fuerza bruta, password spraying y credential stuffing. Según el informe DBIR de Verizon, las credenciales comprometidas son el vector de ataque número uno por delante de exploits y malware.

  • 8 medidas automatizadas: política de contraseñas, bloqueo por intentos, cuentas Invitado y Admin, autologon y auditoría
  • ✅ Script PowerShell completo alineado con CIS Benchmark L1 y NIST SP 800-63B
  • ✅ Bloqueo automático tras 5 intentos fallidos para frenar fuerza bruta y credential stuffing
  • ✅ Política de contraseñas: mínimo 12 caracteres, historial de 5 y caducidad a 90 días
  • ✅ Recomendaciones previas para no bloquearse el acceso al ejecutar el script

📅 2026 · 🕐 8 minutos de lectura

💡 Definición rápida Hardening de cuentas Windows: Proceso de configurar la política de seguridad local de usuarios, contraseñas y accesos para resistir ataques de fuerza bruta, escalación de privilegios y robo de credenciales mediante credential stuffing. Se aplica mediante comandos nativos de Windows y PowerShell sin instalar software adicional, siguiendo los controles L1 del CIS Benchmark para Windows 11 y el estándar NIST SP 800-63B de gestión de credenciales.

El hardening de cuentas en Windows consiste en reforzar la seguridad de usuarios y credenciales para evitar accesos no autorizados, ataques de fuerza bruta y robo de cuentas. En esta guía aplicarás 8 medidas de seguridad automáticamente con PowerShell, sin necesidad de herramientas externas ni consola de directivas de grupo.

Este proceso complementa el hardening general de Windows 11. Para proteger también las credenciales online contra filtraciones, consulta nuestra guía sobre cómo crear contraseñas seguras y la monitorización de logins Windows para detectar intentos de acceso sospechosos.


Qué es el hardening de cuentas Windows

📌 ¿Qué es el hardening de cuentas Windows?

El hardening de cuentas Windows protege credenciales, evita accesos no autorizados y reduce la superficie de ataque configurando la política de seguridad local del sistema operativo. Windows instala con una configuración de cuentas permisiva por defecto: sin longitud mínima de contraseña, sin bloqueo automático por intentos fallidos y con la cuenta Invitado disponible. El hardening corrige esas configuraciones inseguras siguiendo estándares internacionales como el CIS Benchmark nivel 1 y el NIST SP 800-63B.

  • ✔ Protege credenciales frente a ataques de fuerza bruta, diccionario y password spraying mediante política de bloqueo de cuentas
  • ✔ Elimina cuentas innecesarias (Invitado, Administrador predecible) que amplían la superficie de ataque
  • ✔ Reduce privilegios siguiendo el principio de mínimo privilegio documentado en MITRE ATT&CK
  • ✔ Activa la política de auditoría para detectar intentos de acceso sospechosos en el registro de eventos de Windows
  • ✔ Bloquea el acceso físico sin autenticación desactivando el inicio de sesión automático (autologon)

💡 ¿Qué es el CIS Benchmark y por qué lo sigue este script?

El CIS Benchmark (Center for Internet Security) es el estándar de referencia mundial para la configuración segura de sistemas operativos. Sus controles de nivel 1 (L1) son medidas de hardening conservadoras recomendadas para todos los sistemas: no degradan la funcionalidad y tienen el máximo impacto sobre la seguridad. El nivel 2 incluye medidas más restrictivas para entornos de alta seguridad. Este script aplica los controles L1 del CIS Benchmark para Windows 11 relativos a política de contraseñas, política de bloqueo de cuentas y auditoría de seguridad, combinados con el estándar NIST SP 800-63B de gestión de credenciales digitales.


🚨 ¿Por qué es importante el hardening de cuentas Windows?

🚨 Dato crítico: Según el informe DBIR de Verizon, el uso de credenciales comprometidas es de forma consistente el vector de ataque número uno en incidentes de seguridad. Sin hardening de cuentas, cualquier atacante con acceso a una contraseña filtrada en una brecha de datos puede entrar directamente al sistema mediante credential stuffing, escalar privilegios y moverse lateralmente sin restricciones ni rastro en el registro de eventos.
Riesgo sin hardening de cuentasDescripción técnicaConsecuenciaTécnica MITRENivel
Sin política de contraseñasWindows permite contraseñas vacías o de 1 carácter por defectoContraseñas débiles trivialmente rompibles por fuerza brutaT1110 Brute Force🔴 Crítico
Sin política de bloqueo por intentosSin límite de intentos fallidos en el loginAtaques de diccionario y password spraying ilimitadosT1110 Brute Force🔴 Crítico
Cuenta Invitado activaCuenta sin contraseña disponible por defectoAcceso anónimo al sistema sin autenticaciónT1078 Valid Accounts🔴 Alto
Cuenta Administrador con nombre predecibleNombre "Administrator" conocido por todos los atacantesObjetivo prioritario de credential stuffing y fuerza brutaT1078 Valid Accounts🔴 Alto
Autologon activoCredenciales almacenadas en el registro de Windows en texto claroAcceso físico sin autenticación; credenciales extraíbles del registroT1552 Credentials in Registry🔴 Alto
Sin política de auditoríaLos eventos de inicio de sesión no se registranIntrusiones y escalaciones de privilegios sin dejar rastroT1562 Defense Evasion🟠 Alto

Las 8 medidas del hardening de cuentas Windows

⚙️ Las 8 medidas del hardening de cuentas Windows

💡 Resumen de las 8 medidas del script:Este script implementa 8 medidas de seguridad de la política de seguridad local alineadas con el CIS Benchmark para Windows 11 y el NIST SP 800-63B: política de contraseñas robusta, política de bloqueo de cuentas, desactivación de cuentas innecesarias, eliminación del autologon y activación de la política de auditoría completa.
  1. 🔒 Política de contraseñas robusta, mínimo 12 caracteres, historial de 5 contraseñas previas, caducidad máxima a 90 días (NIST SP 800-63B)
  2. ⏱️ Política de bloqueo de cuentas por intentos fallidos, bloqueo automático a los 5 intentos durante 30 minutos para frenar fuerza bruta y password spraying
  3. 🚫 Desactivar cuenta Invitado, elimina el acceso anónimo al sistema sin contraseña
  4. 🔑 Desactivar cuenta Administrador integrada, elimina el objetivo predecible de los atacantes con nombre conocido
  5. 🔄 Caducidad de contraseñas en usuarios existentes, fuerza la renovación periódica de credenciales en todas las cuentas
  6. 🧑‍💻 Auditar y listar cuentas administradoras activas, identifica y controla todas las cuentas con privilegios elevados en el sistema
  7. 🛑 Desactivar inicio de sesión automático (autologon), evita el acceso físico sin autenticación y protege las credenciales almacenadas en el registro
  8. 🔐 Activar política de auditoría completa de seguridad, registra todos los eventos de acceso en el registro de eventos de Windows para detección de intrusiones

⚙️ Script completo: Hardening de cuentas Windows con tarea programada al inicio

A continuación encontrarás un script PowerShell completo y unificado que aplica las 8 medidas anteriores en una sola ejecución y, además, crea una tarea programada que reaplica el hardening de cuentas en cada inicio y reinicio del equipo. De esta forma, si una actualización de Windows o una instalación de software corporativo revierte alguna política, el sistema vuelve automáticamente al estado endurecido sin que tengas que intervenir.

⚠️ Antes de ejecutar: Este script modifica la política de seguridad local del sistema y crea una tarea programada que se ejecuta como SYSTEM. Es completamente reversible mediante el script de reversión incluido, pero asegúrate de tener al menos una cuenta de administrador alternativa funcional antes de ejecutarlo. El script crea un log automático en C:\Logs\hardening-cuentas.log. Lee siempre el código antes de pegarlo en PowerShell.

📥 Pasos para instalar y ejecutar el script

  1. Verifica que tienes una cuenta de administrador alternativa ejecutando net localgroup administrators. Debe haber al menos dos cuentas activas con privilegios de administrador antes de continuar.
  2. Abre PowerShell como administrador: pulsa la tecla Windows, escribe PowerShell, haz clic derecho sobre Windows PowerShell y selecciona Ejecutar como administrador.
  3. Permite la ejecución de scripts en la sesión actual (no afecta a futuras sesiones):
    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
  4. Crea la carpeta de scripts del sistema: el script se instalará en C:\Scripts\ para que la tarea programada lo encuentre siempre en la misma ruta:
    New-Item -ItemType Directory -Path "C:\Scripts" -Force
  5. Crea el archivo del script: abre el Bloc de notas, pega el código que verás más abajo y guárdalo como Hardening-Cuentas.ps1 directamente en C:\Scripts\. Asegúrate de que el tipo de archivo sea Todos los archivos, no .txt.
  6. Ejecuta el script por primera vez desde PowerShell (esto aplicará el hardening Y creará la tarea programada):
    C:\Scripts\Hardening-Cuentas.ps1
  7. Verifica que la tarea programada se creó correctamente:
    Get-ScheduledTask -TaskName "Hardening-Cuentas-Windows"
  8. Verifica el resultado con net accounts y auditpol /get /category:*: debes ver longitud mínima 12, bloqueo a 5 intentos y "Success and Failure" en todas las categorías.
  9. Reinicia el equipo: la tarea programada se ejecutará automáticamente y reaplicará el hardening de cuentas.
Cómo funciona la tarea programada: El script registra una tarea llamada Hardening-Cuentas-Windows que se ejecuta como SYSTEM con privilegios elevados en cada arranque. Si una actualización de Windows o una instalación corporativa revierte la política de contraseñas, la política de bloqueo o la auditoría, el endurecimiento se restaura automáticamente en el siguiente reinicio sin intervención del usuario.

💻 Script de hardening de cuentas Windows (copia y pega)

# ============================================================
# Script: Hardening de cuentas Windows + Tarea programada
# Autor:  seguridadenmipc.com
# Compat: Windows 10 / 11 / Server 2019+
# Alineado con: CIS Benchmark L1 + NIST SP 800-63B
# Uso:    Ejecutar como administrador (1a vez)
#         Despues se reaplica solo en cada inicio
# Ruta:   C:\Scripts\Hardening-Cuentas.ps1
# ============================================================

# 1. Verificar privilegios de administrador
if (-not ([Security.Principal.WindowsPrincipal] `
    [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole(`
    [Security.Principal.WindowsBuiltInRole]::Administrator)) {
    Write-Host "[X] Ejecuta este script como Administrador." -ForegroundColor Red
    exit
}

# 2. Preparar log
$logDir = "C:\Logs"
if (-not (Test-Path $logDir)) { New-Item -ItemType Directory -Path $logDir | Out-Null }
$log = "$logDir\hardening-cuentas.log"
Start-Transcript -Path $log -Append | Out-Null

Write-Host "=== Hardening de cuentas Windows ===" -ForegroundColor Cyan
Write-Host "Fecha: $(Get-Date)" -ForegroundColor Gray

# 3. Comprobacion de seguridad: cuentas admin alternativas
$admins = (net localgroup administrators) -match "^[A-Za-z]" |
          Where-Object { $_ -notmatch "comando|completed|---|Alias|Members|Comment" }
$adminsActivos = @()
foreach ($a in $admins) {
    try {
        $info = net user $a.Trim() 2>$null
        if ($info -match "Account active\s+Yes|Cuenta activa\s+S") {
            $adminsActivos += $a.Trim()
        }
    } catch {}
}
if ($adminsActivos.Count -lt 2) {
    Write-Host "[!] AVISO: Solo hay 1 cuenta admin activa. Se omitira la desactivacion de Administrator." -ForegroundColor Yellow
    $omitirAdmin = $true
} else {
    $omitirAdmin = $false
}

# 4. POLITICA DE CONTRASENAS ROBUSTA (NIST SP 800-63B + CIS L1)
try {
    net accounts /minpwlen:12   | Out-Null   # Longitud minima 12
    net accounts /maxpwage:90   | Out-Null   # Caducidad max 90 dias
    net accounts /minpwage:1    | Out-Null   # Minimo 1 dia entre cambios
    net accounts /uniquepw:5    | Out-Null   # Historial 5 contrasenas
    Write-Host "[OK] Politica de contrasenas aplicada (12 chars, 90d, hist 5)." -ForegroundColor Green
} catch { Write-Host "[X] Error en politica de contrasenas: $_" -ForegroundColor Red }

# 5. POLITICA DE BLOQUEO DE CUENTAS (MITRE T1110)
try {
    net accounts /lockoutthreshold:5  | Out-Null   # 5 intentos
    net accounts /lockoutduration:30  | Out-Null   # 30 min bloqueo
    net accounts /lockoutwindow:30    | Out-Null   # ventana 30 min
    Write-Host "[OK] Politica de bloqueo aplicada (5 intentos / 30 min)." -ForegroundColor Green
} catch { Write-Host "[X] Error en politica de bloqueo: $_" -ForegroundColor Red }

# 6. DESACTIVAR CUENTA INVITADO (T1078)
try {
    net user guest /active:no | Out-Null
    Write-Host "[OK] Cuenta Invitado desactivada." -ForegroundColor Green
} catch { Write-Host "[!] Cuenta Invitado: $_" -ForegroundColor Yellow }

# 7. DESACTIVAR CUENTA ADMINISTRADOR INTEGRADA (CIS L1)
if (-not $omitirAdmin) {
    try {
        net user administrator /active:no | Out-Null
        Write-Host "[OK] Cuenta Administrator integrada desactivada." -ForegroundColor Green
    } catch { Write-Host "[!] Administrator: $_" -ForegroundColor Yellow }
} else {
    Write-Host "[!] OMITIDO: desactivacion de Administrator (no hay alternativa)." -ForegroundColor Yellow
}

# 8. DESACTIVAR INICIO DE SESION AUTOMATICO (T1552)
try {
    reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" `
        /v AutoAdminLogon /t REG_SZ /d 0 /f | Out-Null
    reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" `
        /v DefaultPassword /f 2>$null | Out-Null
    Write-Host "[OK] Autologon desactivado y DefaultPassword eliminada." -ForegroundColor Green
} catch { Write-Host "[X] Error en autologon: $_" -ForegroundColor Red }

# 9. ACTIVAR POLITICA DE AUDITORIA COMPLETA
try {
    auditpol /set /category:* /success:enable /failure:enable | Out-Null
    Write-Host "[OK] Politica de auditoria activada (Success + Failure)." -ForegroundColor Green
} catch { Write-Host "[X] Error en auditoria: $_" -ForegroundColor Red }

# 10. AUDITAR Y LISTAR CUENTAS ADMINISTRADORAS ACTIVAS
Write-Host "`n--- Cuentas administradoras activas ---" -ForegroundColor Yellow
net localgroup administrators

# 11. CREAR TAREA PROGRAMADA QUE REAPLICA EL HARDENING EN CADA INICIO
try {
    $taskName = "Hardening-Cuentas-Windows"
    $scriptPath = "C:\Scripts\Hardening-Cuentas.ps1"

    if (Get-ScheduledTask -TaskName $taskName -ErrorAction SilentlyContinue) {
        Unregister-ScheduledTask -TaskName $taskName -Confirm:$false
    }

    $action = New-ScheduledTaskAction `
        -Execute "PowerShell.exe" `
        -Argument "-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File `"$scriptPath`""
    $trigger = New-ScheduledTaskTrigger -AtStartup
    $principal = New-ScheduledTaskPrincipal `
        -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
    $settings = New-ScheduledTaskSettingsSet `
        -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries `
        -StartWhenAvailable -ExecutionTimeLimit (New-TimeSpan -Minutes 5)

    Register-ScheduledTask -TaskName $taskName -Action $action -Trigger $trigger `
        -Principal $principal -Settings $settings `
        -Description "Reaplica hardening de cuentas Windows en cada inicio - seguridadenmipc.com" `
        | Out-Null
    Write-Host "[OK] Tarea programada '$taskName' creada (se ejecuta al inicio)." -ForegroundColor Green
} catch { Write-Host "[X] Error creando tarea: $_" -ForegroundColor Red }

# 12. Resumen final
Write-Host ""
Write-Host "[OK] Hardening de cuentas aplicado correctamente." -ForegroundColor Green
Write-Host "     Tarea programada activa: se reaplicara en cada inicio." -ForegroundColor Cyan
Write-Host "     Verifica con: net accounts  y  auditpol /get /category:*" -ForegroundColor Cyan
Write-Host "     Log: $log" -ForegroundColor Gray
Stop-Transcript | Out-Null

↩️ Script de reversión (deshace el hardening y elimina la tarea programada)

Si necesitas restaurar la configuración por defecto y eliminar la tarea programada (por ejemplo, para diagnosticar un problema o aplicar una política corporativa distinta), ejecuta este script. Importante: elimina primero la tarea programada, porque si no, el hardening volverá a aplicarse en el siguiente arranque.

# ============================================================
# Revertir hardening de cuentas Windows
# ============================================================

# 1. ELIMINAR PRIMERO la tarea programada (sino se reaplicara al reiniciar)
$taskName = "Hardening-Cuentas-Windows"
if (Get-ScheduledTask -TaskName $taskName -ErrorAction SilentlyContinue) {
    Unregister-ScheduledTask -TaskName $taskName -Confirm:$false
    Write-Host "[OK] Tarea programada eliminada." -ForegroundColor Green
}

# 2. Restaurar politica de contrasenas por defecto (sin restricciones)
net accounts /minpwlen:0      | Out-Null
net accounts /maxpwage:unlimited | Out-Null
net accounts /uniquepw:0      | Out-Null

# 3. Restaurar politica de bloqueo por defecto (sin bloqueo)
net accounts /lockoutthreshold:0 | Out-Null

# 4. Reactivar cuenta Invitado (NO recomendado, hazlo solo si lo necesitas)
# net user guest /active:yes

# 5. Reactivar cuenta Administrador integrada
net user administrator /active:yes | Out-Null

# 6. Desactivar politica de auditoria
auditpol /set /category:* /success:disable /failure:disable | Out-Null

Write-Host "[OK] Hardening de cuentas revertido. Reinicia el equipo." -ForegroundColor Green
Write-Host "    Nota: la cuenta Invitado se mantiene desactivada por seguridad." -ForegroundColor Yellow

⚠️ Riesgos y efectos reales del script

Antes de ejecutar este script conviene entender exactamente qué cambios aplica y qué funciones de Windows pueden verse afectadas. A diferencia de los scripts de hardening de red, este sí toca directamente la configuración de cuentas y autenticación, por lo que es el más sensible de toda la serie en cuanto a riesgo de bloquearse el acceso al sistema si no se siguen las recomendaciones previas.

Función del sistema¿Se ve afectada?Detalle técnico
Inicio de sesión local🟡 Sí (parcialmente)Sigue funcionando, pero ahora exige contraseña de 12+ caracteres en cambios y bloquea tras 5 intentos fallidos
Inicio de Windows🟢 NoEl arranque del sistema no se ve afectado; la tarea programada se ejecuta tras el inicio
Reinicio / apagado🟢 NoNo modifica el subsistema de apagado ni BCD
UEFI / arranque seguro🟢 NoNo afecta BCD, Secure Boot ni particiones EFI
Banca, Gmail y plataformas web🟢 NoEl hardening de cuentas afecta a las credenciales locales de Windows, no a las cuentas online
Visualización de sitios web🟢 NoNo modifica DNS, hosts, proxy ni la pila de red
Inicio de sesión automático (autologon)🔴 Sí (a propósito)Si tenías autologon activo, ahora deberás escribir la contraseña en cada arranque
Cuenta Invitado🔴 Sí (a propósito)Queda desactivada; cualquier acceso anónimo deja de funcionar
Cuenta Administrator integrada🔴 Sí (con protección)Se desactiva SOLO si hay otra cuenta admin activa; el script lo verifica antes
Contraseñas existentes🟡 Caducan en 90 díasLas contraseñas actuales seguirán funcionando, pero deberán cambiarse en máximo 90 días
Tras 5 intentos fallidos de login🔴 Bloqueo de 30 minSi te equivocas 5 veces, la cuenta se bloquea media hora (puedes desbloquearla con otra cuenta admin)
🚨 Casos en los que NO debes ejecutar el script sin precauciones:
  • Si tu equipo es gestionado por el departamento de IT de una empresa (puede entrar en conflicto con GPO corporativas)
  • Si tienes una sola cuenta de administrador en el sistema (riesgo de quedarte sin acceso si pierdes la contraseña)
  • Si dependes del autologon para tareas automatizadas (kioscos, equipos de presentación, servidores domésticos)
  • Si tu contraseña actual tiene menos de 12 caracteres (no afecta al login actual, pero el siguiente cambio fallará si no usas 12+)
  • Si compartes el equipo con personas que no recuerdan bien las contraseñas (5 intentos = bloqueo de 30 min)
En todos estos casos, valora ejecutar primero el script en un entorno de prueba (máquina virtual) o crear una cuenta de administrador adicional como red de seguridad.
⚠️ Sobre la tarea programada: La tarea Hardening-Cuentas-Windows se ejecuta como SYSTEM en cada arranque y tarda menos de 5 segundos en completarse. Si quieres comprobar que se está ejecutando correctamente, abre el Programador de tareas (Win+R → taskschd.msc), busca la tarea en la Biblioteca y revisa el campo "Último resultado" (debe ser 0x0 = éxito). El log completo de cada ejecución se guarda en C:\Logs\hardening-cuentas.log.

En equipos domésticos o de uso personal con al menos dos cuentas de administrador y contraseñas de longitud razonable, este script es seguro y aplica el endurecimiento de cuentas más recomendado por organismos como CIS, NIST e INCIBE sin afectar al uso cotidiano del equipo. La tarea programada garantiza que el hardening se mantenga aplicado incluso tras actualizaciones grandes de Windows.

 

🔐 ¿Qué consigue cada medida del hardening de cuentas Windows?

MedidaAmenaza bloqueadaTécnica MITREReferencia oficial
Contraseñas de 12+ caracteres con historialFuerza bruta, ataque de diccionario y reutilización de contraseñas filtradasT1110.001NIST SP 800-63B + CIS L1
Política de bloqueo a los 5 intentosPassword spraying, credential stuffing y fuerza bruta automatizadaT1110.003Microsoft Learn + MITRE T1110
Cuenta Invitado desactivadaAcceso anónimo al sistema sin credenciales (T1078)T1078CIS Benchmark Windows 11 L1
Cuenta Administrador integrada desactivadaObjetivo predecible de credential stuffing y fuerza bruta dirigidaT1078Microsoft Best Practices AD
Caducidad de contraseñas (90 días)Uso prolongado de credenciales comprometidas en brecha de datosT1078NIST SP 800-63B
Auditoría de cuentas administradorasCuentas privilegiadas desconocidas creadas por malware o atacanteT1136CIS Benchmark L1
Autologon desactivadoAcceso físico sin autenticación y extracción de credenciales del registroT1552CIS Benchmark L1
Política de auditoría completa activaIntrusiones y escalaciones de privilegios sin rastro en el registro de eventosT1562auditpol, Microsoft Learn
Referencias oficiales: Las medidas de este script siguen los controles L1 del CIS Benchmark para Windows 11 y las directrices del NIST SP 800-63B sobre autenticación y gestión de credenciales digitales.

💡 ¿Cómo verificar que el hardening de cuentas está activo?

Ejecuta estos comandos en PowerShell como administrador para confirmar que la política de seguridad local está correctamente configurada:

# Verificar política de contraseñas y bloqueo de cuentas
net accounts

# Verificar política de auditoría activa
auditpol /get /category:*

# Verificar estado de las cuentas Invitado y Administrador
net user guest
net user administrator

# Verificar que la tarea programada esté activa
Get-ScheduledTask -TaskName "Hardening-Cuentas-Windows"

El resultado de net accounts debe mostrar: longitud mínima 12, bloqueo activo a 5 intentos y duración de 30 minutos. La política de auditoría debe mostrar Success and Failure en todas las categorías y la tarea programada debe aparecer en estado Ready.


⚠️ Recomendaciones previas a la ejecución del script

  • 💾 Haz una copia de seguridad del sistema o un punto de restauración antes de modificar la política de seguridad local
  • 🧪 Prueba en un entorno controlado (máquina virtual) antes de aplicar en el equipo de producción
  • ⚠️ No desactives la cuenta Administrador integrada si es la única cuenta con privilegios de administrador en el sistema (el script lo verifica automáticamente y omite ese paso si solo hay una)
  • 🔑 Asegúrate de tener acceso alternativo con otra cuenta de administrador antes de desactivar cuentas o cambiar políticas
  • 📋 Verifica el resultado tras la ejecución con net accounts y auditpol /get /category:*
  • 🔄 La tarea programada se encarga de revisar la configuración en cada arranque, pero si quieres comprobar manualmente cómo va el hardening, revisa el log en C:\Logs\hardening-cuentas.log

✅ Checklist de verificación del hardening de cuentas Windows

Confirma cada punto tras ejecutar el script de hardening:

  • net accounts muestra longitud mínima de contraseña: 12 caracteres
  • net accounts muestra umbral de bloqueo: 5 intentos
  • net accounts muestra duración del bloqueo: 30 minutos
  • net accounts muestra historial de contraseñas: 5
  • net user guest muestra la cuenta como inactiva (Account active: No)
  • net user administrator muestra la cuenta como inactiva (si la desactivaste)
  • auditpol /get /category:* muestra "Success and Failure" en todas las categorías
  • ☐ El registro de Windows no contiene la clave AutoAdminLogon con valor 1
  • Get-ScheduledTask -TaskName "Hardening-Cuentas-Windows" devuelve la tarea en estado Ready
  • ☐ Tengo al menos una cuenta de administrador alternativa y funcional en el sistema
  • ☐ El log C:\Logs\hardening-cuentas.log registra la ejecución sin errores

🧠 Buenas prácticas adicionales de seguridad de cuentas

Complementa el hardening de cuentas Windows con estas medidas de seguridad adicionales: Activa el 2FA en todas las cuentas online · Usa un gestor de contraseñas para credenciales únicas · Mantén Windows actualizado con los parches del Patch Tuesday · Configura Windows Defender correctamente · Monitoriza filtraciones con Dark Web Monitoring · Activa la monitorización de logins Windows para detectar intentos anómalos.
  • 📱 Activa el 2FA en todas las cuentas online, el hardening de cuentas protege el sistema local pero el 2FA protege el acceso remoto aunque las credenciales sean robadas en una brecha de datos
  • 🔑 Usa un gestor de contraseñas, genera y almacena contraseñas únicas de 16+ caracteres para cada servicio; elimina el riesgo de credential stuffing por reutilización
  • 📊 Monitoriza el registro de eventos de seguridad, la política de auditoría activada en el paso 8 genera datos valiosos que solo tienen valor si se analizan regularmente
  • 🔒 Aplica el principio de mínimo privilegio, usa cuentas estándar para el uso diario y reserva la cuenta de administrador solo para tareas que lo requieran explícitamente
  • 🕵️ Vigilancia activa de brechas de datos, si tus credenciales aparecen en una filtración, el atacante puede entrar con un login exitoso sin activar la política de bloqueo por intentos

Sistema sin hardening vs con hardening de cuentas Windows

🆚 Sistema sin hardening vs con hardening de cuentas Windows

CaracterísticaSin hardening (configuración por defecto)Con hardening de cuentas Windows
Resistencia a fuerza bruta🔴 Ninguna; intentos ilimitados sin bloqueo🟢 Bloqueo automático tras 5 intentos fallidos
Resistencia a password spraying🔴 Ninguna; múltiples usuarios atacables🟢 Política de bloqueo corta la ventana de ataque
Cuentas innecesarias activas🔴 Invitado y Administrador predecible activos🟢 Desactivadas; superficie de ataque reducida
Política de contraseñas🔴 Sin longitud mínima; contraseñas vacías posibles🟢 Mínimo 12 caracteres, caducidad 90 días, historial 5
Inicio de sesión automático🔴 Posible; credenciales en el registro🟢 Desactivado; acceso físico requiere autenticación
Política de auditoría🔴 Sin registro de eventos de acceso🟢 Todos los eventos registrados; trazabilidad completa
Persistencia tras actualizaciones🔴 La configuración se puede perder con un parche grande🟢 Tarea programada reaplica el hardening en cada arranque
Alineación con estándares🔴 No cumple CIS Benchmark L1 ni NIST SP 800-63B🟢 Alineado con CIS Benchmark L1 y NIST SP 800-63B
Recomendado

🏁 Conclusión

El hardening de cuentas Windows con PowerShell permite aplicar ocho medidas de la política de seguridad local en segundos, reduciendo drásticamente el riesgo de accesos no autorizados mediante fuerza bruta, password spraying o credential stuffing con credenciales de brechas de datos. Seguir los controles del CIS Benchmark nivel 1 y las directrices del NIST SP 800-63B convierte un sistema con configuración por defecto vulnerable en uno significativamente más resistente frente a los vectores de ataque más comunes.

Lo más valioso de este proceso es que el script se copia y ejecuta en menos de dos minutos, las protecciones son inmediatas y verificables con net accounts desde cualquier terminal, y la tarea programada que crea garantiza que el endurecimiento se mantenga aplicado automáticamente en cada arranque del equipo, incluso después de actualizaciones grandes de Windows. Es hardening de nivel empresarial al alcance de cualquier usuario de Windows 10 o Windows 11.

  • 🔒 La política de bloqueo a 5 intentos es la medida con mayor impacto contra fuerza bruta y password spraying, y la más fácil de aplicar con net accounts /lockoutthreshold:5
  • 🔒 Desactiva la cuenta Invitado siempre; no tiene ningún uso legítimo en un equipo moderno y es una superficie de ataque gratuita para cualquier atacante
  • 🔒 Verifica con net accounts tras ejecutar para confirmar que la política de seguridad local está activa con los parámetros correctos
  • 🔒 Combina con el hardening de Windows 11 para una protección completa del sistema operativo más allá de las cuentas
  • 🔒 La tarea programada se encarga de la revisión periódica: si un parche revierte la configuración, en el siguiente arranque el hardening vuelve a aplicarse automáticamente

Comparte este artículo con quien administre equipos Windows sin política de contraseñas ni bloqueo de cuentas activo. Un sistema sin la política de bloqueo por intentos es un objetivo trivial para cualquier script de fuerza bruta o de credential stuffing automatizado.


❓ Preguntas frecuentes sobre hardening de cuentas Windows

¿Es seguro ejecutar este script de hardening de cuentas Windows?

👉 Sí, si se ejecuta como administrador siguiendo las recomendaciones previas. Todos los comandos usan herramientas nativas de Windows documentadas oficialmente por Microsoft (net accounts, auditpol, reg add) y son completamente reversibles mediante el script de reversión incluido. Además, el script verifica automáticamente que existe al menos una cuenta admin alternativa antes de desactivar la cuenta Administrator integrada.

¿Funciona en Windows 10 y Windows 11?

👉 Sí. El script es compatible con Windows 10 y Windows 11. Los comandos net accounts, auditpol y reg add son herramientas nativas de la política de seguridad local disponibles en ambas versiones, así como el módulo ScheduledTasks de PowerShell utilizado para crear la tarea de inicio.

¿Necesito conocimientos avanzados para aplicar el hardening de cuentas?

👉 No para los pasos básicos. Basta con abrir PowerShell como administrador y pegar el script. Se recomienda leer las advertencias previas antes de ejecutar para evitar quedarse sin acceso al sistema en escenarios poco habituales (por ejemplo, equipos con una sola cuenta de administrador).

¿Puede bloquearse mi acceso al sistema?

👉 No de forma accidental. El script comprueba automáticamente cuántas cuentas de administrador activas hay antes de desactivar la cuenta Administrator integrada. Si solo hay una, omite ese paso y muestra un aviso. Aun así, se recomienda tener al menos una cuenta de administrador alternativa antes de ejecutar cualquier script que modifique la política de seguridad local.

¿Con qué frecuencia debo revisar la configuración?

👉 La tarea programada incluida en el script se encarga de reaplicar el hardening en cada arranque del equipo, por lo que la configuración se mantiene activa de forma automática. Aun así, se recomienda ejecutar manualmente net accounts cada 3-6 meses para verificar que los parámetros siguen vigentes y revisar el log en C:\Logs\hardening-cuentas.log.

¿El hardening de cuentas sustituye a un antivirus?

👉 No. Es una capa de seguridad específica para proteger las credenciales y la política de acceso del sistema. Debe combinarse con Windows Defender, parches de seguridad actualizados y buenas prácticas de gestión de contraseñas para una protección completa.

¿Qué diferencia hay entre el CIS Benchmark L1 y L2?

👉 El CIS Benchmark nivel 1 (L1) incluye controles de seguridad básicos recomendados para todos los sistemas: no degradan la funcionalidad normal y tienen alto impacto sobre la seguridad. El nivel 2 (L2) añade controles más restrictivos para entornos de alta seguridad que pueden afectar a la usabilidad. Este script aplica controles L1, adecuados tanto para equipos domésticos como corporativos.

¿La tarea programada ralentiza el inicio de Windows?

👉 No de forma perceptible. La tarea Hardening-Cuentas-Windows se ejecuta en segundo plano (modo oculto, sin ventana visible) tras el arranque y suele completarse en menos de 5 segundos. No bloquea el inicio de sesión ni el escritorio: el usuario puede empezar a trabajar de inmediato mientras el script reaplica las políticas de cuentas en background.

¿Cómo desactivo la tarea programada si quiero dejar de aplicar el hardening?

👉 Tienes dos opciones. La rápida: ejecuta el script de reversión incluido en esta guía, que elimina la tarea y revierte todos los cambios. La manual: abre el Programador de tareas (Win+R → taskschd.msc), localiza la tarea Hardening-Cuentas-Windows en la Biblioteca y pulsa Eliminar. A partir de ese momento, el endurecimiento ya no se reaplicará en el siguiente arranque.

Autor

Entusiasta de la seguridad informática con años de experiencia en protección de sistemas Windows y defensa contra amenazas digitales. Apasionado por la tecnología y la privacidad, comparto en este blog consejos prácticos, análisis detallados y guías paso a paso para que cualquier usuario pueda fortalecer la seguridad de su PC y su vida digital

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Tu puntuación: Útil

Subir