Keylogger multiplataforma

Estoy buscando formas de ver eventos de mouse y teclado en Windows, Linux y Mac desde Python.

Mi aplicación es un rastreador de tiempo. No estoy investigando el evento, solo registro el momento en que sucede. Si no hay eventos durante un tiempo determinado, digamos 10 minutos, supongo que el usuario se ha ido y detiene el proyecto actual.

Cuando el usuario regresa (los eventos vuelven a aparecer), espero un momento (para que esto no sea activado por el equipo de limpieza o sus mascotas o un terremoto). Si los eventos persisten durante un período de tiempo más prolongado, asumo que el usuario ha regresado y aparece una ventana pequeña e inactiva donde puede elegir agregar el intervalo de tiempo para “interrumpir”, el proyecto actual (reunión, etc.) o Un proyecto diferente.

He resuelto el keylogger para Windows usando el pyHook .

En Linux, he encontrado una solución pero no me gusta: puedo ver todos los nodos del dispositivo en / etc / input y actualizar una marca de tiempo en algún lugar de / var o / tmp cada vez que veo un evento. Hay dos inconvenientes: 1. No puedo saber si el evento es del usuario que está ejecutando el seguimiento de tiempo y 2. este pequeño progtwig debe ejecutarse como root (no es bueno).

En Mac, no tengo idea, todavía.

Preguntas:

  1. ¿Hay una mejor manera de saber si el usuario está creando eventos que viendo los dispositivos de eventos en Linux?

  2. ¿Algún indicador de cómo hacer eso en una Mac?

Hay un par de aplicaciones de código abierto que pueden darle algunos consejos:

  • PyKeylogger es un keylogger de Python para Windows y Linux
  • logKext es un keylogger c ++ para mac

Hay un gran artículo sobre cómo escribir los keyloggers del kernel de Linux
http://www.phrack.com/issues.html?issue=59&id=14#article

Si está intentando ejecutar un honeypot, entonces definitivamente intente con Sebek:
https://projects.honeynet.org/sebek/

Sebek es una herramienta de captura de datos diseñada para capturar las actividades del atacante en un honeypot, sin que el atacante lo sepa (con suerte). Tiene dos componentes. El primero es un cliente que se ejecuta en los honeypots, su propósito es capturar todas las actividades de los atacantes (pulsaciones de teclas, cargas de archivos, contraseñas) y luego enviar de forma encubierta los datos al servidor. El segundo componente es el servidor que recostack los datos de los honeypots. El servidor normalmente se ejecuta en la puerta de enlace Honeywall, pero también puede ejecutarse de forma independiente. Para obtener más información sobre Sebek, visite http://www.honeynet.org/tools/sebek

Pero, si prefieres seguir la ruta del script para niños / no aprender, prueba las siguientes aplicaciones:

LINUX
http://sourceforge.net/projects/lkl/

VENTANAS
http://www.rohos.com/kid-logger/
http://code.google.com/p/freelogger/


CONSEJO: es mejor que escriba el suyo para fines de aprendizaje y lucro.