FTP
El Protocolo de Transferencia de Archivos (FTP) es uno de los protocolos más antiguos de Internet. El FTP se ejecuta dentro de la capa de aplicación de la pila de protocolos TCP/IP. Por lo tanto, se encuentra en la misma capa que HTTP o POP. Estos protocolos también funcionan con el apoyo de navegadores o clientes de correo electrónico para realizar sus servicios. También existen programas FTP especiales para el Protocolo de Transferencia de Archivos.
listen=NO
¿Ejecutar desde inetd o como un demonio independiente?
listen_ipv6=YES
¿Escuchar en IPv6?
anonymous_enable=NO
¿Habilitar acceso anónimo?
local_enable=YES
¿Permitir que los usuarios locales inicien sesión?
dirmessage_enable=YES
¿Mostrar mensajes del directorio activo cuando los usuarios acceden a determinados directorios?
use_localtime=YES
¿Usar la hora local?
xferlog_enable=YES
¿Activar el registro de cargas/descargas?
connect_from_port_20=YES
¿Conectar desde el puerto 20?
secure_chroot_dir=/var/run/vsftpd/empty
Nombre de un directorio vacío
pam_service_name=vsftpd
Esta cadena es el nombre del servicio PAM que utilizará vsftpd.
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
Las últimas tres opciones especifican la ubicación del certificado RSA que se utilizará para conexiones cifradas SSL.
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
Entornos peligrosos
Hay muchas configuraciones diferentes relacionadas con la seguridad que podemos realizar en cada servidor FTP. Estos pueden tener varios propósitos, como probar conexiones a través de firewalls, probar rutas y mecanismos de autenticación. Uno de estos mecanismos de autenticación es el anonymous
usuario. Esto se utiliza a menudo para permitir que todos en la red interna compartan archivos y datos sin acceder a las computadoras de los demás. Con vsFTPd, las configuraciones opcionales que se pueden agregar al archivo de configuración para el inicio de sesión anónimo tienen este aspecto:
Configuración
Descripción
anonymous_enable=YES
¿Permitir el inicio de sesión anónimo?
anon_upload_enable=YES
¿Permitir que anónimo cargue archivos?
anon_mkdir_write_enable=YES
¿Permitir que anónimo cree nuevos directorios?
no_anon_password=YES
¿No pedir contraseña a un anónimo?
anon_root=/home/username/ftp
Directorio para anónimos.
write_enable=YES
¿Permitir el uso de comandos FTP: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE y SITE?
Inicio de sesión anónimo
ftp 10.129.14.136
Connected to 10.129.14.136.
220 "Welcome to the HTB Academy vsFTP service."
Name (10.129.14.136:cry0l1t3): anonymous
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
Configuración
Descripción
dirmessage_enable=YES
¿Mostrar un mensaje cuando ingresan por primera vez a un nuevo directorio?
chown_uploads=YES
¿Cambiar la propiedad de los archivos cargados de forma anónima?
chown_username=username
Usuario al que se le otorga la propiedad de los archivos cargados de forma anónima.
local_enable=YES
¿Permitir que los usuarios locales inicien sesión?
chroot_local_user=YES
¿Colocar a los usuarios locales en su directorio de inicio?
chroot_list_enable=YES
¿Utilizar una lista de usuarios locales que se colocarán en su directorio de inicio?
Configuración
Descripción
hide_ids=YES
Toda la información de usuarios y grupos en los listados del directorio se mostrará como "ftp".
ls_recurse_enable=YES
Permite el uso de listados recurrentes.
En el siguiente ejemplo, podemos ver que si la hide_ids=YES
configuración está presente, la representación UID y GUID del servicio se sobrescribirá, lo que nos hará más difícil identificar con qué derechos se escriben y cargan estos archivos.
Descargar un archivo
ftp> get Important\ Notes.txt
Descargar todos los archivos disponibles
wget -m --no-passive ftp://anonymous:anonymous@10.129.14.136
Cargar un archivo
ftp> put testupload.txt
Scripts FTP de Nmap
find / -type f -name ftp* 2>/dev/null | grep scripts
/usr/share/nmap/scripts/ftp-syst.nse
/usr/share/nmap/scripts/ftp-vsftpd-backdoor.nse
/usr/share/nmap/scripts/ftp-vuln-cve2010-4221.nse
/usr/share/nmap/scripts/ftp-proftpd-backdoor.nse
/usr/share/nmap/scripts/ftp-bounce.nse
/usr/share/nmap/scripts/ftp-libopie.nse
/usr/share/nmap/scripts/ftp-anon.nse
/usr/share/nmap/scripts/ftp-brute.nse
Se ve ligeramente diferente si el servidor FTP se ejecuta con cifrado TLS/SSL. Porque entonces necesitamos un cliente que pueda manejar TLS/SSL. Para ello podemos utilizar el cliente openssl
y comunicarnos con el servidor FTP. Lo bueno de usarlo openssl
es que podemos ver el certificado SSL, lo que también puede ser de ayuda.
openssl s_client -connect 10.129.14.136:21 -starttls ftp
CONNECTED(00000003)
Can't use SSL_get_servername
depth=0 C = US, ST = California, L = Sacramento, O = Inlanefreight, OU = Dev, CN = master.inlanefreight.htb, emailAddress = admin@inlanefreight.htb
verify error:num=18:self signed certificate
verify return:1
depth=0 C = US, ST = California, L = Sacramento, O = Inlanefreight, OU = Dev, CN = master.inlanefreight.htb, emailAddress = admin@inlanefreight.htb
verify return:1
---
Certificate chain
0 s:C = US, ST = California, L = Sacramento, O = Inlanefreight, OU = Dev, CN = master.inlanefreight.htb, emailAddress = admin@inlanefreight.htb
i:C = US, ST = California, L = Sacramento, O = Inlanefreight, OU = Dev, CN = master.inlanefreight.htb, emailAddress = admin@inlanefreight.htb
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIENTCCAx2gAwIBAgIUD+SlFZAWzX5yLs2q3ZcfdsRQqMYwDQYJKoZIhvcNAQEL
...SNIP...
Last updated