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?