Unlock Screen ¿Qué hay detrás?

Aquí os dejo acceso a una explicación más simple: Hackplayers

Dando una vuelta a twitter, un mensaje me llamo la atención, trataba de ensamblador, librerías de sistema, acceso a memoria… ¿A quien no le podría gustar algo así? Pues, todo eso ha derivado en otra interpretación y una aplicación pero en castellano.

 Windows, utiliza LSASS.exe, para validar las contraseñas de inicio de sesión, concretamente una de las funciones internas, comprueba si la contraseña introducida es correcta, o no. ¿Ya imaginas por donde van los tiros?

¡A currar!

Comienzo función

Comienzo función

Cargamos la librería “msv1_0.dll” en IDA, para buscar la zona en la que podremos encontrar las funciones, se trata de buscar: “MsvpPasswrodValidate”, una vez localizado, hacemos doble click. El programa nos indica que la función se encuentra en: 77C497D3. Lo tuve que buscar, debido a que la documentación que había en ingles, lógicamente tenía otra dirección, al igual que esta sólo sirve para Windows XP (SP3).

Zona hacía el salto

Zona hacía el salto

Si vemos el flujo en la imagen, termina en 77C49865, hay una comprobación, y nos puede validar, o echar y mostrar un mensaje de error. Hay dos opciones, podemos realizar un parcheo aquí, simplemente poniendo NOP (90), o un par de líneas más abajo, mover un 1, a AL. Concretamente hay que cambiar un XOR AL, AL, por un MOV AL,1. En la línea: 7749878

 ¿Qué hace la aplicación?

 Primero, necesita establecerse unos permisos de depuración de programas, ¿el motivo?, LSASS.exe, es una aplicación cargada por el proceso SYSTEM, no se puede tocar la memoria de este proceso, salvo si estuvieses depurando. Realmente, ni se puede leer, ni escribir, ni hacer NADA. Es un proceso privilegiado, por razones obvias.

 El problema, es que para tener premisos de depuración, la aplicación debe ejecutarse como administrador. No podía ser todo fácil y bonito. Los permisos concreamente son: “SeDebugPrivilege”.

Sin modificar hace, que AL valga 0 al retornar

Sin modificar hace, que AL valga 0 al retornar

Lo siguiente es comprobar que en la posición que quieres sobreescribir, está la cadena “32C0”, que representa a XOR AL,AL. Esto, se realiza por protección del equipo, si hay cualquier otra cosa, algo está fallando, bien la librería no es correcta,  no es administrador, etc, etc, etc

 Una vez, ha pasado la verificación, procedemos cambiar los permisos para dar a esa zona permisos de lectura y escritura, realmente estos permisos los asigno lo primero, antes de intentar leer la zona. Para hacer esto, utilizo VirtualProtectEx

Salgo de la función con AL, valiendo 1

Salgo de la función con AL, valiendo 1

Por último, sólo queda sobreescribir la zona con los valores “MOV AL, 1″, “B001”, con esta última línea, salta toda la comprobación, ya que la función devuelve 1, que quiere decir, que ha comprobado que el password es correcto. Las pruebas han sido realizadas en un equipo local, de casa, normalito, no sobre un dominio, la leyenda cuenta que debería funcionar, pero lo desconozco.

He comprobado que funciona utilizando escritorio remoto.

 Si quieres probar la aplicación la puesdes descargar de abajo, no recomiendo utilizarla en un entorno empresarial, por las consecuencias que puede tener en la seguridad de la infraestructura. Como en otros post, esto no es para que decidas ir haciendo el capullo, ni para cometer ningún delito, ya sabes tienes que ser bueno, ducharte, y lavarte la boca.

 Descargar

Las dudas, como siempre a los comentarios. Si por el contrario quieres invitarme a cenar, hazlo mejor por privado.

 Nota: Ya existe en Metasploit, una implementación, y todo el proceso está previamente documentado, es decir, no he inventado la pólvora.

Referencias:

Mi seguridad ¿En manos de quién?

Al igual que ocurría con la canción de Carlos Baute, creo que la seguridad está colgando en tus manos. Otra vez, han sido publicadas una serie de contraseñas. Esta vez, el afectado ha sido “Linkedin”.

Seguramente alguno más es un paranoico de la seguridad, en caso contrario, no estaríamos todo el día refrescando Google reader. ;) El problema llega cuando el nudo de seguridad –la línea de vida en escalada- no depende de ti, y tienes que confiar en un tercero. ¿Tus datos están seguros? ¿ Confías plenamente en ese tercero?

Da exactamente igual el tipo de contraseña que estés utilizando, ya puede ser la más compleja del mundo. Olvídate de reutilizarla en ningún otro servicio. Muchos de los que utilizas de forma habitual, guardan aún las contraseñas utilizando métodos inseguros, o ineficientes. Por lo que incluso una contraseña compleja, puede ser una potencial victima. -¡¡Desaconsejo totalmente el uso de contraseñas débiles, con la excusa!!-

Lleva más de un año funcionando aplicaciones como PastebinLeaks, encargadas de buscar, al igual que la araña de Google, cualquier tipo de filtración que pueda producirse en esta red. En ocasiones podremos encontrar datos recopilados de “Bots, virus, keyloggers”, pero también de muchas páginas web. También han publicado la herramienta: Pastemon. Con el mismo propósito que la anterior.

En los últimos meses por citar algunos ejemplos hemos visto leaks de:

 -Twitter 55.000 cuentas -según he leído, no fue su culpa-
-Linkedin 6.5 Millones
-Rootkit.com 81.430 cuentas
-Sony 37.572 cuentas

****Actualizado***

-Yahoo Voice: 450.000 – Nota informativa

*** RST ***

¿Y tu como defiendes tus contraseñas?
Nota: No quiero ahora generar un campo de desconfianza, e inseguridad, cientos de páginas web, tratan con la mayor seguridad tus datos, ya sean contraseñas o datos personales. Pero lo malo, siempre nos llama más la atención.