Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Mr.Blue en 2 Marzo 2011, 19:04 pm



Título: pf=fopen("ftp://ftp.byethost5.com/arch.txt","a+"); Es posible?
Publicado por: Mr.Blue en 2 Marzo 2011, 19:04 pm
estoy tratando de crear una conexion en base a un codigo que vi por aca.
La idea es crear un archivo en un ftp.
Lo primero que ago es crear la conexion
Código
  1. HINTERNET Open=InternetOpen("Explorador",0,NULL,NULL,0);
  2.    if(Open==NULL){
  3.       printf("[+]Error al abrir la conexion\n");
  4.  
  5.       return -1;
  6.       }
  7.    printf("[+]Abriendo conexion..");
  8.  
  9.  
  10.    HINTERNET Connect=InternetConnect(Open,"ftp.byethost5.com",INTERNET_DEFAULT_FTP_PORT,"Usuario","Password",INTERNET_SERVICE_FTP,0,0);
  11.    if(Connect==NULL){
  12.       InternetCloseHandle(Open);
  13.       printf("[+]Error al conectar con el servidor\n");
  14.       main();
  15.  
  16.              }
  17.  
  18.    printf("-OK- \n[+]Conexion establecida...\n");
           
Luego creo el archivo
 
Código
  1. FILE *pf;
  2. pf=fopen("ftp://ftp.byethost5.com/arch.txt","a+");
  3.  
  4.               if(pf==NULL)
  5.               {
  6.                   puts ("[+]Error al escribir/crear archivo... no se puedo abrir\n");
  7.               }

Salida
Citar
  • Abriendo conexion..-OK-
  • Conexion establecida...
  • Error al escribir/crear archivo... no se puedo abrir
Es posblie realizar esto?, alguna sugerencia, o error en el codigo?


Título: Re: pf=fopen("ftp://ftp.byethost5.com/arch.txt","a+"); Es posible?
Publicado por: Garfield07 en 2 Marzo 2011, 19:31 pm
Empieza usando las funciones open () y fopen () para el archivo. Luego para conectar... socket (), connect (), send () y recv ()...


Título: Re: pf=fopen("ftp://ftp.byethost5.com/arch.txt","a+"); Es posible?
Publicado por: Mr.Blue en 2 Marzo 2011, 21:11 pm
No entendi :xD, por que deberia usar mas funciones?
si establesco una conexion a mi servidor ftp, deberia poder crear un archivo en el directorio que marco
Citar
pf=fopen("ftp://ftp.byethost5.com/arch.txt","a+");
mientras este logeado.
por que utilizar send y recv?
osea en todo caso usaria send para enviar al ftp, pero estoy creando un archivo.txt en modo a+.

Cual seria la logica o los items para poder subir en tiempo real el archivo.txt?

Con esto de tiempo real me refiero...
Un ejemplo seria con un keylogger  donde las capturas podria guardarlas en un .txt, pero en vez de guardarlo en la pc victima quiero guardarlo en un ftp.


Título: Re: pf=fopen("ftp://ftp.byethost5.com/arch.txt","a+"); Es posible?
Publicado por: Arkangel_0x7C5 en 2 Marzo 2011, 22:00 pm
No entendi :xD, por que deberia usar mas funciones?
si establesco una conexion a mi servidor ftp, deberia poder crear un archivo en el directorio que marcomientras este logeado.
por que utilizar send y recv?
osea en todo caso usaria send para enviar al ftp, pero estoy creando un archivo.txt en modo a+.

Cual seria la logica o los items para poder subir en tiempo real el archivo.txt?

Con esto de tiempo real me refiero...
Un ejemplo seria con un keylogger  donde las capturas podria guardarlas en un .txt, pero en vez de guardarlo en la pc victima quiero guardarlo en un ftp.

no puedes hacerlo asi, porque FTP es ningun sistema de ficheros en red, con carpetas en red quizas pudiera funcionar, o con nfs. pero no con ftp

Tendrias que implementar el cliente FTP con send y recv.
Y el protocolo no permite el aceso aleatorio. O descargas el fichero entero o lo subes entero


