Impacket para Pentesters: Técnicas de Cambio de Contraseña
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Este artículo explica cómo las configuraciones incorrectas de Active Directory pueden ser explotadas para restablecer de manera forzada las contraseñas de usuario con el kit de herramientas Impacket. Se centra en la utilidad impacket-changepasswd , que puede aprovechar el ACE de Restablecer Contraseña para permitir la toma del control de cuentas. La técnica admite varios protocolos, incluidos SMB-SAMR, RPC-SAMR, LDAP y Kerberos.
Investigación
El informe presenta un escenario de laboratorio en el que a un usuario se le otorgan derechos de Restablecer Contraseña sobre otro objeto de cuenta. Abarca varios enfoques de autenticación, incluidos credenciales en texto claro, Pass-the-Hash, Pass-the-Key y uso de caché TGT de Kerberos, para manipular contraseñas de cuentas en diferentes protocolos.
Mitigación
Los defensores deben auditar rutinariamente los ACL de Active Directory con herramientas como BloodHound para identificar derechos de Restablecer Contraseña excesivamente permisivos. Aplicar un modelo de administración por niveles y utilizar el grupo de seguridad de Usuarios Protegidos puede reducir significativamente la exposición. También se recomienda la aplicación de la firma LDAP y el despliegue de Credential Guard.
Respuesta
Si se detecta actividad sospechosa, los equipos de seguridad deben investigar los IDs de Evento de Windows 4723, 4724, 4738, 4771, y 5136. Los analistas deben confirmar si el restablecimiento de la contraseña fue autorizado y revisar el entorno en busca de tráfico SAMR inusual o cambios en el directorio LDAP. Las acciones inmediatas deben incluir la auditoría de permisos de la cuenta afectada y la rotación de credenciales para cualquier usuario administrativo potencialmente comprometido.
Flujo de Ataque
Todavía estamos actualizando esta parte. Regístrate para recibir notificaciones
NotifícameDetecciones
Uso probable de herramientas de hackeo de Windows [Parte1] (vía cmdline)
Ver
Uso probable de herramientas de hackeo de Windows [Parte3] (vía file_event)
Ver
Detección de manipulación no autorizada de contraseñas de Active Directory [Log de Eventos de Seguridad de Microsoft Windows]
Ver
Ejecución de Simulación
Prerrequisito: La Verificación Previa de Telemetría y Línea Base debe haber pasado.
Fundamento: Esta sección detalla la ejecución precisa de la técnica del adversario (TTP) diseñada para activar la regla de detección. Los comandos y la narrativa deben reflejar directamente los TTP identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección. Ejemplos abstractos o no relacionados conducirán a un diagnóstico erróneo.
-
Narrativa & Comandos del Ataque: Un adversario ha comprometido con éxito una cuenta de usuario con permisos delegados o ha escalado privilegios a un nivel de Administrador de Dominio. Para asegurar la persistencia a largo plazo y evitar la detección durante una fase posterior de la operación, el atacante decide restablecer la contraseña de una cuenta de servicio conocida. Utilizando herramientas nativas de PowerShell (
Set-ADAccountPasswordornet user), el atacante intenta cambiar la contraseña deService_SVC. Esta acción es una técnica clásica de «Living off the Land», diseñada para mezclarse con tareas administrativas rutinarias, sin embargo, provoca IDs de Eventos de Seguridad de Windows específicos (4724/4738) que la regla de detección está diseñada para captar. -
Script de Prueba de Regresión:
# Script de Simulación: Restablecimiento de Contraseña vía PowerShell # Nota: Esto debe ejecutarse en un entorno de laboratorio controlado con los permisos apropiados. $TargetUser = "Service_SVC" Write-Host "[*] Verificando si el usuario objetivo existe..." -ForegroundColor Cyan if (Get-ADUser -Filter "SamAccountName -eq '$TargetUser'") { Write-Host "[+] Usuario objetivo $TargetUser encontrado. Continuando con la simulación de restablecimiento de contraseña..." -ForegroundColor Green # Generando Evento ID 4724 / 4738 try { $NewPassword = ConvertTo-SecureString "SimulatedPass123!" -AsPlainText -Force Set-ADAccountPassword -Identity $TargetUser -NewPassword $NewPassword Write-Host "[+] ÉXITO: Restablecimiento de contraseña activado. Verifique los Registros de Seguridad para Evento ID 4724/4738." -ForegroundColor Green } catch { Write-Host "[-] ERROR: No se pudo restablecer la contraseña. Asegúrese de estar ejecutando como usuario Admin/Autorizado." -ForegroundColor Red Write-Error $_ } } else { Write-Host "[-] ERROR: Usuario objetivo $TargetUser no encontrado. Por favor, cree el usuario primero." -ForegroundColor Red } -
Comandos de Limpieza:
# Script de Limpieza: Restaurar estado original $TargetUser = "Service_SVC" $OriginalPassword = ConvertTo-SecureString "Original_Safe_Pass_2025!" -AsPlainText -Force Write-Host "[*] Restaurando contraseña original para $TargetUser..." -ForegroundColor Cyan Set-ADAccountPassword -Identity $TargetUser -NewPassword $OriginalPassword Write-Host "[+] Limpieza completa." -ForegroundColor Green