# Puerto 139 y 445:  SMB - CIFS

**SMB (Server Message Block)** y **CIFS (Common Internet File System)** son protocolos de red utilizados principalmente para compartir archivos, impresoras y otros recursos en una red. SMB se ejecuta sobre los puertos 139 y 445, y es fundamental para la comunicación en redes Windows.

## <mark style="color:green;">Descripción de SMB/CIFS</mark>

* <mark style="color:green;">**Puerto 139 (NetBIOS Session Service)**</mark><mark style="color:green;">:</mark>
  * Utiliza NetBIOS (Network Basic Input/Output System) para compartir archivos e impresoras en redes locales.
  * Generalmente se utiliza en versiones más antiguas de Windows y sistemas que dependen de NetBIOS.
* <mark style="color:green;">**Puerto 445 (Direct Hosting of SMB)**</mark><mark style="color:green;">:</mark>
  * Permite que SMB se ejecute directamente sobre TCP/IP sin la necesidad de NetBIOS.
  * Utilizado en versiones modernas de Windows para compartir archivos y recursos de red de manera más eficiente.

## <mark style="color:green;">Relevancia en Pentesting</mark>

### <mark style="color:green;">**Importancia de SMB/CIFS en Pentesting**</mark><mark style="color:green;">:</mark>

* <mark style="color:green;">**Vulnerabilidades**</mark><mark style="color:green;">:</mark> SMB ha sido históricamente vulnerable a varios tipos de ataques, como la ejecución remota de código y la escalación de privilegios.
  * <mark style="color:green;">**EternalBlue (MS17-010)**</mark><mark style="color:green;">:</mark> Una de las vulnerabilidades más famosas que afecta SMBv1, explotada por el ransomware WannaCry.
  * <mark style="color:green;">**Null Sessions**</mark><mark style="color:green;">:</mark> Conexiones anónimas que permiten a un atacante enumerar recursos compartidos y usuarios en un sistema.
* <mark style="color:green;">**Enumeración de Recursos**</mark><mark style="color:green;">:</mark> Los pentesters utilizan SMB para enumerar usuarios, grupos, recursos compartidos y otras configuraciones de red.
* <mark style="color:green;">**Transferencia de Archivos**</mark><mark style="color:green;">:</mark> SMB puede ser utilizado para transferir archivos entre sistemas comprometidos y estaciones de trabajo de pentesting.

## <mark style="color:green;">Ejemplo de Escaneo de SMB con Nmap</mark>

Para identificar servidores SMB activos y recopilar información adicional sobre los servicios SMB/CIFS, se puede utilizar Nmap con scripts NSE específicos.

### <mark style="color:green;">**Comando Nmap**</mark>

```bash
nmap -p 139,445 --script smb-enum-shares,smb-enum-users,smb-os-discovery,smb-vuln-ms17-010 target-ip
```

### <mark style="color:green;">**Explicación del Comando**</mark>

* `nmap`: Ejecuta el comando Nmap.
* `-p 139,445`: Especifica que Nmap debe escanear los puertos 139 y 445, los puertos utilizados por SMB.
* `--script smb-enum-shares,smb-enum-users,smb-os-discovery,smb-vuln-ms17-010`: Utiliza scripts NSE para detectar configuraciones y vulnerabilidades en los servicios SMB.
  * `smb-enum-shares`: Enumera los recursos compartidos en el servidor SMB.
  * `smb-enum-users`: Enumera los usuarios en el servidor SMB.
  * `smb-os-discovery`: Detecta la versión del sistema operativo a través del servicio SMB.
  * `smb-vuln-ms17-010`: Detecta la vulnerabilidad EternalBlue (MS17-010).

### <mark style="color:green;">**Ejemplo de Salida de Nmap**</mark>

