# 445/TCP (SMB)

## Vulnerabilidades

```shell
nmap -p 139,445 --script=vuln <target> -oN nmap-vuln-SMB.txt
```

## Sesiones nulas

### smbclient <a href="#sesiones-nulas-smbclient" id="sesiones-nulas-smbclient"></a>

```shell
smbclient -N -L <target>
smbclient -N -L <target> --option='client min protocol=NT1'
```

* -N = sin contraseña.&#x20;
* -L = Lista carpetas compartidas.
* \<target> = objetivo.

```shell
smbclient -N \\\\<target>\\<sharename>
smbclient -N \\\\<target>\\<sharename> --option='client min protocol=NT1'
```

* -N = sin contraseña.&#x20;
* \<target> = objetivo.&#x20;
* \<sharename> = nombre del recurso compartido.

### SMBMap <a href="#sesiones-nulas-smbmap" id="sesiones-nulas-smbmap"></a>

```shell
smbmap -u null -H <target>
smbmap -H <target>
```

* -u = sin usuario.&#x20;
* -H = host.
  * \<target> = objetivo.

```shell
smbmap -u null -R -H <target>
smbmap -R -H <target>
```

* -u = sin usuario.&#x20;
* -R = lista contenido de directorios de forma recursiva.&#x20;
* -H = host.
  * \<target> = objetivo.

### rpcclient <a href="#sesiones-nulas-rpcclient" id="sesiones-nulas-rpcclient"></a>

```shell
 rpcclient -U "" -N <target>
```

* -U "" = sin usuario.&#x20;
* -N = sin contraseña.
* \<target> = objetivo.

### Nmap <a href="#sesiones-nulas-nmap" id="sesiones-nulas-nmap"></a>

```shell
nmap --script smb-enum-shares -p 139,445 <target>
```

* \--script smb-enum-shares = enumeración de recursos compartidos.
* -p = puertos.
* \<target> = objetivo.

## smbclient

```shell
# Listar carpetas compartidas
smbclient -L \\\\<target>\\<sharename> -W <workgroup> -U <username>
# Obtener consola
smbclient \\\\<target>\\<sharename> -W <workgroup> -U <username> <password>
```

* -L = Lista carpetas compartidas.
* \<target> = objetivo.
* \<sharename> = nombre del recurso compartido.
* -W = grupo de trabajo o dominio.
  * \<workgroup> = nombre de grupo de trabajo o dominio.
* -U = información de inicio de sesión de usuario.
  * \<username> = nombre de usuario.
  * \<password> = contraseña de usuario.

## SMBMap

### Contenido de directorios de forma recursiva <a href="#smbmap-contenido-de-directorios-de-forma-recursiva" id="smbmap-contenido-de-directorios-de-forma-recursiva"></a>

```shell
smbmap -d <workgroup> -u <username> -p <password> -R "<path\sharename>" -H <target>
```

* -d = grupo de trabajo o dominio.
  * \<workgroup> = nombre de grupo de trabajo o dominio.
* -u = nombre de usuario.
  * \<username> = nombre de usuario.
* -p = contraseña de usuario.
  * \<password> = contraseña de usuario.
* -R = lista contenido de directorios de forma recursiva.&#x20;
  * \<path\sharename> = ruta y nombre del recurso compartido.&#x20;
* -H = host.
  * \<target> = objetivo.

### Contenido de directorio <a href="#smbmap-contenido-de-directorio" id="smbmap-contenido-de-directorio"></a>

```shell
smbmap -d <workgroup> -u <username> -p <password> -r "<path\sharename>" -H <target>
```

* -d = grupo de trabajo o dominio.
  * \<workgroup> = nombre de grupo de trabajo o dominio.
* -u = nombre de usuario.
  * \<username> = nombre de usuario.
* -p = contraseña de usuario.
  * \<password> = contraseña de usuario.
* -r = lista contenido de directorio.
  * \<path\sharename> = ruta y nombre del recurso compartido.
* -H = host.
  * \<target> = objetivo.

## rpcclient <a href="#rpcclient" id="rpcclient"></a>

```shell
rpcclient -U <username>%<password> <target>
rpcclient -W <workgroup> -U <username>%<password> <target>

# Consultar información del dominio o grupo de trabajo
querydominfo
# Consultar información de visualización
querydispinfo
# Obtener información de política de contraseñas
getdompwinfo
# Enumerar usuarios
enumdomusers
# Enumerar grupos
enumdomgroups
# Obtener información de un usuario
queryuser <rid-user>
# Obtener información de un grupo
querygroup <rid-group>
# Obtener grupos de un usuario
queryusergroups <rid-user>
# Obtener miembros de un grupo
querygroupmem <rid-group>
```

* -W = grupo de trabajo o dominio.
  * \<workgroup> = nombre de grupo de trabajo o dominio.
* -U = información de inicio de sesión de usuario.
  * \<username> = nombre de usuario.
  * \<password> = contraseña de usuario.
* \<target> = objetivo.

## **enum4linux** <a href="#enum-4-linux" id="enum-4-linux"></a>

```shell
enum4linux -a <target>
```

* -a = enumeración general.
* \<target> = objetivo.

## Descarga de archivos

### smbget <a href="#descarga-de-archivos-smbget" id="descarga-de-archivos-smbget"></a>

```shell
smbget -R smb://<target>/<directory>
```

* -R = descargar el contenido completo de un directorio de forma recursiva.
* \<target> = objetivo.
* \<directory> = directorio.


---

# 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://pentesting.mrw0l05zyn.cl/escaneo-y-enumeracion/servicios/445-tcp-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.
