Introducción
Dancing es la tercera máquina de la serie que componen el Starting Point de HackTheBox. En este caso es la primera de la máquinas con sistema Windows por lo que nos iremos concentrando en las particularidades propias de este sistema operativo. Igual que en las demás máquinas de Starting Point tendremos que ir dando respuesta a preguntas que nos servirán de guía.
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 Dancing. 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.38
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.148.100
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.148.100 Dancing
De esta manera tendremos siempre bien referenciada la máquina víctima en la parte superior de la pantalla en la Polybar:
Ping
Comprobamos que tengamos visibilidad con 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.148.100
Como resultado obtenemos lo siguiente de lo cual destacatemos el TTL y el número de paquetes enviados / recibidos:
TTL = 127
- Este valor (cercano a 128) indica que nos encontramos ante una máquina Windows
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/3)
Estas Tasks hacen las funciones de mini-flags y ayudan guiando la resolución de la máquina
- What does the 3-letter acronym SMB stand for?
- Esta primera pregunta ya adelante por donde irá la resolución: Server Message Block
- What port does SMB use to operate at?
- La respuesta sería: 445
Continuamos con el reconocimiento haciéndo uso de NMAP para poder dar respuesta a la pregunta 3
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.148.100 -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:
Hay numerosos puertos abiertos, entre ellos el puerto 445 al que nos hacía referencia la pregunta de la mini-flag #2
Puerto 445 => SMB
- El servicio SMB, acrónimo de Server Message Block es un protocolo de red utilizado para compartir archivos y recursos en una red local. Actúa como un servidor que permite a los clientes acceder a los recursos compartidos. Además, también proporciona funcionalidades como la impresión en red y la comunicación entre programas en diferentes equipos.
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 -p445,135,139,5985,49665,49667,49669,47001,49666,49668,49664 10.129.148.100 -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:
De este escaneo focalizaremos sobre lo obtenido en el puerto 445 del servicio SMB y para lo que observamos: microsoft-ds
Tasks (2/3)
Con la información obtenida hasta ahora podemos avanzar resolviendo preguntas
- What is the service name for port 445 that came up in our Nmap scan?
- Del escaneo con NMAP lo hemos visto: microsoft-ds
- What is the ‘flag’ or ‘switch’ we can use with the SMB tool to ‘list’ the contents of the share?
- Buscando un poco es fácil averiguar la respuesta: -L
Continuamos conectando al servicio SMB y listando contenido
Intrusión
Sabiendo que la máquina víctima tiene el servicio SMB corriendo por un puerto abierto (445) podemos interactuar por ahí con la máquina
Ejecutamos smbclient -L 10.129.148.100
que nos permite, sin introducir contraseña, obtener un listado de nombres de servicios disponibles como nombres de unidades o impresoras.
Los servicios mostrados con el símbolo $
requieren credenciales para acceder. En este caso exploraremos el servicio WorkShares
que es el único no protegido por contraseña.
Para conectar a un servicio lo haremos usando la siguiente sintaxis smbclient \\(target)\(servicio)
Los caracteres de barra inclinada deben estar doblemente escapados, de la siguiente manera:
smbclient \\\\10.129.148.100\\WorkShares
y podremos entrar sin proporcionar contraseña
Ejecutando el comando
help
una vez estemos logueados nos permitirá listar las funciones válidas en smb
Con un ls
igual que en sistemas Linux veremos el listado de ficheros y directorios.
Buscamos en el directorio Amy.J
y descargamos con get
el fichero worknotes.txt
(no relevante) y en el directorio James.P
está la flag la cual visualizamos en nuestro equipo con un cat flag.txt
Tasks (3/3)
Ya tenemos toda la información necesaria para completar el resto de preguntas
- How many shares are there on Dancing?
- Tras la ejecución del
smbclient -L 10.129.148.100
sabemos que la respuesta es : 4
- What is the name of the share we are able to access in the end with a blank password?
- Recordemos (Con
$
requiere password, Sin$
no requiere credenciales): WorkShares
- What is the command we can use within the SMB shell to download the files we find?
- Igual que, por ejemplo, en FTP: get