
3 ferramentas que trabalham juntas para simplificar o reconhecimento de compartilhamentos de arquivos do Windows
Uma das tarefas mais demoradas para um red teamer é mergulhar em sistemas de arquivos e compartilhamentos, tentando identificar qualquer informação potencialmente sensível. O SMBCrunch permite que um red teamer identifique rapidamente os Compartilhamentos de Arquivos do Windows em uma rede, realize uma listagem de diretórios recursiva dos compartilhamentos fornecidos, e pode até mesmo capturar um arquivo do compartilhamento remoto se parecer um alvo interessante.
Existem três (3) ferramentas diferentes que funcionam juntas. Leia todas as três seções abaixo para ter uma ideia de como elas funcionam juntas.
Dado um arquivo (ou arquivo gnmap), o SMBHunt encontra todos os Compartilhamentos de Arquivos do Windows associados aos servidores fornecidos (se um arquivo gnmap for fornecido, ele procura servidores com a porta 445 aberta). Se nenhuma credencial for fornecida para realizar a verificação, ele verificará compartilhamentos de sessão nula.
Aviso: Se o seu usuário tiver acesso a um compartilhamento no servidor, o script mostrará todos os compartilhamentos hospedados por esse servidor. Se um compartilhamento estiver listado nesta saída, isso não significa que você tem acesso a esse compartilhamento. Use a próxima ferramenta para isso.
Este script avisa se as credenciais fornecidas falharem para evitar o bloqueio de contas de domínio. A opção "-f" substitui essa proteção.
Este script verifica apenas um servidor usando uma credencial. Isso é por design, pois o servidor responderá com uma lista completa de compartilhamentos se o usuário tiver acesso a apenas um compartilhamento no sistema
./SMBHunt.pl [-a <account>] -i <file> [-o <output_file>]
./SMBHunt.pl -a 'testdomain\john:hunter2' -i portscan445.gnmap -o shares_found.txt
./SMBHunt.pl -h
-a, --account <string>
Credenciais do usuário para testar. Nomes de usuário são aceitos no formato 'Domínio\Usuário:Senha' ('Domínio' é opcional) Se nenhuma conta for fornecida, o script verifica compartilhamentos de sessão nula
-i, --inputFile <file>
Um arquivo de sistemas separados por uma nova linha, ou um arquivo gnmap de uma varredura de porta contendo a porta 445. Cada servidor com a porta 445 aberta será verificado para compartilhamentos SMB
-o, --output <file>
Imprime os resultados em um arquivo
-f, --force
Força o script a continuar mesmo que a credencial de domínio possa estar incorreta.
--noipc
Não mostrar compartilhamentos IPC (IPC$)
--nohidden
Não mostrar compartilhamentos ocultos (C$, IPC$, ADMIN$, etc)
O SMBList pegará o arquivo de saída do "SMBHunt.pl" (ou um arquivo de compartilhamentos separados por uma nova linha no formato "\servidor\compartilhamento") e realizará uma listagem de diretórios recursiva desses compartilhamentos usando as credenciais fornecidas. O SMBList tentará autenticar no compartilhamento até que uma credencial válida seja encontrada na lista fornecida. Em seguida, ele armazenará as listagens de diretórios em uma subpasta especificada.
Isso torna a listagem de arquivos extremamente fácil de pesquisar com grep!
O melhor arquivo de resultado para usar é: <diretório>/ALL_COMBINED_RESULTS.txt
./SMBList.pl -c <credential/file> -s <share/file> -o <nonexistent directory>
./SMBList.pl -c credentials_found.txt -s shares_found.txt -o share_listing -m 150
./SMBList.pl -h
-c, --credentials <credential/file>
Uma única credencial ou arquivo de credenciais para testar. As credenciais são aceitas no formato 'Domínio\Usuário:Senha' separadas por uma nova linha (se for fornecido um arquivo)
-s, --shares <share/file>
Um único compartilhamento ou arquivo de compartilhamentos para testar. Cada credencial será testada quanto à autorização até que uma válida seja encontrada. Os compartilhamentos devem estar no formato "\servidor\compartilhamento", separados por uma nova linha (se for fornecido um arquivo)
-o, --output <nonexistent directory>
Um novo diretório será criado com este nome. Para proteção da saída, o script não pode ser executado com este diretório existindo. Deve ser um diretório que não existe!
-m, --maxexec <seconds>
A quantidade máxima de tempo gasto despejando qualquer compartilhamento, em segundos. O padrão é 300 segundos (5 minutos)
-f, --force
Nunca remover um compartilhamento da lista se ele gerar erro e nunca remover uma credencial se ela receber uma mensagem de falha de logon. Se você estiver usando esta opção, certifique-se de saber o que está fazendo! Você pode bloquear contas se não for cuidadoso!
-n, --nocreds
Não incluir credenciais na saída. AVISO: Se você usar esta opção, não poderá usar a saída com a próxima ferramenta, "SMBGrab.pl".
As listagens de arquivos do SMBList.pl podem ser canalizadas para este utilitário para capturar os arquivos desejados dos compartilhamentos. A listagem original do SMBList.pl deve ser "grepada" antes de passar para este script, caso contrário todos os arquivos serão baixados (o que é equivalente a copiar todo o compartilhamento e é ruim)
Este script requer que o SMBList.pl seja canalizado para ele. Veja "Exemplo de Uso" abaixo
./SMBGrab.pl [-s <directory>]
grep -i 'password.txt' share_listing/ALL_COMBINED_RESULTS.TXT | ./SMBGrab.pl -s savedfiles
./SMBGrab.pl -h
Se nenhum argumento for fornecido, o arquivo é recuperado do compartilhamento e exibido ao usuário. Ele não é salvo.
-s, --savedir <directory>
Um diretório para salvar todos os arquivos capturados. Se este diretório não existir, ele será criado. Usar este argumento salva os arquivos, mas impede que os arquivos sejam impressos na tela
-a, --all
Ler todos os arquivos canalizados. Sem esta opção, o script protege contra baixar acidentalmente quantidades massivas de arquivos, limitando a entrada a 100 arquivos.
-n, --noedit
Isso preservará os arquivos em sua forma original. Se esta opção não for usada, uma nota será feita na parte inferior de cada arquivo contendo informações sobre os metadados do arquivo (horários de leitura/gravação, localização do arquivo no Compartilhamento, etc)
-h, --help
Exibir um menu de ajuda
Sinta-se à vontade para entrar em contato comigo para quaisquer alterações ou solicitações de recursos!