
SMBeagle - Ferramenta de auditoria de compartilhamento de arquivos.
____ __ _____ _ __
/ __ \__ ______ / /__/ ___/___ _______ _______(_) /___ __
/ /_/ / / / / __ \/ //_/\__ \/ _ \/ ___/ / / / ___/ / __/ / / /
/ ____/ /_/ / / / / ,< ___/ / __/ /__/ /_/ / / / / /_/ /_/ /
/_/ \__,_/_/ /_/_/|_|/____/\___/\___/\__,_/_/ /_/\__/\__, /
PRESENTS /____/
SMBeagle é uma ferramenta de auditoria de compartilhamentos de arquivos (SMB) multiplataforma que vasculha todos os arquivos que consegue ver na rede e relata se o arquivo pode ser lido e/ou escrito. Todas essas descobertas são transmitidas para um arquivo CSV ou para um host Elasticsearch, ou ambos! 🚀
Quando executado no Windows, sem credenciais fornecidas, o SMBeagle utiliza as APIs win32 para máxima velocidade e autenticação integrada.
Quando executado no Linux, ou quando credenciais são fornecidas, usamos a varredura de arquivos multiplataforma através do SMBLibrary
O SMBeagle até a v3 era assinado digitalmente, mas a v4 adiciona mais funcionalidades ofensivas. Ou seja, agora ele procura e recupera arquivos que parecem interessantes. Ótimo para pentests, mas não é algo que queiramos assinar digitalmente!
Se você quiser a versão original, sem as funcionalidades de captura de arquivos, use a v3 que é assinada digitalmente.
Ele tem 2 casos de uso fantásticos:
Empresas de todos os tamanhos frequentemente têm compartilhamentos de arquivos com permissões terríveis.
Grandes empresas possuem compartilhamentos extensos em servidores de arquivos e não é incomum encontrar dados sensíveis com permissões mal configuradas.
Pequenas empresas geralmente têm um pequeno NAS no canto do escritório sem nenhuma restrição!
O SMBeagle rastreia esses compartilhamentos e lista todos os arquivos que consegue ler e escrever. Se ele consegue lê-los, o ransomware também consegue.
O SMBeagle pode fornecer aos testadores de penetração as rotas menos óbvias para elevar privilégios e se mover lateralmente.
Ao enviar diretamente para o Elasticsearch, os testadores podem encontrar rapidamente scripts legíveis e executáveis graváveis.
Encontrar ataques de watering hole e senhas desprotegidas nunca foi tão fácil! 🐱👤
Para facilitar ainda mais, adicionamos a flag -g que agora baixa arquivos de volta se eles parecerem interessantes!
O que parece interessante? Bem, por padrão procuramos por scripts e nomes de arquivo com palavras como "password" neles.
... Você pode fornecer suas próprias regex com a flag --file-pattern.
Consulte o readme do Kibana para obter instruções detalhadas sobre instalação e uso dos dashboards Kibana que fornecem visuais de gerenciamento e facilitam a pivotagem de dados.
docker pull punksecurity/smbeagleO único parâmetro obrigatório é definir uma saída, que deve ser o endereço IP de um host Elasticsearch ou um arquivo CSV.
Um bom ponto de partida é ativar o modo rápido e enviar para CSV, mas esse CSV pode ficar enorme dependendo de quantos arquivos encontrar.
./SMBeagle.exe -c out.csv -f
A varredura de hosts públicos e redes descobertos está desabilitada por padrão, pois o SMBeagle descobre redes a partir do netstat, que inclui todas as conexões atuais, como sessões de navegador, etc.
Para varrer uma rede pública, declare-a manualmente com algo como -n 1.0.0.1/32 ou -n 1.0.0.0/24
A Punk Security fornece uma imagem Docker Linux do SMBeagle.
Para obter os resultados, você precisará montar uma pasta no container e informar ao SMBeagle para salvar sua saída nesse ponto de montagem (ou usar Elasticsearch).
Um bom exemplo inicial é:
docker run -v "$(pwd)/output:/tmp/output" punksecurity/smbeagle -c /tmp/output/results.csv -n 10.10.10.0/24
Observe que a descoberta de rede está desabilitada quando executado no Docker, então certifique-se de passar os intervalos que deseja varrer com a opção -n na linha de comando, ou hosts com a opção -h.
USAGE:
Output to a CSV file:
SMBeagle -c out.csv
Output to elasticsearch (Preferred):
SMBeagle -e 127.0.0.1
Output to elasticsearch and CSV:
SMBeagle -c out.csv -e 127.0.0.1
Disable network discovery and provide manual networks:
SMBeagle -D -e 127.0.0.1 -n 192.168.12.0./23 192.168.15.0/24
Do not enumerate ACLs (FASTER):
SMBeagle -A -e 127.0.0.1
-c, --csv-file (Group: output) Output results to a CSV
file by providing filepath
-e, --elasticsearch-host (Group: output) Output results to
elasticsearch by providing elasticsearch
hostname (default port is 9200 , but can be
overridden)
-a, --aggression (Default: 6) Vary scanning speed in a range
between 1 and 10. 10 being fastest [No
decimals]
--elasticsearch-port (Default: 9200) Define the elasticsearch
custom port if required
-f, --fast Enumerate only one files permissions per
directory
-l, --scan-local-shares Scan the local shares on this machine
-D, --disable-network-discovery Disable network discovery
-n, --network Manually add network to scan (multiple
accepted)
-N, --exclude-network Exclude a network from scanning (multiple
accepted)
-h, --host Manually add host to scan
-H, --exclude-host Exclude a host from scanning
-q, --quiet Disable unneccessary output
-S, --exclude-share Do not scan shares with this name (multiple
accepted)
-s, --share Only scan shares with this name (multiple
accepted)
--file-pattern Only fetch files matching these regexes
patterns
-g, --grab-files Grab files and store them locally
--loot (Default: loot) Path to store grabbed files
-E, --exclude-hidden-shares Exclude shares ending in $
-v, --verbose Give more output
-m, --max-network-cidr-size (Default: 20) Maximum network size to scan
for SMB Hosts
-A, --dont-enumerate-acls (Default: false) Skip enumeration of file
ACLs
-d, --domain (Default: ) Domain for connecting to SMB
-u, --username Username for connecting to SMB - mandatory
on linux
-p, --password Password for connecting to SMB - mandatory
on linux
--help Display this help screen.
--version Display version information.
O SMBeagle realiza muito trabalho, dividido em módulos fracamente acoplados que se comunicam entre si. Isso mantém o design simples e nos permite estender cada módulo facilmente.
Em resumo, ele:
