Sulla – una utilidad de consola para comprobar recursos compartidos de red (recursos compartidos SMB) en busca de datos sensibles. Busca contraseñas, claves de interfaces de programación, tokens de acceso, claves privadas, cadenas de conexión a bases de datos y otros datos que se quedan accidentalmente en carpetas compartidas de la red.
La herramienta está pensada para redes internas, donde servidores de archivos, estaciones de trabajo y directorios de servicio almacenan durante años documentos antiguos, copias de seguridad, scripts y archivos de configuración. En esos entornos con frecuencia quedan datos que permiten el acceso a servicios en la nube, repositorios, sistemas de compilación, bases de datos y aplicaciones internas.
SMB se usa en entornos Windows para el acceso en red a archivos y otros recursos. A través de él funcionan las carpetas compartidas de departamentos, los directorios personales de usuarios, los recursos administrativos, las carpetas con instaladores, informes y copias de seguridad. Sulla ayuda a comprobar rápidamente esos recursos y a identificar hallazgos peligrosos.
La utilidad no sustituye a un sistema de prevención de fugas, a una auditoría de permisos o a un inventario completo de los almacenes de archivos. Su objetivo es encontrar datos sensibles en recursos compartidos SMB accesibles y producir resultados en un formato útil para el análisis manual o para un procesamiento posterior.
Qué hace Sulla
Sulla puede funcionar en dos modos básicos. En el primer modo el usuario proporciona credenciales de dominio y el nombre del dominio; la utilidad detecta controladores de dominio, obtiene la lista de equipos activos, comprueba los recursos compartidos SMB disponibles y ejecuta la búsqueda de datos sensibles. En el segundo modo el operador indica un recurso compartido concreto o una lista preparada de objetivos.
Los datos sensibles los busca Titus. Este es el motor de Praetorian, escrito en Go y que desarrolla ideas de NoseyParker. Contiene reglas para la detección de claves, tokens, cadenas de conexión y otras credenciales.
Funcionalidades principales de Sulla:
- busca automáticamente recursos compartidos SMB en hosts conectados a Directorio Activo;
- comprueba solo aquellos recursos compartidos a los que hay acceso de lectura;
- comprueba un recurso compartido concreto sin recorrer el dominio;
- carga la lista de objetivos desde un archivo en formato CSV o UNC;
- modo solo detección, en el que Sulla recoge rutas UNC sin buscar datos sensibles;
- excluye recursos compartidos, directorios y extensiones mediante expresiones regulares;
- modo rápido por defecto con límites de profundidad, tiempo y número de archivos;
- modo completo para una comprobación más profunda de objetivos seleccionados;
- extrae texto de documentos, PDF, archivos comprimidos y otros binarios mediante la bandera
--extract; - guarda informes en formatos txt, json, jsonl, sarif y capability-sdk;
- muestra hallazgos a medida que se detectan con niveles de criticidad Critical, High, Medium o Low.
Cómo funciona la búsqueda
Al ejecutarse en dominio, Sulla usa registros DNS SRV del tipo _ldap._tcp.dc._msdcs.<domain> para localizar controladores de dominio. Si el primer controlador no está disponible, la utilidad prueba con otros. Luego, mediante LDAP se recopila la lista de equipos y, a través de SMB, se comprueban los recursos compartidos y los permisos de lectura.
En el modo de detección Sulla descarta cuentas de Directorio Activo deshabilitadas y equipos que no han mostrado actividad en más de cuatro meses. Al trabajar con espacios de nombres DFS la utilidad elimina duplicados de objetivos para no comprobar el mismo recurso físico a través de rutas distintas. Ese enfoque reduce tráfico innecesario y acelera el recorrido de redes grandes.
Tras el descubrimiento Sulla no lee todos los archivos. Por defecto está activado el modo rápido. En él la utilidad usa una lista de nombres, subcadenas y extensiones prioritarias, por ejemplo nombres como id_rsa, subcadenas como credentials y extensiones como .ps1. El modo rápido también aplica límites más estrictos: profundidad de hasta 5 niveles, hasta 15 minutos por recurso compartido y hasta 200 archivos en un directorio.
El modo rápido filtra no solo por exclusiones. Sulla además selecciona archivos que aparentan ser valiosos para buscar credenciales. El modo completo --full desactiva esa lista de archivos prioritarios y comprueba todos los archivos que no estén en las exclusiones estándar.
El modo completo tiene otro coste. Funciona considerablemente más tiempo y es más adecuado para la comprobación puntual de un recurso compartido o de una lista pequeña de objetivos. Al recorrer un dominio masivo, el modo completo puede generar carga adicional en la red y en los servidores de archivos.
Por defecto Sulla limita el tamaño de archivo a escanear a 5 MB. El parámetro --max-scan-size permite cambiar ese umbral, y el valor 0 desactiva la limitación. Archivos grandes, documentos ofimáticos, PDF y archivos comprimidos requieren configuración cuidadosa: sin la bandera --extract la utilidad omite muchos formatos binarios y ofimáticos.
Las exclusiones estándar ayudan a reducir el ruido. Sulla omite recursos compartidos del sistema como IPC$, print$ y ADMIN$, así como archivos y directorios donde normalmente hay menos datos sensibles o cuya lectura genera carga innecesaria. En la lista entran ejecutables, imágenes, multimedia, archivos comprimidos, parte de los formatos ofimáticos, directorios del sistema Windows, node_modules, .git, vendor y otras rutas.
El usuario puede ver las exclusiones por defecto mediante --show-default-exclusions, agregar reglas propias con -xe, -xd y -xs o desactivar completamente las exclusiones estándar con --no-default-exclusions. La bandera --keywords permite incluir siempre en la comprobación archivos con subcadenas en el nombre, incluso si otras reglas podrían omitirlos.
Un detalle útil es el archivo interesting_exclusions.csv. Sulla registra ahí automáticamente archivos que fueron omitidos por formato binario o por límite de tamaño, pero que parecían prometedores por indicios indirectos. Esa lista facilita volver manualmente a copias de seguridad, archivos comprimidos o documentos grandes sospechosos y comprobados por separado.
Formatos de informes
Sulla soporta varios formatos de salida. txt sirve para revisión manual, json y jsonl son convenientes para procesamiento automático, y sarif se puede usar en herramientas de análisis de seguridad que entienden ese formato.
El formato capability-sdk está pensado principalmente para el modo de detección e integración con la plataforma Praetorian Guard. En ese formato Sulla escribe el archivo <domain>.tabularium. Los valores de las coincidencias se ocultan solo dentro del bloque de evidencias anidado de ese formato.
Los informes deben tratarse como datos sensibles. Los formatos habituales txt, json, jsonl y sarif contienen coincidencias en bruto. Si Sulla encuentra una clave o una contraseña válida, el informe se convierte en una fuente de riesgo. Esos archivos no deben almacenarse en carpetas compartidas, adjuntarse a tareas públicas ni enviarse sin control de acceso.
Para quién es apropiado Sulla
Sulla es útil para equipos que comprueban la red interna y quieren entender rápidamente qué credenciales están almacenadas en recursos compartidos SMB. La herramienta encaja con especialistas en pruebas de penetración, equipos de evaluación ofensiva, equipos de defensa, administradores de Directorio Activo e ingenieros responsables de la seguridad de claves y tokens fuera de los repositorios.
Escenarios claros donde Sulla resulta adecuado:
- comprobar servidores de archivos durante una prueba de penetración;
- buscar claves olvidadas de servicios en la nube, GitHub, GitLab, Jenkins, Slack y otros sistemas;
- analizar carpetas compartidas antiguas antes de una migración o de desmantelar un servidor de archivos;
- comprobar SYSVOL, directorios con scripts administrativos y carpetas de copia de seguridad;
- generar una lista de recursos compartidos SMB para análisis manual mediante el modo solo detección;
- elaborar informes para la corrección interna de los problemas encontrados.
No se debe ejecutar Sulla en una red ajena sin permiso. Para comprobar recursos compartidos SMB se necesita el consentimiento del propietario de la infraestructura, elegir la cuenta con cuidado y comprender la posible carga. El modo completo y la lectura de texto en binarios conviene usarlos donde se conozca de antemano el volumen de datos y la lista de servidores.
Instalación y ejecución
La documentación incluye compilaciones listas para Linux x86_64 y Linux ARM64. Tras la descarga el archivo debe marcarse como ejecutable.
# Linux x86_64
wget -O sulla https://github.com/praetorian-inc/Sulla/releases/latest/download/sulla-linux-amd64
chmod +x sulla
# Linux ARM64
wget -O sulla https://github.com/praetorian-inc/Sulla/releases/latest/download/sulla-linux-arm64
chmod +x sulla
La segunda opción es ejecutar mediante Docker. Es conveniente cuando no se desea instalar la utilidad en el sistema.
docker pull ghcr.io/praetorian-inc/sulla:latest
docker run --rm --privileged --network=host
-v $(pwd):/sulla_output -w /sulla_output
ghcr.io/praetorian-inc/sulla:latest
-u admin -p secret123 -d corp.local -o results -of txt,json
Para el recorrido del dominio se usa un comando con nombre de usuario, contraseña y dominio. En ese modo Sulla detectará el controlador de dominio, encontrará los recursos compartidos disponibles y escribirá el informe en los formatos seleccionados.
sulla -u admin -p secret123 -d corp.local -o results/ -of txt,json
Para una inventaria previa se puede activar el modo solo detección. El comando mostrará la lista de rutas UNC disponibles, que luego se pueden filtrar manualmente y pasar en un archivo separado.
sulla -u admin -p secret123 -d corp.local -do -o
Si la lista de objetivos ya está preparada, Sulla acepta un archivo mediante --target-file. En el archivo se pueden indicar líneas en formato CSV o rutas UNC.
sulla -tf corp_local_discovered_smb_shares.txt
-u admin -p secret123 -d corp.local -o results/
Para comprobar un recurso compartido puntual se usan las banderas -h y -s.
# Comprobación anónima
sulla -h 192.168.1.100 -s public
# Comprobación con credenciales de dominio
sulla -h fileserver.corp.local -s SYSVOL
-u admin -p secret123 -d corp.local -o results/
Ventajas y desventajas
| Ventajas | Desventajas y limitaciones |
|---|---|
| Busca automáticamente recursos compartidos SMB disponibles en un dominio de Directorio Activo. | Para el recorrido del dominio se necesitan credenciales válidas y acceso de red a la infraestructura. |
| Puede comprobar todo el dominio, un recurso compartido o una lista de objetivos preparada. |
El modo rápido puede omitir datos en archivos atípicos, en directorios profundos y en la mayoría de archivos binarios u ofimáticos sin --extract. |
| Tiene en cuenta espacios de nombres DFS y elimina duplicados, reduciendo el tráfico SMB innecesario. | El modo completo en ejecuciones masivas puede durar mucho y generar carga notable. |
| Usa el motor Titus con reglas para distintos tipos de claves, tokens y cadenas de conexión. | Las coincidencias encontradas deben verificarse, porque parte de los resultados puede ser falsa o estar obsoleta. |
| Registra los hallazgos a medida que se detectan y los marca con nivel de criticidad. | Los informes habituales pueden contener contraseñas, claves y tokens en bruto, por lo que requieren control estricto de acceso. |
Crea el archivo interesting_exclusions.csv con archivos prometedores pero omitidos. |
Ese archivo también requiere análisis manual y no demuestra por sí solo la presencia de datos sensibles. |
| Soporta txt, json, jsonl, sarif y capability-sdk. | Los valores de las coincidencias se ocultan solo en el formato capability-sdk. |
| Los filtros por recursos compartidos, directorios y extensiones ayudan a reducir el ruido. | Exclusiones demasiado amplias pueden ocultar archivos necesarios. |
Licencia
Sulla se publica como proyecto de código abierto bajo la licencia Apache-2.0. La licencia permite usar, copiar, modificar y distribuir el código si se cumplen sus condiciones y se mantienen los avisos. Para uso corporativo conviene comprobar adicionalmente las políticas internas sobre código abierto, almacenamiento de informes y tratamiento de datos sensibles.
Conclusión
Sulla resuelve una tarea concreta: busca datos sensibles en recursos compartidos SMB. En dominios grandes la comprobación manual de servidores de archivos se vuelve poco práctica, y las carpetas compartidas suelen contener scripts antiguos, copias de seguridad, configuraciones y documentos con accesos.
La utilidad combina el descubrimiento de dominio, el recorrido de recursos compartidos SMB, la filtración y el motor Titus en una herramienta de consola. El modo rápido permite obtener hallazgos iniciales con rapidez, mientras que el modo completo y --extract permiten analizar con más profundidad objetivos seleccionados.
El riesgo principal no es ejecutar Sulla, sino los resultados. Los informes pueden contener claves y contraseñas en uso. Tras completar la comprobación hay que analizar los hallazgos, revocar credenciales expuestas, actualizar accesos, cerrar permisos innecesarios en los recursos compartidos y eliminar las causas iniciales de la fuga. En ese proceso Sulla no es un sistema de protección por sí mismo, sino una herramienta práctica para revisar periódicamente los almacenes de archivos internos.