Awesome Windows Domain Hardening 
Una lista curada de increíbles técnicas de endurecimiento (hardening) de seguridad para Windows.
Creada por gepeto42 y PaulWebSec, pero muy inspirada en la investigación de PyroTek3.
Resumen
Este documento resume la información relacionada con la charla de Pyrotek y Harmj0y en DerbyCon llamada "111 Attacking EvilCorp Anatomy of a Corporate Hack". El video y las diapositivas están disponibles abajo.
También incorpora técnicas de endurecimiento necesarias para prevenir otros ataques, incluyendo técnicas discutidas por gepeto42 y joeynoname durante su charla en THOTCON 0x7.
¿Falta algo? Crea un Pull Request y añádelo.
Punto de entrada inicial
- Ningún esfuerzo de endurecimiento debería hacerse a costa de actualizar los sistemas operativos.
- Desplegar EMET en las estaciones de trabajo (Fin de vida en julio de 2018 - Considera mantener EMET para Windows 7, pero prioriza las actualizaciones a Windows 10 y Edge).
- Usar AppLocker para bloquear la ejecución de contenido ejecutable en ubicaciones de usuario (directorio personal, ruta de perfil, temp, etc.).
- ¿Endurecimiento contra ataques DMA? Aquí tienes y un artículo interesante de Synacktiv sobre ataques DMA
- Gestionar la ejecución de PowerShell mediante Applocker o el modo de lenguaje restringido.
- Habilitar el registro de PowerShell (v3+) y el registro de procesos de comandos.
- Bloquear macros de Office (Windows y Mac) en contenido descargado de Internet.
- Desplegar herramientas de seguridad que monitoricen comportamientos sospechosos. Considera usar WEF para reenviar solo eventos interesantes a tu SIEM o sistema de registro.
- Limitar capacidades bloqueando/restringiendo archivos adjuntos vía correo electrónico/descarga:
- Extensiones de ejecutables:
- (ade, adp, ani, bas, bat, chm, cmd, com, cpl,
crt, hlp, ht, hta, inf, ins, isp, job, js, jse, lnk, mda, mdb,
mde, mdz, msc, msi, msp, mst, pcd, pif, reg, scr, sct, shs,
url, vb, vbe, vbs, wsc, wsf, wsh, exe, pif, etc.)
- Archivos de Office que soporten macros (docm, xlsm, pptm, etc.)
- Asegurarse de que estos tipos de archivo estén bloqueados.
- Bloquear extensiones de archivo de Excel olvidadas/sin usar: IQY, SLK
- Cambiar el programa predeterminado para cualquier cosa que se abra con scripts de Windows a notepad (¡probar primero!)
- bat, js, jse, vbe, vbs, wsf, wsh, hta, vbs, etc.
- GPO: Configuración de usuario -> Preferencias -> Configuración del Panel de control -> Opciones de carpeta -> Abrir con
- Acción: Reemplazar
- Extensión de archivo: (extensión)
- Programa asociado: %windir%\system32\notepad.exe
- Establecer como predeterminado: Habilitado.
- Prevenir la activación de paquetes OLE en Office con la configuración de registro PackagerPrompt
Reconocimiento
- Desplegar Windows 10 y limitar la enumeración de grupos locales.
- Limitar la comunicación entre estaciones de trabajo.
- Aumentar la seguridad de las GPO sensibles.
- Evaluar el despliegue de analítica de comportamiento (Microsoft ATA).
Prevención de BloodHound:
- Usar NetCease para prevenir la enumeración de sesiones sin privilegios.
- Usar Samri10 para prevenir la recolección de administradores locales sin privilegios (esta corrección ya existe en Windows 10 1607 y superior).
Movimiento lateral
- Configurar GPO para prevenir que las cuentas locales se autentiquen en la red (KB2871997).
Además de esta KB, el artículo de Countercept recomienda otros dos cambios en el registro:
- Establecer
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\TokenLeakDetectDelaySecs = 30. Esto borrará las credenciales de los usuarios que hayan cerrado sesión después de 30 segundos (imitando el comportamiento de Windows 8.1+).
- Establecer
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\WDigest\UseLogonCredential = 0. Esto evitará que las credenciales Wdigest se almacenen en memoria, de nuevo como es el valor predeterminado en Windows 8.1+.
- Asegurarse de que las contraseñas de las cuentas de administrador local se cambien automáticamente (Microsoft LAPS) y eliminar cuentas de administrador local adicionales.
- Limitar la comunicación entre estaciones de trabajo (Firewall de Windows).
- Probar psexec con credenciales válidas entre dos estaciones de trabajo. Si funciona, tienes un problema de movimiento lateral.
Escalada de privilegios
- Eliminar archivos con contraseñas en SYSVOL (incluido GPP).
- Asegurarse de que los administradores no inicien sesión en sistemas no confiables (estaciones de trabajo normales) configurando asignaciones de derechos de usuario DENEGAR con GPOs.
- Proporcionar Estaciones de Trabajo de Acceso Privilegiado o PAWs para todo trabajo altamente privilegiado. Estas nunca deberían tener acceso a Internet.
- Usar Cuentas de Servicio Administradas para las cuentas de servicio cuando sea posible (FGPP).
- Para sistemas que no soporten Cuentas de Servicio Administradas, desplegar una Política de Contraseñas de Grano Fino para asegurar que las contraseñas sean de más de 32 caracteres.
- Asegurarse de que todos los equipos hablen NTLMv2 y Kerberos, y denegar LM/NTLMv1.