```plaintext
Starting Nmap 7.80 ( https://nmap.org ) at 2024-05-18 21:15 UTC
Nmap scan report for 192.168.1.100
Host is up (0.0015s latency).

PORT    STATE SERVICE
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds
| smb-os-discovery:
|   OS: Windows Server 2016 Standard 14393 (Windows Server 2016 Standard 6.3)
|   Computer name: server
|   NetBIOS computer name: SERVER\x00
|   Domain name: example
|   FQDN: server.example.local
|_  System time: 2024-05-18T21:14:00+00:00
| smb-enum-shares:
|   account_used: guest
|   \\server\IPC$:
|     Type: STYPE_IPC_HIDDEN
|     Comment: Remote IPC
|     Anonymous access: READ/WRITE
|   \\server\Public:
|     Type: STYPE_DISKTREE
|     Comment: 
|     Anonymous access: READ/WRITE
| smb-enum-users:
|   guest:
|     User Comment: Built-in account for guest access to the computer/domain
|     Full Name: 
|   administrator:
|     User Comment: Built-in account for administering the computer/domain
|     Full Name: 
|_  john:
|     User Comment: 
|     Full Name: John Doe
| smb-vuln-ms17-010:
|   VULNERABLE:
|   Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010)
|     State: VULNERABLE
|     IDs:  CVE:CVE-2017-0144
|     Risk factor: HIGH
|       A critical remote code execution vulnerability exists in Microsoft SMBv1
|       servers (ms17-010). The vulnerability is due to an error when the vulnerable
|       software handles a maliciously crafted SMB packet. A remote attacker could
|       exploit this vulnerability to execute arbitrary code on the target machine.
|
|     Disclosure date: 2017-03-14
|     References:
|       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0144
|       https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
|_      https://blogs.technet.microsoft.com/msrc/2017/04/14/security-update-ms17-010-released/

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

## <mark style="color:green;">Interpretación de la Salida</mark>

* <mark style="color:green;">**Host is up**</mark><mark style="color:green;">:</mark> Indica que el sistema objetivo está en línea y responde.
* <mark style="color:green;">**139/tcp open netbios-ssn**</mark><mark style="color:green;">:</mark> El puerto 139 está abierto y el servicio NetBIOS-SSN (NetBIOS Session Service) está activo.
* <mark style="color:green;">**445/tcp open microsoft-ds**</mark><mark style="color:green;">:</mark> El puerto 445 está abierto y el servicio Microsoft-DS (SMB Direct Hosting) está activo.
* <mark style="color:green;">**smb-os-discovery**</mark><mark style="color:green;">:</mark> Proporciona información sobre el sistema operativo y el dominio del servidor.
  * <mark style="color:green;">**OS**</mark><mark style="color:green;">:</mark> Versión del sistema operativo (Windows Server 2016 Standard 14393).
  * <mark style="color:green;">**Computer name**</mark><mark style="color:green;">:</mark> Nombre del equipo.
  * <mark style="color:green;">**Domain name**</mark><mark style="color:green;">:</mark> Nombre del dominio.
  * <mark style="color:green;">**FQDN**</mark><mark style="color:green;">:</mark> Nombre de dominio completo.
  * <mark style="color:green;">**System time**</mark><mark style="color:green;">:</mark> Hora del sistema.
* <mark style="color:green;">**smb-enum-shares**</mark><mark style="color:green;">:</mark> Enumera los recursos compartidos en el servidor SMB.
  * <mark style="color:green;">**\server\IPC$**</mark><mark style="color:green;">:</mark> Recurso compartido IPC$ con acceso anónimo de lectura/escritura.
  * <mark style="color:green;">**\server\Public**</mark><mark style="color:green;">:</mark> Recurso compartido Public con acceso anónimo de lectura/escritura.
* <mark style="color:green;">**smb-enum-users**</mark><mark style="color:green;">:</mark> Enumera los usuarios en el servidor SMB.
  * <mark style="color:green;">**guest**</mark><mark style="color:green;">:</mark> Cuenta de invitado.
  * <mark style="color:green;">**administrator**</mark><mark style="color:green;">:</mark> Cuenta de administrador.
  * <mark style="color:green;">**john**</mark><mark style="color:green;">:</mark> Usuario normal (John Doe).
* <mark style="color:green;">**smb-vuln-ms17-010**</mark><mark style="color:green;">:</mark> Detecta la vulnerabilidad EternalBlue (MS17-010), indicando que el servidor es vulnerable a la ejecución remota de código a través de SMBv1.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://books.spartan-cybersec.com/cppj/networking-for-juniors/puertos-y-servicios/puerto-139-y-445-smb-cifs.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
