Net Sec Challenge
Created by 0xnotkyo

tryhackme.com - © TRYHACKME

Introducción
Net Sec Challenge es una máquina de TryHackMe que nos ayudará a familiarizarnos con la herramienta Nmap y las redes en general.
Reconocimiento con NMAP
Ejecutaremos la instrucción básica de reconocimiento con los parámetros que se explican a continuación:
-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 es rápido y a la vez sigiloso ya que no termina de establecer la conexión y puede pasar desapercibido en los logs de conexión
--min-rate 5000
Acelera el proceso de escaneo 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.
El resultado del comando ejecutado sería el siguiente:

Podemos ver que tenemos varios puertos abiertos: ssh (22), http (80), netbios-ssn (139), microsoft-ds (445), http-proxy (8080) y ftp (10021).
Puerto 22 = ssh→ Protocolo de red que proporciona una conexión segura para acceder y gestionar servidores remotos.
Puerto 80 = http→ Encargado de servir contenido web, permitiendo la interacción del usuario con la aplicación a través de un navegador.
Puerto 139/445 = smb→ Protocolos de red utilizados principalmente para compartir archivos, impresoras y otros recrusos en una red. Es fundamental para la comunicación en redes Windows.
Puerto 8080 = http-proxy→ Comúnmente utilizado como un puerto alternativo para servicios web o proxies.
Puerto 10021 = ftp→ El puerto 21 es el estándar para FTP, pero en este caso se ha configurado el puerto personalizado 10021.
A continuación, comenzaremos a responder las preguntas que nos indica la plataforma:
Task 1
What is the highest port number being open less than 10,000?
80
Task 2:
There is an open port outside the common 1000 ports; it is above 10,000. What is it?
10021
Task 3:
How many TCP ports are open?
6
Enumeración de Servicios y Versiones
A partir de aquí, la plataforma nos solicita información que no aparece en un escaneo de puertos simple. Necesitamos aplicar scripts de enumeración (-sC) y detección de versiones (-sV) sobre puertos específicos para extraer información oculta en los headers y banners.
-sC
Ejecuta los scripts por defecto de Nmap (NSE). Es lo que nos permite extraer información avanzada como el título de la página o, en este caso, la flag oculta en el http-server-header
-sV
Detección de versiones. Interroga al puerto para determinar exactamente qué software y versión están corriendo
-p 80
Indica que se analizará en este caso únicamente el puerto 80
El resultado del comando ejecutado sería el siguiente:

Task 4:
What is the flag hidden in the HTTP server header?
THM{web_server_25352}
El resultado del comando ejecutado sería el siguiente:

Task 5:
What is the flag hidden in the SSH server header?
THM{946219583339}
El resultado del comando ejecutado sería el siguiente:

Task 6:
We have an FTP server listening on a nonstandard port. What is the version of the FTP server?
vsftpd 3.0.5
Intrusión
Bien, hemos recibido dos nombres de usuario mediante ingeniería social, así que ahora podemos proceder a realizar las siguientes acciones para obtener la contraseña mediante fuerza bruta:
Hacemos una lista con los nombres de usuario obtenidos (
eddieyquinn).
echo
Comando utilizado para imprimir o mostrar una línea de texto en la terminal
'eddie' / 'quinn'
Los nombres de usuario que queremos guardar en nuestro archivo
>
Operador de redirección que crea o sobrescribe el contenido de un archivo. En este caso, crea users.txt con el nombre 'eddie'
&&
Operador lógico que permite ejecutar el segundo comando solo si el primero se ha completado con éxito
>>
Operador de redirección que añade información al final de un archivo existente sin borrar lo anterior. Así, añadimos 'quinn' debajo de 'eddie'
users.txt
El nombre del archivo de salida donde se almacenará nuestra lista de usuarios
Es muy importante recordar la diferencia entre > y >>. Si usáramos > la segunda vez, borraríamos el nombre de 'eddie' y solo quedaría 'quinn' en el archivo. El doble signo es la clave para mantener nuestra lista completa.
Usamos Hydra para obtener la contraseña mediante fuerza bruta usando la lista de contraseñas
rockyou.txt
-L users.txt
Indica la ruta al archivo que contiene la lista de usuarios. La L mayúscula se usa cuando apuntamos a un archivo con múltiples nombres
-P [ruta]
Indica la ruta al diccionario de contraseñas. Usamos rockyou.txt, que contiene millones de claves filtradas en la vida real
ftps://
Especifica el protocolo de red que Hydra debe utilizar. Justo después se debe indicar la IP y el Puerto
El resultado del comando ejecutado sería el siguiente:

Como podemos ver, hemos identificado con éxito las contraseñas de los usuarios eddie y quinn.
Ahora que tenemos nuestras credenciales, podemos conectarnos vía ftp usando los datos obtenidos y el puerto personalizado 10021 para encontrar la flag.

Tras revisar el directorio de eddie y no localizar la flag buscada, procedemos a limpiar nuestra terminal e iniciar una nueva conexión utilizando las credenciales de quinn.

Tras revisar el directorio de quinn, finalmente localizamos el archivo ftp_flag.txt. Así que ahora simplemente descargamos y leemos el archivo.

Task 7:
We learned two usernames using social engineering:
eddieandquinn. What is the flag hidden in one of these two account files and accessible via FTP?THM{321452667098}
Reto final
Tal como indica la última pregunta, nos dirigimos a la página alojada en el puerto 8080.

Al entrar, nos encontramos con un desafío interactivo: debemos escanear la máquina objetivo de la forma más encubierta posible para evitar ser detectados por el IDS. Un escaneo convencional nos daría un 100% de probabilidad de detección, lo cual fallaría la misión.
Para conseguir esto, aplicamos un TCP Null Scan, un método que envía paquetes sin banderas activas para confundir al sistema de monitoreo:

-sNenvía paquetes TCP sin ninguna bandera configurada (sin SYN, ACK, FIN, etc).
Si un puerto está abierto, el objetivo no responde
Si un puerto está cerrado, el objetivo envía una respuesta RST

Task 8:
Browsing to
http://10.82.132.137:8080displays a small challenge that will give you a flag once you solve it. What is the flag?THM{f7443f99}
Como podemos ver, ¡hemos capturado la bandera para esta máquina!

~Happy Hacking
Última actualización