Keyloggers ¿Qué son y cómo evitarlos?

Un keylogger es una herramienta que sirve para registrar todas las teclas que pulsamos en un PC.

Cómo todo, tiene usos buenos y no tan buenos.

Podemos tener controlados a que contenidos acceden los peques de la casa y con quien, como y cuando se comunican.

Tambien existe un lado "oscuro". Los keylogger los usan los chicos "malos/malotes" para robar contraseñas de acceso a foros, cuentas de correo, cuentas de paypal, y más recientemente robar contraseñas de los MMOs de moda para poder de esta forma entrar en las cuentas, "saquear" el personaje y vender el "oro" por dinero real.

En esta primera entrega veremos como funcionan y en sucesivas entregas veremos como evitarlos.

Para esta entrega nos hemos creado un "keylogger" llamado Pandora.

Pandora es sumamente simple, pero canta mas que una almeja en una pescadería (esto quiere decir que es detectado por cualquier antivirus)

Su funcionamiento es la mar de simple:

  • Se ejecuta Pandora y se queda en memoria
  • Pandora solo registra las teclas que se pulsen dentro del bloc de notas (como véis esto no tiene ningún sentido, pero para hacernos una idea ya nos sirve)
  • Una vez que se cierra el bloc de notas (se haya grabado o no el archivo que estabamos escribiendo) se mira si se han escrito una serie de "palabras  mágicas" (password, clave, yahoo, gmail, etc….)
  • Si se ha escrito alguna de dichas palabras se enviará un correo electronico a una cierta dirección de correo con un fichero adjunto donde se podrá ver todo lo que se ha escrito en el bloc de notas

Todo esto, claro, se hace sin que el usuario del PC se percate ni se de cuenta.

 

En imagenes:

Con Pandora ejecutándose abrimos el bloc de notas y escribimos cosas:

 

Al cerrar el bloc de notas, se envía de forma "silenciosa" un correo electrónico:

Y cómo podéis ver dicho correo electrónico tiene adjunto un fichero:


(haz click para ampliar)

Si abrimos dicho fichero, oh sorpresa:

Tal y como veis, el archivo que se adjunta no es exactamente lo mismo que se ha escrito, pero eso es porque Pandora es realmente simple y para nada refinado. (cosa que por otro lado tampoco es nuestra intención)

 

Bien, ahora un poco de la parte técnica.

Normalmente los keyloggers utilizan una técnica llamada "hooking"

http://en.wikipedia.org/wiki/Hooking 

De hecho, el código que está en la Wikipedia es el que se ha usado en Pandora.

Un "Hook" (gancho en inglés) es eso, un "gancho" que de algún modo intercepta una serie de eventos que se producen a nivel de sistema operativo, en este caso el evento WM_KEYDOWN

Cada vez que se genera un evento de este tipo (WM_KEYDOWN en nuestro caso) nuestro "gancho" se entera y puede saber que tecla se pulsó. Almacenando todas las teclas pulsadas se podrá saber que ha "escrito" un usuario.

 

Bien, ahora ya sabemos cómo funcionan. En próximas entregas veremos como es posible evitarlos

Saludos.
mov eax,ollydbg; Int 13h

 

Descargar código fuente del "Hooking"  Pandora
(3 KB. Visual Studio 2008)  

 

Nota del autor: El código fuente se sumistra "tal y como está". La rutina de Hook es pública y se puede consultar en la Wikipedia. La rutina de envío de e-mails tambien es pública y se puede consultar en la MSDN. Por lo tanto agradecería que no me pidiésis versiones "especiales" de este código para tal o cual programa. Así que no me seais lamers y no tireis por esa via 🙂

Mi intención es enseñar como funcionan estos temas para luego tomar las contramedidas oportunas.