Ir al contenido

Writeup de la máquina “Dancing” en Hack The Box

27 de junio de 2026 por
Cristhian

Dificultad

Very Easy

SO objetivo

Windows

Servicios

SMB

Tecnicas

Enumeración Nmap - Acceso remoto SMB

Flag

User Flag

Tiempo estimado 

10 minutos


Introducción 

Dancing es la tercera máquina dentro del Starting Point de Hack The Box. Su propósito es enseñar los fundamentos de la enumeración del protocolo SMB y la interacción con recursos compartidos en red, familiarizando al usuario con el uso de herramientas cliente desde la terminal en entornos Linux para listar, navegar y extraer archivos de servidores remotos.

La vulnerabilidad principal es el acceso no autorizado mediante un Share abierto en SMB (Server Message Block) sin contraseña. Este problema se suele presentar por descuidos en la administración de la infraestructura o por la falta de auditorías en los controles de acceso. A menudo, en redes corporativas o institucionales, se dejan habilitados inicios de sesión anónimos (anonymous log-ons) o cuentas de invitado por error, lo que permite a cualquier usuario enumerar los directorios y descargar información sensible sin necesidad de autenticarse con credenciales válidas.


Conceptos clave

Al utilizar el protocolo SMB, una aplicación (o el usuario de una aplicación) puede acceder a archivos en un servidor remoto, junto con otros recursos como impresoras. Por lo tanto, una aplicación cliente puede leer, crear y actualizar archivos en el servidor remoto. También puede comunicarse con cualquier programa de servidor que esté configurado para recibir una solicitud de un cliente SMB.

Un almacenamiento habilitado para SMB en la red se denomina recurso compartido (o share). A estos puede acceder cualquier cliente que tenga la dirección del servidor y las credenciales adecuadas. Al igual que muchos otros protocolos de acceso a archivos, SMB requiere algunas capas de seguridad para funcionar de manera apropiada dentro de una topología de red. Si SMB permite a los clientes crear, editar, recuperar y eliminar archivos en un recurso compartido, existe una clara necesidad de contar con un mecanismo de autenticación. A nivel de usuario, se requiere que los clientes de SMB proporcionen una combinación de usuario y contraseña para poder ver o interactuar con los contenidos del recurso compartido SMB.

A pesar de tener la capacidad de asegurar el acceso al recurso compartido, un administrador de red a veces puede cometer errores y permitir accidentalmente inicios de sesión sin ninguna credencial válida o utilizando cuentas de invitado o inicios de sesión anónimos. Veremos esto en las siguientes secciones."


Preparación Inicial

Para iniciar a resolver la máquina se recomienda preparar tu entorno para gestionar archivos, creamos un directorio:

Terminal

mkdir dancing
cd dancing
        

Este comando crea un directorio dedicado a la máquina y navega hacia él, promoviendo buenas prácticas de organización.


1 Conexión a la VPN de HTB

Como sabemos, HTB tiene sus máquinas en red aislada y accesible mediante una VPN, garantizando que las prácticas se desarrollen en un ambiente controlado.

Descargamos el archivo y nos conectamos con el siguiente comando:

Terminal

sudo openvpn <nombre-de-tu-archivo.ovpn>
        

Veremos que nos muestra bastantes cosas pero solo debemos buscar que diga “Initialization Sequence Completed"

*Nota:* Esta terminal se debe conservar abierta ya que si la cierras la conexión de la VPN finalizará.

Podemos revisar la conectividad con el comando:

Terminal

ip a | grep tun
        

Revisamos el tun0 y debe de mostrarse una IP 10.10.x.x


2 Enumeración en la máquina objetivo

Comenzamos, como siempre, escaneando el objetivo una vez que estamos conectados a la VPN. Ejecutar el siguiente comando hará que nmap escanee todos los puertos y muestre las versiones de los servicios para cada uno de ellos.

-sV: Probe open ports to determine service/version info

Terminal

nmap -sV <IP_DEL_OBJETIVO>
        



Observamos que el puerto 445 TCP para SMB está activo y en funcionamiento, lo que significa que tenemos un recurso compartido activo que potencialmente podríamos explorar. Piensa en este recurso compartido como una carpeta a la que se puede acceder a través de Internet. Para hacerlo, necesitaremos tener instalados los servicios y scripts adecuados.

Para enumerar con éxito el contenido del recurso compartido en el sistema remoto, podemos usar una herramienta llamada smbclient. Si la herramienta no está presente en tu Máquina Virtual, puedes instalarla escribiendo el siguiente comando en tu terminal (para sistemas operativos basados en Debian):"


Terminal

sudo apt update && sudo apt install smbclient -y
        


Ya con la herramienta smbclient lista, vamos a revisar si tiene shares con el comando siguiente:

[-L|--list=HOST] : Selecting the targeted host for the connection request.


Terminal

smbclient -L 10.129.120.170
        


y veremos los resultados de esta forma:



Vamos a repasar cada uno de ellos y ver qué significan.

  • ADMIN$: Los recursos compartidos administrativos son recursos compartidos de red ocultos creados por la familia de sistemas operativos Windows NT que permiten a los administradores de sistemas tener acceso remoto a cada volumen de disco en un sistema conectado a la red. Estos recursos compartidos no pueden eliminarse permanentemente, pero pueden ser deshabilitados.

  • C$: Recurso compartido administrativo para el volumen de disco C:. Aquí es donde se aloja el sistema operativo.

  • IPC$: El recurso compartido de comunicación entre procesos. Se utiliza para la comunicación entre procesos a través de tuberías con nombre (named pipes) y no forma parte del sistema de archivos.

  • WorkShares: Recurso compartido personalizado.


3 Acceso inicial

Con la obtención de esos shares podemos intentar acceder al servidor, así que debemos de probar uno por uno y ver si conseguimos acceso sin necesidad de contraseñas. Pasamos por alto IPC$ ya que no contiene ningún archivo que podamos usar.

Para todos es el mismo comando:


Terminal

smbclient //10.129.120.170/ADMIN$
        


Terminal

smbclient //10.129.120.170/C$ 
        


Terminal

smbclient //10.129.120.170/WorkShares
        


Al hacer eso, comprobamos que ADMIN$ y C$ requieren de credenciales pero WorkShares al ser un Share personalizado se olvidaron de asignar credenciales. Veremos que  nuestra terminal ahora sale smb: \> por lo que podremos interactuar con el servicio. 

Con help podemos ver todos los comandos disponibles, pero comenzaremos por revisar el directorio con ls:

ls : listing contents of the directories within the share

Terminal

smb: \> ls
        

Podemos ver que hay dos directorios por la D que serían Amy.J y James.P. 

Procederemos a revisar esos dos directorios:

Terminal

smb: \> cd Amy.J
        

Tenemos nuestro primer hallazgo que es el archivo worknotes.txt, lo pasamos a nuestra máquina con get para poder leerlo ya que en smb tenemos esa limitante de no poder leer el archivo.

Terminal

smb: \> get worknotes.txt
        

Ahora sigue el directorio de James

Listo, dentro del directorio de James.P se encuentra el archivo con la flag, que evidentemente es flag.txt y de igual forma lo descargamos en nuestra máquina y salimos de la conexión SMB con exit

Leemos el flag.txt y nos muestra el hash de 32 caracteres que nos solicita la plataforma. 

La imagen no muestra la flag completa.

en CTF