SMB

Server Message Block (SMB) es un protocolo cliente-servidor que regula el acceso a archivos y directorios completos y a otros recursos de red como impresoras, routers o interfaces liberadas para la red. El intercambio de información entre distintos procesos del sistema también puede gestionarse basándose en el protocolo SMB. SMB se puso por primera vez a disposición de un público más amplio, por ejemplo, como parte del sistema operativo de red OS/2 LAN Manager y LAN Server. Desde entonces, la principal área de aplicación del protocolo ha sido la serie de sistemas operativos Windows en particular, cuyos servicios de red soportan SMB de forma compatible con versiones anteriores, lo que significa que los dispositivos con ediciones más recientes pueden comunicarse fácilmente con dispositivos que tengan instalado un sistema operativo Microsoft más antiguo. Con el proyecto de software libre Samba, también existe una solución que permite el uso de SMB en distribuciones Linux y Unix y, por tanto, la comunicación multiplataforma a través de SMB.

Vemos la configuración global y dos recursos compartidos destinados a impresoras. Los ajustes globales son la configuración del servidor SMB disponible que se utiliza para todos los recursos compartidos. En los recursos compartidos individuales, sin embargo, se pueden sobrescribir los ajustes globales, que se pueden configurar con alta probabilidad incluso incorrectamente. Veamos algunos de los ajustes para entender cómo se configuran los recursos compartidos en Samba.

Configuración

Descripción

[sharename]

El nombre del recurso compartido de red.

workgroup = WORKGROUP/DOMAIN

Grupo de trabajo que aparecerá cuando los clientes consulten.

path = /path/here/

El directorio al que se le dará acceso al usuario.

server string = STRING

La cadena que aparecerá cuando se inicie una conexión.

unix password sync = yes

¿Sincronizar la contraseña de UNIX con la contraseña de SMB?

usershare allow guests = yes

¿Permitir que los usuarios no autenticados accedan al recurso compartido definido?

map to guest = bad user

¿Qué hacer cuando la solicitud de inicio de sesión de un usuario no coincide con un usuario UNIX válido?

browseable = yes

¿Esta acción debería aparecer en la lista de acciones disponibles?

guest ok = yes

¿Permitir conectarse al servicio sin usar contraseña?

read only = yes

¿Permitir a los usuarios leer solo archivos?

create mask = 0700

¿Qué permisos se deben establecer para los archivos recién creados?

Dangerous Settings

Configuración

Descripción

browseable = yes

¿Permitir listar acciones disponibles en la acción actual?

read only = no

¿Prohibir la creación y modificación de archivos?

writable = yes

¿Permitir a los usuarios crear y modificar archivos?

guest ok = yes

¿Permitir conectarse al servicio sin usar contraseña?

enable privileges = yes

¿Respetar los privilegios asignados a un SID específico?

create mask = 0777

¿Qué permisos se deben asignar a los archivos recién creados?

directory mask = 0777

¿Qué permisos se deben asignar a los directorios recién creados?

logon script = script.sh

¿Qué script debe ejecutarse al iniciar sesión el usuario?

magic script = script.sh

¿Qué script debe ejecutarse cuando se cierra el script?

magic output = script.out

¿Dónde se debe almacenar la salida del script mágico?

SMBclient - Connecting to the Share

Download Files from SMB

RPCclient

Query

Description

srvinfo

Server information.

enumdomains

Enumerate all domains that are deployed in the network.

querydominfo

Provides domain, server, and user information of deployed domains.

netshareenumall

Enumerates all available shares.

netsharegetinfo <share>

Provides information about a specific share.

enumdomusers

Enumerates all domain users.

queryuser <RID>

Provides information about a specific user.

RPCclient - Enumeration

Rpcclient - User Enumeration

Rpcclient - Group Information

Brute Forcing User RIDs

Impacket - Samrdump.py

SMBmap

CrackMapExec

Enum4Linux-ng - Installation

Last updated