Título: Re: pf=fopen("ftp://ftp.byethost5.com/arch.txt","a+"); Es posible?
Publicado por: Gunit en 3 Marzo 2011, 14:45 pm
No es posible..
Deberias abrir un socket a ftp.byethost5.com desde el puerto 21,  y de alli hacer send con comandos FTP.. para descargar el archivo y asi modificarlo localmente..

Para ver cuales son los comandos, logueate en el servidor FTP desde consola i haz un HELP.

Mirate estos ejemplos de FTP desde C++: http://www.example-code.com/vcpp/ftp.asp (http://www.example-code.com/vcpp/ftp.asp)

Saludos  ;-)


Título: Re: pf=fopen("ftp://ftp.byethost5.com/arch.txt","a+"); Es posible?
Publicado por: Arkangel_0x7C5 en 3 Marzo 2011, 16:36 pm
bueno, seria posible si antes de abrir el archivo conectaras una unidad de red, eso te permitiria acceder a ese ftp como si fuera el mismo sistema de ficheros.....


Título: Re: pf=fopen("ftp://ftp.byethost5.com/arch.txt","a+"); Es posible?
Publicado por: Garfield07 en 3 Marzo 2011, 18:47 pm
Veo que no vas muy lejos en tema de sockets...
http://wiki.elhacker.net/programacion/cc/articulos/introducion-a-los-sockets-en-ansi-c

Un saludo!
Sagrini


Título: Re: pf=fopen("ftp://ftp.byethost5.com/arch.txt","a+"); Es posible?
Publicado por: Mr.Blue en 4 Marzo 2011, 04:19 am
Mas o menos algo de socket me acuerdo pero lo unico que logre hacer fue un chat que andaba medio pelo jaja.
lo que no entiendo aun es como relacionar con la direccion ftp
Ej
host=gethostbyname("localhost");
esta linea resuelve el dominio en este caso local host
ahora tendria que cambiar por
host=gethostbyname("ftp://ftp.blabla.com"); ? y cambiar el puerto a 21?

Pero sigo con las dudas porq si esto es la parte de servidor send, por parte cliente que recive? si tengo q enviar un archivo .txt como lo ago?

En si como interactuo con el servidor ftp mediante sockt para enviar un txt.

PD. De todas formas resolvi ya la duda inicial, de otra manera, pero me quede con esto de sockt y ftp XD

PD2. http://www.example-code.com/vcpp/ftp.asp no entiendo el codigo jajajaja, que verguenza, no utiliza las api de windows. Tendira q romperme un rato largo la cabeza para enterder :laugh:


Título: Re: pf=fopen("ftp://ftp.byethost5.com/arch.txt","a+"); Es posible?
Publicado por: BlackZeroX en 4 Marzo 2011, 07:00 am
Tendrias que implementar el cliente FTP con send y recv.
Y el protocolo no permite el aceso aleatorio. O descargas el fichero entero o lo subes entero

En FTP, No es nesesario descargar TODO (para leer rangos de bytes) pero si e eviarlo enviarlo

Dulces Lunas!ˇ.


Título: Re: pf=fopen("ftp://ftp.byethost5.com/arch.txt","a+"); Es posible?
Publicado por: Gunit en 4 Marzo 2011, 13:26 pm
Ej
host=gethostbyname("localhost");
esta linea resuelve el dominio en este caso local host
ahora tendria que cambiar por
host=gethostbyname("ftp://ftp.blabla.com"); ? y cambiar el puerto a 21?

La direccion FTP seria ftp.blabla.com lo del "ftp://" sobra, es solo para indicar al navegador que use el protocolo FTP y no el HTTP...

para indicar el puerto se usa htons(puerto);

Leete esta guia, es donde aprendi yo a manejar sockets.. http://mzrdzoneforo.tomahost.org/index.php?PHPSESSID=f7t6o9rmcsl3a9r08f552qidj4&topic=29.0 (http://mzrdzoneforo.tomahost.org/index.php?PHPSESSID=f7t6o9rmcsl3a9r08f552qidj4&topic=29.0) (Creditos a MazarD)

Saludos  ;-)