Bienvenido a cursohacker.es. Puedes acceder a todo el contenido líbremente pero si deseas poder crear tus propios temas en el foro y que tus respuestas y comentarios se publiquen de forma automática regístrate como alumno aquí

Servidor FTP cómo funciona y comandos

En nuestra última publicación de este curso de seguridad infomática aprendimos a instalar nuestro servidor ftp. Hoy veremos cómo trabajar con un servidor tan solo con comandos FTP. Puede que te preguntes de qué vale conocer los comandos de un servidor FTP si hoy día cualquier herramienta de gestión gráfica nos puede hacer todo el trabajo de forma fácil y sencilla. La razón es que en entornos hostiles tanto en el lado de un atacante como en el lado de un administrador de seguridad la consola y los comandos serán sus únicas armas.

¿Por qué utilizar comandos FTP en una CMD o Shell?

Las herramientas gráficas nos pueden funcionar muy bien para el día a día, de hecho no usarlas para las funciones diarías sería una pérdida de tiempo ya que nos automatizan gran parte del trabajo. Sin embargo, cuando estas herramientas fallan llega la hora de trabajar a un nivel mas bajo, poder entender cómo trabaja un servidor FTP y así poder diagnosticar y solucionar el problema. Esto anterior es desde la parte de un administrador de sistemas. Desde la parte de un hacker a veces se ve obligado a instalar un servidor FTP en alguna máquina y conectarse a su propio servidor desde la CMD para transferirse así los archivos de su objetivo. Cuando esto ocurre el hacker no hace uso de una herramienta gráfica, lo hace todo desde la consola o shell que tiene bajo control. Estas 2 razones son más que suficientes para que hoy sigas leyendo y aprendas a utilizar un servidor FTP desde la línea de comandos. 
Otra razón de peso, que veremos más adelante, es que existen varios tipos de ataques de flooding y escaneos de puertos que son posibles haciendo uso de servidores FTP a los cuales tengas acceso. La única forma de que puedas comprender cómo se realizan estos ataques, si estás en el lado malo o defenderte de ellos si estás en el lado bueno es que seas capaz de utilizar los servidores FTP con comandos avanzados.

Encontrar servidores FTP públicos (anónimos). Un viejo/nuevo mundo en la red

En la red existen servidores de acceso público, con contenido que google no indexa, si sabes manejarte. Aquí podrás encontrar tanto programas antiguos, que no hayarás en indexado por ninguna web. También podrás econtrar material específico de diversa índole. Algunos de los buscadores de servidores FTP públicos son:

En estos servidores podrás logearte como "anonymous" y dejando la clave en blanco. Por cortesía cuando uno accede a un servidor FTP anónimo suele escribir en el campo contraseña su dirección de correo electrónico, pero no es ni mucho menos obligatorio. Indagando en estos buscadores estamos seguros de que econtrarás bastante información interesante que no encontrarías haciendo una símple búsqueda en google, ni tan siquiera haciendo búsquedas avanzadas

Comandos avanzados en servidores FTP

Antes de empezar a trabajar los comandos que sirven para conectarse, descargar y subir archivos a un servidor FTP entre otras muchas acciones. Vamos a tener claros algunos conceptos. En primer lugar debes saber que los servidores FTP trabajan por defecto en el puerto 21. Esto es, cuando aprendamos hacer escáners en la red, si detectamos que una máquina tiene el puerto 21 abierto con mucha probabilidad se tratará de un servidor FTP. Y digo con mucha probabilidad puesto que el puerto 21 es el puerto por defecto, el puerto estándar, pero esto se puede cambiar y es una medida de seguridad que emplean muchos administradores de sistemas para esconder sus servidores FTP. No obstante también puede ser que estemos conectando a servidores falsos, (honeypots) que son servidores destinados a engañar a los hackers y hacerles perder el tiempo intentando conectar a un servidor que en realidad está vacio y solo emula un servidor FTP.  Así que vamos a ello. Arrancamos nuestro servidor ftp y empezamos:

Lo primero abrir una CMD, en windows ve a Inicio->ejecutar y escribe cmd:
cmd shell windows ftp comandos
El primer comando que vamos a utilizar es el que utilizamos para conectarnos a cualquier servidor ftp. Nosotros para las pruebas vamos a utilizar nuestro recien instalado servidor, así que como lo tenenos instalado en local su dirección es localhost
ftp "dirección del servidor"
ftp open, comando conexión ftp server

