1. Descripción técnica
Default Credentials son cuentas o contraseñas iniciales que permanecen activas después del despliegue. Pueden ser valores del proveedor, combinaciones creadas automáticamente o secretos fijos incluidos por el desarrollador.
El problema no es que una contraseña sea conocida en abstracto, sino que el sistema desplegado todavía la acepte para una cuenta con acceso real. Se diferencia de Password Guessing porque aquí existe un valor predeterminado asociado al producto o a su proceso de creación.
2. Impacto y condiciones
Si la interfaz es alcanzable y la cuenta conserva permisos, la autenticación puede derivar en acceso administrativo, exposición de datos o funciones de ejecución. Una coincidencia en un diccionario sólo confirma el fallo cuando la aplicación acepta el par.
3. Validación y detección
Hay que identificar el producto y su procedimiento de instalación, revisar documentación o código y probar los valores de forma controlada. También deben buscarse cuentas iniciales que no obligan a cambiar la contraseña y secretos iguales entre despliegues.
4. Explotación documentada en los writeups
4.1 145-invernadero
Hydra encontró admin:admin123 en el formulario. La revisión posterior de app.py confirmó que la aplicación creaba esa cuenta con el valor fijo cuando no existía, por lo que la evidencia no queda limitada a una contraseña simplemente débil.
5. Mitigación
- Generar un secreto único durante la instalación o exigir su elección en el primer acceso.
- Forzar el cambio de contraseñas iniciales antes de habilitar funciones sensibles.
- Desactivar cuentas predeterminadas que no sean necesarias.
- Evitar secretos entrantes hardcodeados y revisar despliegues existentes.
6. Clasificación
- CWE: CWE-798, Use of Hard-coded Credentials.
- Vector: autenticación con una cuenta inicial que conserva su secreto predeterminado.
- Impacto: acceso con los permisos de la cuenta afectada.