O Sulla é uma utilidade de linha de comando (CLI) projetada para verificar compartilhamentos de rede SMB (Server Message Block) em busca de dados sensíveis. Ele é capaz de identificar senhas, chaves de API (Application Programming Interface), tokens de acesso, chaves privadas, strings de conexão de banco de dados e outras informações confidenciais que podem ter sido acidentalmente deixadas em pastas de rede compartilhadas. A ferramenta é voltada para redes internas, onde servidores de arquivos, estações de trabalho e diretórios de serviço podem armazenar documentos antigos, backups, scripts e arquivos de configuração por anos. Esses locais frequentemente contêm dados que concedem acesso a serviços em nuvem, repositórios de código, sistemas de build, bancos de dados e aplicações internas.
O protocolo SMB é amplamente utilizado em ambientes Windows para acesso a arquivos e outros recursos em rede. Ele é a base para compartilhamentos de departamento, diretórios de usuários, compartilhamentos administrativos, pastas com arquivos de instalação, relatórios e backups. O Sulla oferece uma maneira rápida de auditar esses recursos e identificar onde dados potencialmente perigosos podem estar residindo. É importante notar que o Sulla não substitui sistemas de prevenção de vazamento de dados (DLP), auditorias de permissão de acesso ou inventários completos de armazenamento de arquivos. Sua principal função é localizar dados sensíveis em compartilhamentos SMB acessíveis e apresentar os resultados de forma conveniente para análise manual ou processamento posterior.
O Sulla opera em dois modos principais. No primeiro modo, o usuário fornece credenciais de domínio e o nome do domínio. A utilidade, então, procura controladores de domínio, obtém uma lista de máquinas ativas, verifica os compartilhamentos SMB disponíveis e inicia a busca por dados sensíveis. No segundo modo, o operador especifica um compartilhamento específico ou uma lista predefinida de alvos. A detecção de dados sensíveis é realizada pelo Titus, um motor desenvolvido pela Praetorian e escrito em Go, que evolui os conceitos do NoseyParker. O Titus contém regras para detectar chaves, tokens, strings de conexão e outras credenciais.
As principais funcionalidades do Sulla incluem a busca automática por compartilhamentos SMB em hosts conectados ao Active Directory, a verificação apenas de compartilhamentos com permissão de leitura, a capacidade de verificar um compartilhamento específico sem a necessidade de percorrer todo o domínio, e a possibilidade de carregar uma lista de alvos a partir de um arquivo CSV ou UNC. Ele também oferece um modo de "apenas descoberta" para coletar caminhos UNC sem procurar por dados sensíveis, a exclusão de compartilhamentos, diretórios e extensões via expressões regulares, um modo rápido padrão com limitações de profundidade, tempo e número de arquivos, e um modo completo para verificações mais aprofundadas. O Sulla pode extrair texto de documentos, PDFs, arquivos compactados e outros arquivos binários com o flag --extract, salvar relatórios em formatos como TXT, JSON, JSONL, SARIF e Capability SDK, e exibir as descobertas com níveis de criticidade (Critical, High, Medium ou Low) conforme são encontradas.
Durante a execução em um domínio, o Sulla utiliza registros SRV DNS do tipo _ldap._tcp.dc._msdcs.<domain> para localizar controladores de domínio. Caso o primeiro controlador não esteja acessível, a utilidade tenta outros. Em seguida, uma lista de máquinas é coletada via LDAP, e os compartilhamentos SMB e permissões de leitura são verificados. No modo de descoberta, o Sulla descarta contas de usuário do Active Directory desativadas e computadores inativos por mais de quatro meses. Ao lidar com namespaces DFS (Distributed File System), a ferramenta elimina alvos duplicados para evitar a verificação do mesmo compartilhamento físico através de caminhos diferentes, reduzindo o tráfego desnecessário e acelerando a varredura em redes extensas. Após a descoberta, o Sulla não lê todos os arquivos sequencialmente. O modo rápido, ativado por padrão, utiliza uma lista de nomes, substrings e extensões prioritárias, como id_rsa, credentials e .ps1. Este modo também aplica restrições mais rigorosas: profundidade de até 5 níveis, até 15 minutos por compartilhamento e até 200 arquivos por diretório. O modo rápido filtra não apenas por exclusões, mas também seleciona arquivos que parecem valiosos para a busca de credenciais. O modo completo (--full) desativa essa lista de arquivos prioritários e verifica todos os arquivos que não foram excluídos, sendo mais adequado para verificações pontuais em um único compartilhamento ou uma pequena lista de alvos, pois pode gerar carga excessiva na rede e nos servidores de arquivos em varreduras massivas.
Por padrão, o Sulla limita o tamanho do arquivo a ser verificado em 5 MB. O parâmetro --max-scan-size permite alterar esse limite, com o valor 0 desativando-o. Arquivos grandes, documentos de escritório, PDFs e arquivos compactados exigem configuração cuidadosa, pois sem o flag --extract, a utilidade pode pular muitos formatos binários e de escritório. As exclusões padrão ajudam a reduzir o ruído, como compartilhamentos de sistema (IPC$, print$, ADMIN$) e arquivos/diretórios onde dados sensíveis raramente são encontrados ou onde a leitura gera carga excessiva. Isso inclui arquivos executáveis, imagens, multimídia, alguns formatos de escritório, diretórios de sistema do Windows, node_modules, .git, vendor, entre outros. O usuário pode visualizar as exclusões padrão com --show-default-exclusions, adicionar regras personalizadas com -xe, -xd e -xs, ou desativar completamente as exclusões padrão com --no-default-exclusions. O flag --keywords permite incluir sempre arquivos com substrings específicas no nome, mesmo que outras regras pudessem ignorá-los. Um detalhe útil é o arquivo interesting_exclusions.csv, onde o Sulla registra automaticamente arquivos que não foram verificados devido ao formato binário ou limite de tamanho, mas que apresentaram indícios promissores. Essa lista auxilia na análise manual posterior de backups, arquivos compactados ou documentos grandes suspeitos.
O Sulla suporta diversos formatos de relatório: TXT para visualização manual, JSON e JSONL para processamento automatizado, e SARIF para integração com ferramentas de análise de segurança. O formato Capability SDK é voltado para o modo de descoberta e integração com a plataforma Praetorian Guard, salvando um arquivo <domain>.tabularium onde os valores de correspondência são ocultados em um bloco de evidências aninhado. É crucial tratar os relatórios como dados sensíveis, pois formatos como TXT, JSON, JSONL e SARIF contêm as correspondências brutas. Se o Sulla encontrar uma chave ou senha funcional, o próprio relatório se torna um risco. Tais arquivos não devem ser armazenados em pastas compartilhadas, anexados a tarefas abertas ou enviados sem controle de acesso.
O Sulla é valioso para equipes que realizam auditorias em redes internas e desejam identificar rapidamente credenciais em compartilhamentos SMB. É adequado para pentesters, equipes de testes ofensivos, equipes de defesa, administradores do Active Directory e engenheiros responsáveis pela segurança de chaves e tokens fora de repositórios. Cenários de uso incluem a verificação de servidores de arquivos durante pentests internos, a busca por chaves esquecidas de serviços em nuvem, GitHub, GitLab, Jenkins, Slack, a análise de compartilhamentos antigos antes de migrações ou desativação de servidores, a verificação de SYSVOL, diretórios de scripts administrativos e pastas de backup, a criação de listas de compartilhamentos SMB para análise manual via modo de descoberta, e a geração de relatórios para remediação interna. O Sulla não deve ser executado em redes de terceiros sem permissão. Para verificar compartilhamentos SMB, é necessário consentimento do proprietário da infraestrutura, seleção cuidadosa da conta de usuário e compreensão da carga de processamento. O modo completo e a extração de texto de arquivos binários devem ser utilizados com cautela, especialmente em ambientes onde o volume de dados e a lista de servidores são conhecidos.
A instalação pode ser feita baixando binários pré-compilados para Linux x86_64 e ARM64, tornando o arquivo executável. Alternativamente, o Sulla pode ser executado via Docker. Para varredura de domínio, utiliza-se um comando com nome de usuário, senha e domínio, permitindo que o Sulla detecte o controlador de domínio, encontre compartilhamentos e gere relatórios. Para inventário preliminar, o modo de descoberta (-do) pode ser ativado para listar caminhos UNC acessíveis. Se uma lista de alvos já estiver preparada, o Sulla aceita um arquivo via --target-file, que pode conter strings em formato CSV ou caminhos UNC. Para verificação pontual de um único compartilhamento, utilizam-se os flags -h (host) e -s (share), com ou sem credenciais de domínio.
Prós: Busca automática de compartilhamentos SMB em domínios Active Directory; capacidade de verificar domínios inteiros, compartilhamentos únicos ou listas predefinidas; consideração de namespaces DFS e eliminação de duplicatas para otimizar tráfego SMB; uso do motor Titus com regras para diversos tipos de credenciais; registro de descobertas com níveis de criticidade; criação do arquivo interesting_exclusions.csv para análise posterior; suporte a múltiplos formatos de relatório (TXT, JSON, JSONL, SARIF, Capability SDK); filtros por compartilhamentos, diretórios e extensões para reduzir ruído.
Contras e Limitações: Requer credenciais de domínio válidas e acesso de rede para varredura de domínio; o modo rápido pode não detectar dados em arquivos atípicos, diretórios profundos ou a maioria de arquivos binários/de escritório sem --extract; o modo completo pode ser lento e gerar carga significativa em varreduras massivas; as correspondências encontradas requerem validação, pois podem ser falsos positivos ou desatualizadas; relatórios comuns contêm dados brutos (senhas, chaves), exigindo controle de acesso rigoroso; o arquivo interesting_exclusions.csv requer análise manual e não prova a existência de dados sensíveis por si só; exclusões muito amplas podem ocultar arquivos importantes. A licença Apache-2.0 permite uso, cópia, modificação e distribuição, mas requer conformidade com os termos e manutenção dos avisos. Para uso corporativo, é recomendável verificar as políticas internas sobre código aberto, armazenamento de relatórios e processamento de dados sensíveis.
Em conclusão, o Sulla aborda a necessidade específica de encontrar dados sensíveis em compartilhamentos SMB. Em grandes domínios, a verificação manual de servidores de arquivos torna-se impraticável, e os compartilhamentos frequentemente contêm scripts antigos, backups, configurações e documentos com acessos. A ferramenta integra descoberta de domínio, varredura SMB, filtragem e o motor Titus em um único utilitário de linha de comando. O modo rápido permite obter descobertas iniciais rapidamente, enquanto o modo completo e o flag --extract possibilitam uma análise mais aprofundada de alvos selecionados. O principal risco não reside na execução do Sulla, mas nos resultados. Relatórios podem conter chaves e senhas funcionais. Após a auditoria, é essencial não apenas analisar as descobertas, mas também revogar dados expostos, atualizar acessos, fechar permissões desnecessárias em compartilhamentos e eliminar as causas raiz do vazamento. Nesse contexto, o Sulla se apresenta não como um sistema de proteção autônomo, mas como uma ferramenta prática para auditorias regulares de armazenamento de arquivos internos.