Como podéis ver me abre una conexión con mi servidor local y se queda a la espera de que introduzca tanto el usuario como la contraseña. Recordemos que en la publicación anterior creamos un grupo de usuarios y un usuario de pruebas, vamos a utilizar dicho usuario para conectarnos a nuestro servidor. Para ello tecleamos el nombre de usuario; en mi caso "test" y luego la contraeña. Aquí para los que estáís empezando veréis que al escribir la contraseña no aparece nada en la pantalla. Esto no significa que no vuestras pulsaciones no estén siendo grabadas, es una medida de seguridad para evitar que alguien que esté mirando la pantalla pueda leer la contraseña mientras la ponéis. Si los datos están correctos habréis conseguido logeear y veréis lo siguiente:
ftp login
Ahora si miramos la pantalla de servidor podremos ver también como se ha detectado que un usuario ha logeado al servidor:
log intento login FTP server (filezilla)
Desde la pantalla anterior nosotros somos capaces de ver que ocurre en el server, vemos la IP desde la que intenta logear y toda la actividad que realiza quien se conecta a nuestro servidor. Esto es muy importante que lo tengas en mente cuando te conectas a un servidor. TU IP QUEDA GRABADA y los administradores de dicho servidor pueden rastrear tu actividad. Mas adelante también abordaremos temas de anonimato en la red y cómo ocultar nuestra IP cuando trabajamos con servidores remotos. 

  1. Comando DIR. Lo primero que nos suele hacer falta cuando nos conectamos a un servidor FTP es saber los archivos y carpeta a las que nos da acceso. Para ello, el comando DIR nos da un listado de dichos archivos y carpetas. En mi ejemplo yo tengo 2 archivos (archivo1.txt y archivo2.txt) y una carpeta (carpeta1):
    comando DIR ftp server
  2. Comando de navegación CD. Este comando sirve para movernos entre las distintas carpetas, así que siquiero irme a ver que hay en la carpeta "carpeta1" hago "cd carpeta1" y accedo a dicha carpeta, luego, una vez esté dentro de la carpeta volveré a hacer un dir y listaré la lista de archivos y carpetas que hay dentro de la "carpeta1". En mi ejemplo en la carpeta1 yo tengo un archivo de imagen de tipo PNG que se llama imagen PNG:
    comando CD ftp server
  3. Comando PWD. Este comando se utiliza para ver en que directorio te encuentras actualmente. Cuando vas navegando por las distintas carpetas de un servidor FTP puede ser que te pierdas y no recuerdes en que directorio te encuentras, mediante el comando PWD el servidor te indircará la carpeta que estás viendo actualmente:
    comando PWD ftp server
  4. Comando de navegación CD.. Cuando queremos volver "atrás" es decir al directorio anterior hacemos un cd.. y esto es indicar que queremos ir al directorio anterior:
    volver atrás FTP server
  5. Comando DELETE. Como habrás podido intuir este comando se utiliza para borrar ficheros en el servidor FTP. Ten cuidado con este comando:
    comando delete servidor FTP
  6. Comando RM (Remove directory) este comando se utiliza para borrar carpetas. Eso si, han de estar vacías por ello si quiero borrar la caperta1 primero tengo que entrar dentro de la carpeta y borrar los archivos, luego vuelvo atrás y borro la caperta con RM:
    Comando RM ftp server
  7. Comando MDELETE. Este comando se utilia cuando quiero borrar muchos archivos en masa ejemplo: mdelte a.txt b.txt c.txt d.jpg e.png 
  8. Descarga de ficheros. Cuando queremos descargar ficheros de un servidor FTP lo primero que debemos establecer es si queremos pasarlos en modo binario o en modo ascii. Cuando se trata de descargar archivos que no son de texto, debemos indicarlo al servidor y ponerlo en modo binario. Para ello lo primero es utilizar el comando BINARY y justo después pedir el fichero que queremos descargar hago uso del comando GET de la siguiente forma: GET fichero "ruta donde quiero que se desargue". En mi ejemplo quiero descargar el fichero imagen.jpg a mi disco duro C:/imagen.jpg así que hago GET imagen.jpg C:/imagen.jpg:
    comando get binary ftp server
  9. Comando PUT. Este se utiliza par justo lo contrario que el anterior, para subir archivos a un servidor FTP. En este ejemplo vamos a subir una imagen que está en mi disco duro en C:/ que se llama peronal.jpg:
    comando PUT ftp server
  10. Comando RENAME Se utiliza para cambiar el nombre de un archivo existente en el servidor FTP:
    Comando RENAME ftp server
  11. Comando CHMOD. Se utiliza para cambiar los permisos (lectura, escritura y ejecución) de un fichero. Cuando nos adentremos en el mundo de unix veremos cómo funciona su sitema de permisos. De momento si quieres saber mas sobre chmod puedes ver: http://es.wikipedia.org/wiki/Chmod
  12. Comando STATUS Nos indica información sobre el estado de nuestra conexión con el servidor.
  13. Comando SITE EXEC. Está deshabilitado por defecto en la gran mayoría de servidores ftp. Sirve para decirle al servidor FTP que queremos que ejecute un programa. Este comanod representaba un agujero de seguridad enorme puesto que permitía que nosotros subieramos al servidor un ejecutable y luego ejecutarlo. Así que si alguien te sube un troyano tu máquina quedaría bajo su control.
  14. Comando HELP. Este comando te proporcionará una lista de los comandos que soporta el servidor FTP al cual estás conectado:
    comando HELP servidor FTP
  15. Comando BYE. Sirve para indicar al servidor que queremos desconectarnos. Normalmente los serviores FTP nos devolverán la cortesía:
    comando BYE ftp server, cerrar conexión

