Título: [C#] Creacion de un Keylogger Publicado por: BigBear en 5 Septiembre 2014, 18:38 pm [Titulo] : Creacion de un Keylogger
[Lenguaje] : C# [Autor] : Doddy Hackman [Temario] -- =================-------- 0x01 : Introduccion 0x02 : Capturar Teclas 0x03 : Capturar el nombre de las ventanas activas 0x04 : Tomar un ScreenShot de la pantalla 0x05 : Subir logs a un servidor FTP 0x06 : Mandar logs por Mail 0x07 : Probando el programa -- =================-------- 0x01 : Introduccion Hola , hoy les traigo un manual sobre como hacer un keylogger en C# , en este manual les voy a enseñar o por lo menos lo voy a intentar sobre como capturar las teclas , nombres de las ventanas , tomar un screenshot de la pantalla para despues mandar los logs por Mail (usando Gmail) o subirlos a un servidor FTP. Empecemos ... Para empezar el keyloger tenemos que crear primero un nuevo proyecto de la siguiente forma : Archivo -> Nuevo -> Proyecto -> Elegimos Aplicacion de Windows Forms y le damos en aceptar Como en la siguiente imagen : (http://doddyhackman.webcindario.com/images/makeprokey.jpg) Una vez creado el proyecto vamos hacer el formulario completo para hacerlo de una para esto tienen que usar : Los primeros 6 botones con el texto del boton : Boton 1 - "Capture Keys ON" Boton 2 - "Capture Keys OFF" Boton 3 - "Capture Windows ON" Boton 4 - "Capture Windows OFF" Boton 5 - "Capture Screen ON" Boton 6 - "Capture Screen OFF" Ahora pongan 3 labels con el texto de "OFF" abajo de cada funcion : keys,windows,screen. Para terminar pongan dos botones finales con el siguiente texto : Boton 7 - "Send logs for FTP" Boton 8 - "Send logs for Mail" Quedando algo asi : (http://doddyhackman.webcindario.com/images/keyformnow.jpg) Si quieren pueden ponerle como texto "Keylogger in C#" al formulario como en la imagen pero no es importante. 0x02 : Capturar Teclas Para poder capturar teclas necesitan poner este "using" al inicio del codigo para poder usar GetAsyncKeyState() : Código
Despues lo mas importante es agregar estas lineas despues de los "using" : Código
Para poder escribir los logs en un html necesitan usar mi funcion traducida originalmente desde perl a python,ruby,delphi y finalmente C# : Código
Ahora tenemos que agregar el primer timer al formulario solo van al cuadro de herramientas y lo arrastran al formulario. Como va a ser el primero timer tendra el name de timer1 , entonces hacemos doble click timer1 para agregar el siguiente codigo. Código
Se deberia ver algo asi : (http://doddyhackman.webcindario.com/images/keyformkeys.jpg) Como ven en este codigo explico como detectar mayusculas y minisculas , ya sea por Shift o CapsLock este codigo las detecta igual y guardas las teclas un log html usando la funcion savefile(). Ahora le hacemos doble click al primer boton , es el que activa la captura de las teclas "Capture Keys ON" , para poder poner el siguiente codigo : Código
Con este codigo vamos a poder activar la captura de las teclas pero para poder desactivar el timer y que no siga capturando tenemos que hacer doble click en el segundo boton , el que dice "Capture Keys OFF" para poner este codigo : Código
Con eso ya estaria la captura de teclas mayusculas y minusculas. 0x03 : Capturar el nombre de las ventanas activas Para poder capturar el nombre de las ventanas activas tenemos que declarar las siguiente variables globales al inicio del codigo : Código
Estas lineas son necesarias para guardar los nombres de las ventanas y comparar para saber cual es la actual , para poder capturar el nombres de las ventanas activas tambien tenemos que agregar estas lineas al inicio del codigo : Código
Ahora tenemos que agregar el segundo timer al formulario , para hacerle doble click y agregar el siguiente codigo : Código
Como en la siguiente imagen : (http://doddyhackman.webcindario.com/images/keyformsven.jpg) Ahora hacemos doble click en el tercer boton que se llama "Capture Windows ON" para poner el siguiente codigo : Código
Despues de eso hacemos doble click en el cuarto boton que se llama "Capture Windows OFF" para poner el siguiente codigo : Código
Con esto terminariamos la funcion de capturar las ventanas activas. 0x04 : Tomar un ScreenShot de la pantalla Para esta funcion lo primero que hay que hacer es agregar esta linea al inicio del codigo : Código
Bien ahora para que el programa capture la pantalla cada cierto tiempo tenemos que agregar el tercer timer al formulario para ponerle como tiempo o Interval un valor de "10000" que serian 10 segundos porque el interval exige que el tiempo sea expresado en milisegundos. Despues de eso agregan esta funcion al inicio del codigo llamada screeshot() : Código
Para despues hacer doble click en el timer3 y poner el siguiente codigo : Código
Viendose asi en el codigo : (http://doddyhackman.webcindario.com/images/keyformscreen.jpg) Ahora la parte que me estaba olvidando hagan doble click en el quinto boton , el que tiene como texto "Capture Screen ON" y pongan el siguiente codigo : Código
Ahora hagan doble click en el sexto boton , el que tiene como texto "Capture Screen OFF" y pongan el siguiente codigo : Código
Con esto ya estaria terminada la parte de la captura de pantalla cada cierto tiempo , en este caso son cada 10 segundos. 0x05 : Subir logs a un servidor FTP Bien , ahora para poder enviar logs por FTP necesitamos agregar estas lineas al inicio del codigo : Código
Despues de uso tambien tenemos que agregar esta funcion al inicio del codigo que sirve para subir archivos a un servidor FTP marcado : Código
Ahora vamos hacer doble click sobre el septimo boton que tiene como texto "Send logs for FTP" para poner el siguiente codigo : Código
Como ven tenemos "localhost" como servidor FTP y "admin" como usuario y password del servidor FTP , al final de la funcion tenemos "logs.html" que son los logs creados por el keylogger y listos para enviar al servidor FTP correspondiente. Para probarlos en su servidor FTP tienen que cambiar los valores de servidor , usuario y password. Pasemos al siguiente punto 0x06 : Mandar logs por Mail Ahora vamos a ver como enviar los logs por mail , para poder hacerlo necesitan una cuenta en Gmail , si quieren registrarse en Gmail sin dar el telefono tienen que registrarte poniendo como direccion de correo alternativa una que sea con "@gmail.com" , en mi caso tambien puse la nacionalidad de Estados Unidos , no se si hace falta pero yo lo hice igual y safe de que me pidieran el telefono (no lo voy a dar ni muerto xD). Bien para poder enviar correos usando Gmail necesitamos poner esta linea al inicio del codigo : Código
Despues tenemos que poner esta funcion al inicio del codigo que es la que uso para enviar Mails a Gmail : Código
Despues de eso hacemos doble click sobre el octavo y ultimo boton que tiene como texto "Send logs for Mail" para poner el siguiente codigo : Código
Como ven en la funcion tenemos como argumentos , el correo y password de nuestra cuenta gmail que usamos para enviar los logs , despues tenemos el correo donde van a llegar los logs , despues tenemos el titulo del mensaje que es "Aca van los logs" y el contenido del mensaje donde tenemos "Disfruta los logs" y para terminar tenemos la ruta de los logs del keylogger que es "logs.html". Con eso pasamos el ultimo punto. 0x07 : Probando el programa Bueno , creo que con esto cubrimos lo que es un keylogger basico (eso creo) , para probar solo tenemos que activar la captura de teclas , captura de ventanas y captura de screenshots desde su boton correspondiente , si queremos parar cierta funcion solo tenemos que hacer click sobre el boton de abajo correspondiente. Se les deberia ver tal cual lo hicimos en el primer punto : (http://doddyhackman.webcindario.com/images/keyformnow.jpg) Para mandar los logs por FTP solo hagan click en el boton "Send logs for FTP" y despues de unos segundos tendran subidos los logs al servidor FTP que marcaron en la funcion del punto anterior. En mi servidor FTP local se puede ver como se subieron los logs : logs.html (http://doddyhackman.webcindario.com/images/keyformtestftp.jpg) Lo mismo con el envio de logs por Mail con la diferencia de que ahora tienen que hacer click en el boton "Send logs for Mail" les dejo un ejemplo donde envio los logs a mi correo en hotmail : (http://doddyhackman.webcindario.com/images/keyformtestmail.jpg) Si quieren pueden ver los logs en formato HTML , en mi caso podre leer algo como esto en Firefox : (http://doddyhackman.webcindario.com/images/keyformkeytestfinal.jpg) Creo que eso seria todo ... --========-- The End ? --========-- Version PDF (http://doddyhackman.webcindario.com/descargas/keylogger_csharp.pdf). Version VideoTutorial tqgzL5rKkHA Eso es todo. Título: Re: [C#] Creacion de un Keylogger Publicado por: XresH en 13 Septiembre 2014, 18:30 pm Esta muy lindo el codigo, buen trabajo, sino te molesta tenia pensado en un futuro realizar un proyecto paralelo en Vb.NET no se si alguien del foro ya lo hizo?
Obvio basándome en tu idea y con los respectivos creditos, exponiendo el code para el foro. Saludos. |