Quiero empezar a desarrollar un stealer en C# o algun lenguaje similar.
Cuando una persona ingresa a un sitio web con autenticación (por ejemplo Hotmail, Gmail, etc), luego de ingresar las credenciales (usuario y password) Internet Explorer ofrece guardar el password para no tener que volver a ingresarlo en una futura visita.
Obviamente ese password se guarda localmente en la PC pudiendo ser accesible. Lo que yo quiero hacer es revelar esas contraseñas con C#.
Hay un programa que lo hace, y si bien es freeware, su codigo no es abierto. El programa es IE PassView (http://www.nirsoft.net/utils/internet_explorer_password.html).
Estuve leyendo como se guardan las contraseñas en Internet Explorer 7 o superiores y es de la siguiente forma:
1) Se usa la URL del sitio web como clave de encripción (EncryptionKey)
2) Se obtiene un registro de esa llave: RecordKey = SHA(EncryptionKey)
3) Se calcula el checksum del RecordKey para asegurar la integridad de la llave de registro: (la integridad de los datos reales será garantizada por DPAPI): RecordKeyCrc = CRC(RecordKey)
4) Se encriptan el password con la llave de encripción: EncryptedData = DPAPI_Encrypt(Password, EncryptionKey)
5) Se guarda el RecordKeyCrc + RecordKey + EncryptedData en el registro, mas precisamente en HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2
¿Alguno tiene algún código ya hecho para no arrancar desde cero?