Introducción
Fawn es la segunda máquina del Starting Point de HackTheBox. Al igual que en la primera de las máquinas (Meow) la metodología consiste en ir dando respuesta a diferentes preguntas que tienen la función de guiar en la resolución de estas máquinas
Resolución
Conexión al VPN de HTB
Comenzamos estableciendo conexión por VPN con la plataforma HackTheBox. Una vez tengamos IP asignada de la VPN de HTB procedemos a ir a la web de Starting Point para iniciar la máquina Fawn. Puede trascurrir hasta 2 minutos en reconocer la web que estamos conectados por VPN, llegando en ocasiones a tener que refrescar la página F5
Nos asignan en este ejercicio la IP 10.10.15.74
Si tienes dudas sobre conectar con la VPN de HackTheBox te lo explico aquí
Iniciar la máquina
Iniciamos la máquina pulsando sobre el botón
Tras unos cuantos segundos (en ocasiones puede tardar más) se habrá iniciado correctamente la máquina y nos mostrará la dirección ip de la máquina víctima. En nuestro caso será 10.129.17.247
Settarget
Haciendo uso de la herramienta previamente establecida en la ZSH llamada ‘settarget’ dejaremos anotada la IP y nombre de la máquina víctima en la parte superior de la Polybar para tener así mayor eficacia. La sintaxis es: settarget (IP_VICTIMA) (NOMBRE_MAQUINA_VICTIMA)
1
settarget 10.129.17.247 Meow
En la Polybar superior tendremos siempre bien referenciada la máquina víctima:
Ping
Comprobamos que efectivamente tenemos visible la máquina víctima lanzando un ping
sobre ella. Con el parámetro -c 1
le indicamos que tan solo haga un ping. No es necesario más.
1
ping -c 1 10.129.17.247
Como resultado obtenemos lo siguiente de lo cual destacatemos el TTL y el número de paquetes enviados / recibidos:
TTL = 63
- Este valor (cercano a 64) indica que nos encontramos ante una máquina Linux
Por defecto valores de
TTL
en torno a 64 indica que la máquina es Linux mientras que valores de 128 indicaría que la máquina es Windows
1 packets transmitted, 1 received
- Indica que el paquete enviado ha sido recibido con éxito por lo tanto => La máquina víctima está encendida y tenemos conexión con ella
Tasks (1/2)
Estas Tasks hacen las funciones de mini-flags y ayudan guiando la resolución de la máquina
- What does the 3-letter acronym FTP stand for?
- En caso de que no lo sepamos, acudid a Google: File Transfer Protocol
- Which port does the FTP service listen on usually?
- La respuesta sería: 21
- What acronym is used for the secure version of FTP?
- Es SFTP
- What is the command we can use to send an ICMP echo request to test our connection to the target?
- En nuestro caso no solo es conocido sino que en este paso ya nos hemos adelantado 😉. La respuesta es: ping
Reconocimiento con NMAP (PortDiscovery)
NMAP es una herramienta ampliamente extendida en el reconocimiento de redes así como en el escaneo de puertos, hosts y servicios
Ejecutaremos la instrucción básica de reconocimiento con los parámetros que se explican a continuación:
1
nmap -p- -sS --min-rate 5000 -n -Pn -vvv --open 10.129.17.247 -oG allPorts
-p-
- Indicamos que queremos analizar el rango completo de puertos. Del 1 al 65535
-sS
- Especificación del tipo de escaneo. En este caso SYN Scan que es rápido a la vez que sigiloso ya que no termina de establecer la conexión y de tal manera puede pasar desapercibido en los logs de conexión
--min-rate 5000
- Acelera el proceso de escane ya que no tramita paquetes cuya velocidad sea inferior a 5000 paquetes por segundo. Esto puede hacer menos sigiloso el escaneo pero más rápido
-n
- Indica que no queremos aplicar resolución DNS. Más velocidad de escaneo
-Pn
- Escaneo de puertos incluso si el host no responde a los ping. Ignora si el host está o no online
-vvv
- Triple verbose para que los resultados que vaya obteniendo los vaya mostrando por pantalla sin necesidad de acabar el escaneo
--open
- Un puerto principalmente puede estar Abierto, Cerrado o Filtrado. En un principio nos centraremos en aquellos que están Abiertos
-oG allPorts
- Salida del resultado en un fichero llamado allPorts en formato ‘grepable’ lo cual aportará ventajas a la hora de tratarlo posteriormente
El resultado del comando ejecutado sería el siguiente:
Del cual destacamos que el puerto 21 se encuentra Abierto
Puerto 21 => FTP
- El servicio FTP, acrónimo de File Transfer Protocol es el que por defecto funciona sobre el puerto 21 (abierto en esta máquina). El servicio FTP es usado para realizar transferencia de ficheros entre una máquina orígen y una máquina destino conectadas ambas por red.
FTP a pesar de tener posibilidad de proteger el acceso con usuario y contraseña no se podría decir que sea especialmente seguro. Especialmente prestaremos atención a si el usuario anonymous está habilitado, en cuyo caso podríamos acceder sin necesidad de proporcionar contraseña
Puertos abiertos (versiones)
Sobre aquellos puertos abiertos en la máquina víctima lanzaremos un comando de NMAP enfocado al descubrimiento de versiones de los servicios que estén corriendo sobre los puertos abiertos
1
nmap -sCV -p21 10.129.17.247 -oN targeted
-sCV
(también se puede poner como-sC -sV
)- Realiza un escaneo en busca de versiones y comparando con una base de datos de servicios conocidos
-p21
- Indica que se analizará en esta caso únicamente el puerto 21
-oN targeted
- Salida del resultado en un fichero llamado targeted en formato normal de NMAP
El resultado del comando ejecutado sería el siguiente:
Este escaneo ha aportado información sustanciosa para la consecución de la máquina:
vsftpd 3.0.3
- Esta sería la versión de FTP de la máquina víctima. Sería útil de cara a buscar vulnerabilidades aunque en nuestro caso es la respuesta a la pregunta 5.
Anonymous FTP login allowed
- Es posible conectarse por FTP sin proporcionar contraseña con el usuario Anonymous
Tasks (2/2)
Tras el inciso por la fase de reconocimiento realizada con NMAP, regresamos a contestar las preguntas para resolver la máquina:
- From your scans, what version is FTP running on the target?
- Tras haber realizado la fase de reconocimiento con NMAP tendremos a mano la respuesta: vsftpd 3.0.3
- From your scans, what OS type is running on the target?
- La respuesta es: Unix
- What is the command we need to run in order to display the ‘ftp’ client help menu?
- De manera general, para obtener ayuda de un comando, se escribe éste seguido de
-h
ó--help
: ftp -h
- What is username that is used over FTP when you want to log in without having an account?
- Como decíamos anteriormente, la respuesta es:
anonymous
FTP permite conectarse con el usuario
anonymous
sin proporcionar contraseña
- What is the response code we get for the FTP message ‘Login successful’?
- En la captura de la ejecución del comando
nmap -sCV
tenemos la respuesta: 320
- There are a couple of commands we can use to list the files and directories available on the FTP server. One is dir. What is the other that is a common way to list files on a Linux system.
- Coincide con el que usamos normalmente para listar el contenido de un directorio en Linux: ls
- What is the command used to download the file we found on the FTP server?
- La respuesta es: get
Intrusión
Con el pre-guiado que nos ha aportado el haber respondido a todas y cada una de las preguntas de las tasks tan solo quedaría poner en práctica y obtener la flag.
Ejecutamos ftp 10.129.17.247
y a los pocos segundos nos pedirá un nombre de login
donde deberemos rellenar anonymous
, a continuación en el campo password lo dejaremos en blanco. Ya estaríamos dentro:
Con un ls
sobre el directorio actual vemos el fichero flag.txt
que lo descargaremos al directorio de trabajo con el comando get flag.txt
. A continuación ya podemos cerrar la conexión FTP con el comando exit
.
Visualizamos la flag con cat flag.txt