> For the complete documentation index, see [llms.txt](https://hacking-3.gitbook.io/barre/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-3.gitbook.io/barre/apuntes/red-team/tools/smbmap.md).

# Smbmap

`smbmap` es una herramienta de seguridad y auditoría que se utiliza principalmente en pruebas de penetración y evaluaciones de seguridad para interactuar con recursos compartidos de SMB/CIFS en redes. Esta herramienta es especialmente útil para identificar recursos compartidos en servidores SMB (generalmente en redes Windows) y determinar los permisos de acceso asociados a esos recursos.

## Propósitos principales

1. **Enumeración de recursos compartidos SMB**: `smbmap` puede enumerar los recursos compartidos disponibles en un servidor SMB y mostrar información sobre estos, como el acceso permitido (lectura, escritura, etc.) sin necesidad de montar manualmente los recursos compartidos.
2. **Identificación de permisos de acceso**: La herramienta muestra de manera sencilla los permisos que tiene el usuario especificado sobre cada recurso compartido. Esto es útil para determinar si un recurso es accesible de manera pública, o si ciertos usuarios tienen permisos de lectura o escritura.
3. **Automatización de operaciones sobre recursos compartidos**: Además de enumerar recursos y permisos, `smbmap` también permite descargar archivos, cargar archivos, y realizar operaciones sobre carpetas y archivos dentro de los recursos compartidos, lo que facilita tareas como la búsqueda de información sensible o la explotación de permisos mal configurados.
4. **Búsqueda de archivos sensibles**: Con `smbmap`, es posible buscar archivos específicos o patrones de archivos dentro de los recursos compartidos, como documentos confidenciales, contraseñas almacenadas en texto plano, o archivos de configuración sensibles.
5. **Evaluación de la seguridad de recursos SMB**: Al identificar recursos compartidos mal configurados o con permisos excesivos, `smbmap` ayuda a los profesionales de seguridad a detectar posibles vulnerabilidades de seguridad en la infraestructura SMB de una red.

## Opciones principales

1. **Host y credenciales:**
   * `-H <IP>`: Especifica la dirección IP o el nombre del host del servidor SMB.
   * `-u <usuario>`: Define el nombre de usuario para la autenticación en el servidor SMB.
   * `-p <contraseña>`: Especifica la contraseña del usuario. Puede omitirse para que el programa solicite la contraseña de manera interactiva.
   * `-P <puerto>`: Indica el puerto en el que se ejecuta el servicio SMB. El puerto predeterminado es 445.
   * `-d <dominio>`: Especifica el dominio al que pertenece el usuario (si es necesario).
   * `-W <workgroup>`: Define el grupo de trabajo (workgroup) de la red.
   * `--no-pass`: Intenta realizar la autenticación sin proporcionar una contraseña (a veces funciona si las configuraciones permiten acceso anónimo).
   * `-A <hash_lm:hash_nt>`: Proporciona un hash LMen lugar de una contraseña (útil para ataques con hash pass-the-hash).
2. **Enumeración y listado:**
   * `-L`: Lista todos los recursos compartidos accesibles en el servidor SMB.
   * `-R`: Recursivamente enumera todos los archivos dentro de un recurso compartido.
   * `-r <directorio>`: Enumera archivos en un directorio específico del recurso compartido.
   * `-D`: Muestra solo los nombres de los directorios al hacer la enumeración.
   * `--shares`: Muestra solo los nombres de los recursos compartidos sin listar los archivos.
3. **Interacción con archivos:**
   * `-g <archivo>`: Descarga un archivo específico desde un recurso compartido.
   * `-w <archivo>`: Sube un archivo al recurso compartido.
   * `-r <ruta>`: Borra un archivo o directorio en el recurso compartido.
   * `--upload <archivo_local> <directorio_remoto>`: Carga un archivo local a un recurso compartido remoto.
4. **Búsqueda de archivos específicos:**
   * `-F <expresión_regular>`: Busca archivos que coincidan con un patrón específico (expresión regular) en los recursos compartidos.
   * `-q`: Filtra los resultados de búsqueda mostrando solo los nombres de los archivos que coinciden con el patrón especificado.
5. **Conexiones adicionales:**
   * `--session`: Muestra la sesión establecida actual, incluyendo los permisos obtenidos.
   * `--shares-only`: Muestra solo los recursos compartidos disponibles, sin listar el contenido.
6. **Otras opciones útiles:**
   * `-h`: Muestra la ayuda del comando con todas las opciones disponibles.
   * `-v`: Modo detallado (verbose), que muestra más información durante la ejecución del comando.
   * `-x <comando>`: Ejecuta un comando en el servidor remoto (si se tiene acceso a ejecución remota).
   * `--depth <profundidad>`: Controla la profundidad de la recursividad al listar directorios (por defecto, sin límite).
   * `--no-color`: Desactiva la salida coloreada en la terminal.

## Ejemplos de uso

1. **Enumerar recursos compartidos en un servidor SMB**:

   ```bash
   smbmap -H <IP_del_servidor>
   ```

   Esto mostrará una lista de recursos compartidos y los permisos de acceso asociados a ellos.
2. **Acceder a un servidor con credenciales específicas**:

   ```bash
   smbmap -H <IP_del_servidor> -u <usuario> -p <contraseña>
   ```

   Esto permite autenticarte en el servidor SMB con un nombre de usuario y contraseña específicos y enumerar los recursos compartidos con los permisos asociados para ese usuario.
3. **Buscar archivos específicos en recursos compartidos**:

   ```bash
   smbmap -H <IP_del_servidor> -R "contraseña"
   ```

   Esto buscará archivos que coincidan con el patrón "contraseña" en los recursos compartidos a los que se tenga acceso.
4. **Descargar un archivo específico desde un recurso compartido**:

   ```bash
   smbmap -H <IP_del_servidor> -r "ruta/al/archivo"
   ```

   Esto descarga el archivo especificado desde el recurso compartido al que se tenga acceso.
5. **Subir un archivo a un recurso compartido**:

   ```bash
   smbmap -H <IP_del_servidor> -u <usuario> -p <contraseña> -d /ruta/local/del/archivo -r /ruta/destino/en/servidor
   ```

## Casos de uso:

* **Pentesting**: Los profesionales de seguridad utilizan `smbmap` para identificar recursos compartidos vulnerables y posibles rutas de explotación en una red.
* **Auditorías de seguridad**: En evaluaciones de seguridad, la herramienta ayuda a auditar configuraciones incorrectas de permisos en servidores SMB que podrían exponer datos sensibles.
* **Explotación de privilegios**: Los atacantes pueden utilizar `smbmap` para identificar puntos débiles en la seguridad de un entorno Windows, como recursos compartidos con permisos de escritura abiertos, lo que podría permitir la escalada de privilegios o la ejecución de código malicioso.

## Conclusión

`smbmap` es una herramienta poderosa para la exploración y explotación de recursos SMB en redes. Permite a los auditores de seguridad, administradores de sistemas y pentesters identificar problemas de configuración y vulnerabilidades en servidores SMB, ayudando a mantener la seguridad de la red.
