
SMBeagle - Outil d'audit de partage de fichiers.
____ __ _____ _ __
/ __ \__ ______ / /__/ ___/___ _______ _______(_) /___ __
/ /_/ / / / / __ \/ //_/\__ \/ _ \/ ___/ / / / ___/ / __/ / / /
/ ____/ /_/ / / / / ,< ___/ / __/ /__/ /_/ / / / / /_/ /_/ /
/_/ \__,_/_/ /_/_/|_|/____/\___/\___/\__,_/_/ /_/\__/\__, /
PRESENTS /____/
SMBeagle est un outil multiplateforme d’audit de partages de fichiers (SMB) qui parcourt tous les fichiers qu’il peut voir sur le réseau et signale si le fichier peut être lu et/ou écrit. Tous ces résultats sont diffusés vers un fichier CSV ou un hôte Elasticsearch, ou les deux ! 🚀
Sous Windows, sans fournir d’identifiants, SMBeagle utilise les API Win32 pour une vitesse maximale et une authentification intégrée.
Sous Linux, ou lorsque des identifiants sont fournis, nous utilisons l’analyse de fichiers multiplateforme via SMBLibrary
SMBeagle jusqu’à la v3 était signé numériquement, mais la v4 ajoute des fonctionnalités plus offensives. Notamment, il va désormais rechercher et récupérer les fichiers qui semblent intéressants. Idéal pour les tests d’intrusion, mais pas quelque chose que nous souhaitons signer numériquement !
Si vous voulez la version originale, sans les fonctionnalités de capture de fichiers, utilisez la v3 qui est signée numériquement.
Il a 2 cas d’utilisation géniaux :
Les entreprises de toutes tailles ont souvent des partages de fichiers avec des permissions désastreuses.
Les grandes entreprises ont des partages tentaculaires sur les serveurs de fichiers et il n’est pas rare de trouver des données sensibles avec des permissions mal configurées.
Les petites entreprises ont souvent un petit NAS dans un coin du bureau sans aucune restriction !
SMBeagle parcourt ces partages et liste tous les fichiers qu’il peut lire et écrire. S’il peut les lire, les ransomwares le peuvent aussi.
SMBeagle peut fournir aux testeurs d’intrusion les chemins les moins évidents pour élever leurs privilèges et se déplacer latéralement.
En diffusant directement dans Elasticsearch, les testeurs peuvent rapidement trouver des scripts lisibles et des exécutables inscriptibles.
Trouver des attaques de watering hole et des mots de passe non protégés n’a jamais été aussi facile ! 🐱👤
Pour rendre cela encore plus simple, nous avons ajouté le drapeau -g qui récupère désormais les fichiers s’ils ont l’air intéressants !
Qu’est-ce qui a l’air intéressant ? Par défaut, nous cherchons des scripts et des noms de fichiers contenant des mots comme password.
… Vous pouvez fournir vos propres expressions régulières avec le drapeau --file-pattern.
Veuillez consulter Kibana readme pour des instructions détaillées sur l’installation et l’utilisation des tableaux de bord Kibana qui fournissent des visuels de gestion et facilitent le pivotement des données.
docker pull punksecurity/smbeagleLe seul paramètre obligatoire est de définir une sortie, qui doit être soit une adresse IP d’hôte Elasticsearch, soit un fichier CSV.
Un bon point de départ est d’activer le mode rapide et de sortir vers un CSV, mais ce CSV pourrait devenir énorme selon le nombre de fichiers trouvés.
./SMBeagle.exe -c out.csv -f
Le scan des hôtes et réseaux publics découverts est désactivé par défaut, car SMBeagle découvre les réseaux à partir de netstat qui inclut toutes les connexions en cours, comme les sessions de navigateur web, etc.
Pour scanner un réseau public, déclarez-le manuellement avec quelque chose comme -n 1.0.0.1/32 ou -n 1.0.0.0/24
Punk security fournit une image Docker Linux de SMBeagle.
Pour récupérer les résultats, vous devrez monter un dossier dans le conteneur et indiquer à SMBeagle de sauvegarder sa sortie dans ce montage (ou utiliser Elasticsearch).
Un bon exemple de départ est :
docker run -v "$(pwd)/output:/tmp/output" punksecurity/smbeagle -c /tmp/output/results.csv -n 10.10.10.0/24
Notez que la découverte réseau est désactivée lors de l’exécution dans Docker, alors assurez-vous de passer les plages que vous souhaitez scanner avec l’option -n, ou les hôtes avec l’option -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.
SMBeagle effectue beaucoup de travail, décomposé en modules faiblement couplés qui se transmettent les tâches. Cela maintient la conception simple et permet d’étendre facilement chaque module.
En résumé, il :