Hasta aquí la primera entrega de comandos básicos sobre cómo funciona un servidor FTP. Con ellos podrás empezar a trabajar con los servidores desde una consola o CMD. En la próxima entrega veremos algunos comandos más avanzados como son el PORT y el PASV. Que son los que tantos problemas han traido con este tipo de servidores a la hora de descargar ficheros cuando el servidor no está en tu misma red.

Comentarios

tengo un problema cuando ingreso el nombre me sale esto "530 TLS required" y cuando ingreso un nombre incorrecto me deja ingresar la contraseña pero no se inicia que hago?

Hola buenas noches, estoy en el curso d hacker: Al llegar al: ftp> dir Me sale desconectado......Q paso debo dar?.......Muchas gracias

gran info... tengo una duda, no me resulta el comando CD.. para devolverse no lo acepta hay otros para realizar esto? y el comando mdelet si sale en el listado con el comando help, pero no me resulta. me podrian escribir un ejemplo completo. saludos 

Jsap asegúrate de que esté escruto así cd(aquí hay un espacio) ..

mi mayor duda es como entar al servidor ftp con la restriccion de los demas ip ya que si no es asi estaria perdiendo mucha seguridad.
 puedo entrar pero si quito las restricciones de los ip. 
 posdata gracias por eseñarnos a todos grandes cosas como las que estoy aprendiendo aqui en es portal

Primero excelente material, muy bien explicado, sin embargo cuando estoy en CMD para logear el usuario me da error 521, en filezilla he colocado mi IP, la Ip de prueba y nada. Me puede ayudar por favor. No quiero quedarme trancado aca. 

Buenas, me esta gustando mucho el curso pero tengo un problema. Cuando quiero eliminar o transferir archivos con un nombre con espacios, por ejemplo "imagenes SD.jpg", intento borrarlo pero no hay manera me dice que no identifica el archivo. Pero si le cambio el nombre a simplemente "imagenes.jpg" lo puedo borrar sin problemas. Uso windows 10 puede que haya que hacerlo de otra manera en esta consola, si alguien me pudiera decir mi error al proceder se lo agradecería.

Cuando pongo la clave del usuario me dice que este no tiene permitido conectarse de la IP especificada en el FTP pero esta bien puesta, no se que puede ser... Ayuda por favor.

You appear to be behind a NAT router. Please configure the passive mode settings and forward a range of ports in your router.
Warning: FTP over TLS is not enabled, users cannot securely log in...

ESTO ES LO QUE ME APARECE Y LA VERDAD HE PROBADO CON IP LOCAL, LA MIA Y LA 127.0.0.1 y nada... si me pueden orientar se los agradeceria... 

ah!! y tambien he habilitado dentro del firewall de windows al programa para que no me lo bloquee

Hola buenas, he descargado e instalado el programa tal y como se dice, pero justo cuando me aparece la ventana del programa, me sale un mensaje al final con letras rojas que pone "You appear to be behind a NAT router. Please configure the passive mode settings and forward a range of ports in your router. Que puedo hacer?

Hola, tengo un servidor ftp sobre un windows 10. Desde el CMD y desde una PC remota me permite crear carpetas, borrarlas, cambiarme de carpeta etc. Pero al intentar ejecutar put, get, dir y otros comandos queda en espera  .150 abriendo conexión remota.... y tengo que presionar ctrl C. Entonces aparece el mensaje Error 425 (no se pudo abrir la conexión remota). Pero repito si me deja crear carpetas y borralaso sea hay conexión. Desde ya muchas gracias y muy bueno el sitio.

Despues de instalarlo correctamente el servidor FTP local, me sale este error y jamas se conecta:

"Could not connect to Server"

Porque?, yo no modifique nada.

Saludos

Buenos días,

Cuando en el FileZilla voy a Edit, luego Users y voy a la opción IP Filter, no me deja filtrar las IPs como indica en su tutorial anterior. Pongo en el primer recuadro * para indicar que bloqueo todas las IPs, y en el segundo escribo mi IP (la busco en la web cualesmiip,com) para indicar que está exenta de la prohibición del recuadro superior.

Hasta ahí todo bien. Pero cuando intento entrar desde la consola (el CMD) al servidor ftp escribiendo el comando "ftp localhost" y pongo el usuario y la contraseña, me dice que no se me permite acceder.

He probado a no restringir las IPs y puedo entrar desde la consola en el servidor ftp sin problemas, pero al cabo de un rato (a veces 15 min, otras menos) me cierra la conexión alegando que me encuentro en un host remoto ("Conexión cerrada por host remoto").

Trabajo en sistema operativo Windows 10, por si es de relevancia.

Gracias por su atención :)

fhola, se que de esta entrada hace ya varios años pero me gustaría saber por qué si escribo en la consula "ftp localhost" no me deja conectarme pero si, si escribo "ftp 127.0.0.1". Muchísimas gracias por el curso, está genial.

cuando pongo el comando cd y el nombre del archivo me pone:

250 cwd succesful. "/carpeta" is current directory

 

Hola, tengo filefilla server y me gustaría saber si puedo habilitar y usar el comando SITE EXEC.

Gracias

Alguien ha podido resolver este error?...

Páginas

Si te ha sido de utilidad Compárteme