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:
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:
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:
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
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):"
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.
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:
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
Podemos ver que hay dos directorios por la D que serían Amy.J y James.P.
Procederemos a revisar esos dos directorios:
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.
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.